ISBN 978-85-63630-13-1
9 788563 630131
Segurança
de Redes
e Sistemas
Rio de Janeiro
Escola Superior de Redes
2013
Copyright © 2013 – Rede Nacional de Ensino e Pesquisa – RNP
Rua Lauro Müller, 116 sala 1103
22290-906 Rio de Janeiro, RJ
Diretor Geral
Nelson Simões
Edição
Pedro Sangirardi
Revisão Técnica
Francisco Marcelo Lima
Versão
2.1.1
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
Bibliografia: p. 251.
ISBN 978-85-63630-13-1
CDD 658.4012
Sumário
1. Fundamentos de segurança
Introdução 1
Normas ISO/ABNT 11
Políticas de segurança 13
Penetration Test 21
iii
Exercício de fixação 1 – Penetration Test 24
Nmap 24
Hping 27
Firewall 52
Tecnologias de firewall 52
Topologias de firewall 55
Implementação de firewalls 58
Netfilter (Iptables) 58
Implementação do Netfilter 59
Tradução de IP (NAT) 65
Firewall Builder 69
iv
Roteiro de Atividades 3 71
Gerenciamento de logs 81
Syslog-ng 82
Logs do Windows 85
Monitoramento de serviços 89
Vantagens do Cacti 93
v
Sistemas de Detecção de Intrusos em hosts (HIDS) 106
Snort 107
Instalação do Snort 109
Configuração do Snort 112
Regras do Snort 113
Oinkmaster 114
Snort-inline 115
HIDS 116
Sistema AAA 121
Criptografia 123
Criptografia simétrica 124
Criptografia assimétrica 125
Algoritmos Hash 126
Certificados digitais 128
Gerenciamento de senhas 129
vi
Valor do SALT 131
Administrando as senhas 133
OTP 134
S/Key 134
Smart Card 135
Serviço de diretório 136
Tipos de informação 137
Benefícios do Kerberos 140
Organização do Kerberos 141
Certificação digital 142
Atividade 3 – Uso do Cain & Abel para avaliar a segurança do sistema de autenticação 147
VPN 151
VPN PPTP 153
L2TP 153
IPSec 154
vii
Exercício de fixação 2 – IPSec 156
Protocolos IPSec 157
VPN SSL 159
Instalação do Openswan 160
Configuração do Openswan 162
Instalação do OpenVPN 165
Configuração do OpenVPN 166
Análise de vulnerabilidades 182
Instalação do Nessus 183
Arquitetura do firewall 187
Testando o firewall 187
Alertas e registros 192
viii
Atividade 4 – Exemplo de auditoria 196
Check-list 200
WMIC 208
SYSInternals 208
WSUS 210
MBSA 210
Heranças de GPO 218
Diretiva de senhas 219
Diretiva de auditoria 220
Opções de segurança 222
ix
Atividade 2 – Auditoria 226
Instalação do Linux 230
Pacotes e programas 234
Acessos administrativos 237
Pacotes compilados 240
Atividade 2 – Auditoria 250
Bibliografia 251
x
Escola Superior de Redes
A Escola Superior de Redes (ESR) é a unidade da Rede Nacional de Ensino e Pesquisa
(RNP) responsável pela disseminação do conhecimento em Tecnologias da Informação
e Comunicação (TIC).
A ESR oferece dezenas de cursos distribuídos nas áreas temáticas: Administração e Pro-
jeto de Redes, Administração de Sistemas, Segurança, Mídias de Suporte à Colaboração
Digital e Governança de TI.
A 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 segurança
de redes e sistemas a fim de garantir melhor aplicabilidade das práticas de segurança da
informação em suas organizações.
Itálico
Indica nomes de arquivos e referências bibliográficas relacionadas ao longo do texto.
xii
Largura constante
Conteúdo de slide
Indica o conteúdo dos slides referentes ao curso apresentados em sala de aula.
Símbolo
Indica referência complementar disponível em site ou página na internet.
Símbolo
Indica um documento como referência complementar.
Símbolo
Indica um vídeo como referência complementar.
Símbolo
Indica um arquivo de aúdio como referência complementar.
Símbolo
Indica um aviso ou precaução a ser considerada.
Símbolo
Indica questionamentos que estimulam a reflexão ou apresenta conteúdo de apoio ao
entendimento do tema em questão.
Símbolo
Indica notas e informações complementares como dicas, sugestões de leitura adicional ou
mesmo uma observação.
Permissões de uso
Todos os direitos reservados à RNP.
Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra.
Exemplo de citação: PEIXINHO, Ivo. Segurança de Redes e Sistemas. Rio de Janeiro: Escola
Superior de Redes, 2013.
Comentários e perguntas
Para enviar comentários e perguntas sobre esta publicação:
Escola Superior de Redes RNP
Endereço: Av. Lauro Müller 116 sala 1103 – Botafogo
Rio de Janeiro – RJ – 22290-906
E-mail: info@esr.rnp.br
xiii
Sobre os autores
Ivo de Carvalho Peixinho é Bacharel em Ciência da Computação pela UFBA e Especialista
em Gestão de Segurança da Informação pela UnB. Possui mais de 15 anos de experiência
na área de Segurança da Informação. Foi Diretor Técnico na XSite Consultoria e Tecnologia,
Analista de Suporte na Universidade Federal da Bahia. Em 2004 atuou como Analista de
Segurança Sênior no CAIS/RNP por dois anos e atualmente é Perito Criminal Federal do
Departamento de Polícia Federal desde 2007, lotado atualmente no Serviço de Repressão a
Crimes Cibernéticos - SRCC/CGPFAZ/DICOR/DPF. É professor de pós-graduação nas discipli-
nas de Análise Forense em Sistemas UNIX e Análise de Malware e é palestrante em diversos
eventos nacionais e internacionais como GTS, Seginfo, CNASI, ICCyber e FIRST.
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 e aumento expres-
sivo no número de profissionais dedicados. O profissional que pretende atuar nessa área deve
estar ciente de que ela é bastante dinâmica e envolve diversos setores da computação, como
programação e desenvolvimento de sistemas, redes de computadores, sistemas operacionais
e bancos de dados, entre outras. Quanto mais conhecimento o profissional de SI possuir, mais
capacidade terá de desempenhar seu papel. Apesar de todos esses avanços, a SI ainda é uma
área nova, e a cada dia novas subáreas e conceitos são descobertos e incorporados.
Para este curso, considera-se que o aluno completou o curso de Introdução à Segurança de Redes
e já possui uma noção sobre segurança de redes, incluindo a família de protocolos TCP/IP, além
de noções de administração de servidores Linux e Windows. Este curso terá enfoque mais
prático, com foco na área de redes e sistemas operacionais. Ao final do curso, o aluno deve ser
capaz de compreender e utilizar os conceitos e ferramentas de segurança de redes, de modo
a projetar e configurar uma rede com um nível de segurança aceitável, além de ser capaz de
aumentar o nível de segurança dos sistemas operacionais mais utilizados no mercado, através
de configurações mais seguras dos sistemas e serviços destes sistemas operacionais.
Capítulo 1 - Fundamentos de segurança
Por fim, é importante que o aluno tenha consciência de que este é um curso prático e
progressivo, com atividades práticas fundamentais e interdependentes, de modo que uma
atividade de um capítulo é pré-requisito para as atividades dos capítulos seguintes. O aluno
deve investir nas atividades práticas para finalizá-las completamente, caso contrário poderá
não obter o aproveitamento desejado.
1
Exercício de nivelamento 1 e
Fundamentos de Segurança
O que você entende por segurança da informação?
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.
2
11 Segurança do sistema operacional, do servidor de aplicação e do servidor web, através
da configuração segura, retirada de serviços desnecessários, aplicação das últimas corre-
ções de segurança do fabricante, filtragem de portas desnecessárias, entre outros.
11 Segurança 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 (pentest), análise forense computacional, tra-
tamento de incidentes de segurança e desenvolvimento de aplicações seguras são apenas
alguns exemplos de especializações encontradas no mercado nos dias de hoje.
q
como qualquer evento
adverso, confirmado ou Fundamentos de segurança:
sob suspeita, relacio-
nado à segurança de 11 Confidencialidade.
sistemas de compu- 11 Integridade.
tação ou de redes de
computadores. 11 Disponibilidade.
autorizado para dispor daquele acesso, e nenhum outro. Por exemplo, as notas de um aluno
devem ser acessadas somente pelo aluno, pelos professores das disciplinas cursadas por ele
e pela equipe de registro acadêmico.
O termo Integridade possui duas definições: a primeira relacionada com o fato da infor-
mação ter valor correto; por exemplo, no resultado da correção de uma prova, a nota obtida
foi avaliada por um professor com conhecimento da disciplina, e portanto apto para julgar
o conteúdo. A segunda definição está ligada à inviolabilidade da informação, ou seja, a nota
não pode ser alterada sem justificativa e por meio controlado. A nota não pode “sumir” ou
ser simplesmente alterada.
3
O termo Disponibilidade está relacionado ao acesso à informação, que pode ser contro-
lada ou não, e disponível quando necessária. Um ataque de negação de serviço pode, por
exemplo, evitar o acesso à informação, afetando a disponibilidade.
Observe, ainda, que existem três dimensões completamente distintas: duas delas, a
confidencialidade e a integridade, são valores boolianos: ou a informação se manteve
confidencial ou não; ou a informação se manteve íntegra ou não. A terceira é um número
real entre 0 e 1, podendo ser calculada pela própria definição. Duas podem ser monito-
radas e medidas: a integridade e a disponibilidade. Não temos como saber se um dado
perdeu confidencialidade.
Conceitos auxiliares: q
11 Autenticidade.
11 Legalidade.
11 Não repúdio.
11 Privacidade.
A literatura moderna inclui ainda mais alguns conceitos, que muitas vezes são considerados
auxiliares aos três já listados. São eles:
11 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.
que o aluno pode realizar é buscar o seu próprio nome no site de buscas do Google.
É comum nos referirmos a esse conjunto de conceitos básicos como CID ou CIDAL,
que corresponde às iniciais de alguns dos conceitos apresentados. A sigla DICA ainda
é usada em referência aos quatro primeiros conceitos.
Além dos conceitos apresentados acima, o livro Building Internet Firewalls, de Elizabeth D.
Zwicky, Simon Cooper e D. Brent Chapman (editora O’Reilly), define ainda outros conceitos,
denominados de estratégias de segurança.
4
11 Least Privilege (Menor Privilégio). q
11 Defense in Depth (Defesa em Profundidade).
11 Default Deny & default Permit Stance (Atitude de Bloqueio Padrão e Permissão Padrão).
11 Simplicity (Simplicidade).
Esses conceitos são muito importantes, e o profissional de segurança deve sempre tê-los em
mente no seu dia a dia:
11 Least Privilege (Menor Privilégio): cada objeto deve ter apenas os privilégios mínimos
para executar suas tarefas, e nenhum outro. Apesar de muito importante, é difícil aplicar
esse conceito, pois muitas vezes ele envolve uma série de ajustes e um mínimo erro
pode fazer com que o recurso pare de funcionar. Como exemplo, podemos citar um
servidor web. Executar o processo do servidor como o usuário administrador provavel-
mente fornecerá uma série de privilégios desnecessários a ele. Nesse caso, convém criar
um usuário específico (ex: httpd) e definir as permissões mínimas para que o serviço
funcione. Por exemplo: permissão de leitura na pasta onde ficam as páginas HTML e per-
missão de leitura e gravação na pasta onde ficam os registros de acesso.
11 Choke Point (Ponto Único): canal estreito por onde os atacantes são forçados a passar,
que pode ser monitorado e controlado. Exemplos: praça de pedágio em uma estrada,
caixa de supermercado. Esse é o princípio utilizado pelos firewalls.
11 Default Deny e Default Permit Stance (Atitude de Bloqueio Padrão e Permissão Padrão):
atitude geral em relação à segurança. Na primeira (mais segura), tudo é proibido e o que é
Capítulo 1 - Fundamentos de segurança
permitido deve ser expressamente definido. Na segunda, tudo é permitido e o que é proibido
deve ser definido. Em sistemas seguros, deve-se buscar sempre a primeira atitude (Default
Deny), apesar de nem sempre ser possível. Para o caso do acesso à internet por um nave-
gador, seria viável bloquear toda a internet e liberar apenas o que é permitido?
5
11 Inherent Weaknesses (Fraquezas Inerentes): sistemas de um mesmo tipo podem
sofrer da mesma fraqueza inerente a esse tipo de sistema. Exemplos: falha de conceito
ou falha de um protocolo com implementação comum.
11 Weakest Link (Elo Mais Fraco): corresponde ao ponto mais fraco das suas defesas. As
suas defesas são tão fortes quanto o ponto mais fraco. Este deve ser eliminado quando
possível, ou ser forte o suficiente para desencorajar ataques. Muitos atacantes vão pro-
curar o ponto mais fraco da sua rede, tentando atacar a rede a partir dele. Pontos fracos
da rede devem ser constantemente monitorados quando não puderem ser eliminados.
11 Fail Safe (Falha Segura): os sistemas, em caso de falha, devem sempre fazê-lo de modo
a inibir qualquer tipo de acesso. O prejuízo da falta de acesso é preferível ao acesso libe-
rado de forma irrestrita em caso de falha.
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.
6
Todo incidente ocorrido na organização deve ser tratado de acordo com uma metodologia
definida previamente. Assim, para atender ao processo de resposta a incidentes de segu-
rança a organização deve elaborar uma metodologia visando gerenciar consequências de uma
quebra de segurança. Seu principal objetivo é minimizar o impacto causado por um incidente
e possibilitar o restabelecimento dos serviços no mais curto espaço de tempo possível.
Com o crescimento da internet, em meados de 1996, esses ataques provocam prejuízos que
vão desde a perda de milhares de dólares até o que ocorreu há alguns anos na Europa, onde de
acordo com a agência de notícias Reuters, a internet em um país parou de funcionar após ataques.
Conforme informado pela IFCC (Internet Fraud Complaint Center ), uma parceria entre o FBI
e o Centro Nacional de Crimes do Colarinho Branco dos Estados Unidos, entre maio de 2000
e maio de 2001, em seu primeiro ano de funcionamento, foram registrados 30.503 casos de
fraudes na internet, registros colhidos apenas no site da IFCC.
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).
serviços providos por um CSIRT. Cada time escolhe seus serviços com base nas necessi-
dades da sua organização e da comunidade a quem ele atende.
11 Estágio 3 – Triagem.
7
A segurança de uma organização sempre estará sujeita a incidentes, como todas as outras
áreas. Os fatores são os mais diversos, desde ameaças não intencionais causadas por usuá-
rios comuns até ameaças técnicas organizadas. Para uma organização é de vital importância
que os incidentes sejam tratados corretamente, e para isso se faz necessário entender como
funciona o ciclo de vida de um incidente.
Estágio 3 – Triagem
O método de recepção de todo e qualquer indício de incidente é de suma importância, pois
é com uma correta triagem da informação que se inicia todo o processo de catalogação e
resposta ao incidente. Os grupos de resposta a incidentes comumente informam apenas um
meio de contato ou “hotline”, seja para um grupo de resposta de âmbito nacional, privado
ou mesmo dentro da organização. Essa triagem é importante para a aplicação correta do
controle de segurança da informação impactado pelo incidente. Normalmente, esse con-
trole também é atribuído a um gerente de incidente, profissional especializado no problema
que estará à frente do incidente até a sua resolução.
11 Auditoria de segurança.
8
Resposta: q
11 Tratamento de incidentes.
11 Tratamento de vulnerabilidades.
11 Consultoria em segurança.
11 Análise de riscos.
O maior desafio para os profissionais de segurança dos dias atuais é a gestão de uma
complexa infraestrutura de comunicação de dados da internet, seu gerenciamento e
manutenção. Na maioria das organizações, as equipes de profissionais em rede não contam
com pessoal em quantidade suficiente para atender à demanda crescente de otimização de
sistemas, atualização incessante de programas para minimizar riscos e defender-se contra
ataques dos mais variados tipos. Esse cenário se torna pior à medida que surgem novas
ferramentas de ataques, malwares, toolkits e a crescente organização de grupos que visam
à paralisação e o roubo de dados na rede mundial de computadores.Nesse contexto, e para
atender à necessidade de resposta a incidentes, surgem os grupos de resposta a incidentes,
cujo objetivo é responder de maneira rápida e efetiva a essas ameaças. Esse grupo tem
como objetivo desenvolver meios para identificar, analisar e responder a incidentes que
venham a ocorrer, minimizando prejuízos e reduzindo seus custos de recuperação.
Prevenção
Caracterizam-se como serviços proativos os serviços onde o grupo procura se antecipar aos
problemas de maneira a preveni-los, gerando uma base de conhecimento para futura pes-
quisa. Dentre as principais atividades de prevenção destacam-se a auditoria de segurança e
o treinamento e orientação a usuários.
Auditoria de segurança
A auditoria de segurança dentro de uma empresa visa submeter seus ativos a uma análise
de segurança com base nos requisitos definidos pela organização ou por normas internacio-
nais. Também pode implicar na revisão das práticas organizacionais da empresa bem como
testes em toda a sua infraestrutura. Nos dois últimos módulos deste treinamento, será
abordado o processo de hardening para servidores Linux e Windows. Uma vez aprovado um
processo de hardening, este pode ser utilizado para auditar a segurança de um ambiente, já
que nesse documento encontra-se a configuração mínima recomendada para um ativo.
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.
9
Monitoração de novas tecnologias
Resposta
Os serviços reativos englobam atividades que são realizadas após algum evento ou requi-
sição dentro da organização. Baseiam-se em análises de logs e produção de relatórios em
função de alguma detecção de atividade maliciosa. Dentre as principais atividades de res-
posta a incidentes, podemos destacar as seguintes.
Tratamento de incidentes
Segundo Chuvakin e Peikari, autores do livro Security Warrior, uma reposta a incidente é um
processo de identificação, contenção, erradicação e recuperação de um incidente de compu-
tador, realizado pelo time de segurança responsável.
Tratamento de vulnerabilidades
Consultoria em segurança
Um CSIRT pode ser utilizado para fornecer aconselhamento sobre as melhores práticas de
segurança, principalmente dentro de um ambiente militar. Esse serviço pode ser utilizado na
preparação de recomendações ou identificando requisitos para a aquisição, instalação ou
Segurança de Redes e Sistemas
10
Análise de riscos
Um Grupo de Resposta a Incidentes pode ser capaz de acrescentar valor à análise de risco
e avaliações. Isso pode melhorar a capacidade da organização para avaliar ameaças reais,
fornecer avaliações qualitativas e quantitativas dos riscos para os ativos da organização e
avaliar estratégias para melhor defesa.
Exercício de fixação 2 e
Processo de tratamento de incidentes
Explique os estágios do ciclo de vida de um incidente.
Exercício de fixação 3 e
Grupo de resposta a incidentes
O que é prevenção e como ela é feita na sua organização?
Normas ISO/ABNT
Histórico: BSI e ISO q
11 ABNT NBR ISO/IEC 27001:2006 (SGSI) – passível de certificação.
Capítulo 1 - Fundamentos de segurança
11
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.
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.
12
11 ABNT NBR ISO/IEC 27005:2008 – Tecnologia da Informação – Técnicas de segurança – Gestão
de riscos de segurança da informação. Essa norma fornece diretrizes para o processo de
gestão de riscos e segurança da informação. Norma criada para apoiar o entendimento das
especificações e conceitos estabelecidos pela norma ABNT NBR ISO/IEC 27001:2006.
Para aqueles que desejarem mais informação sobre esse assunto, logo abaixo são listadas
as principais normas sobre segurança da informação:
11 ISO/IEC 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.
11 ISO/IEC 15443-3: A framework for IT Security assurance – Part 2: Analysis of Assurance Methods.
11 ISO/IEC 18045: A framework for IT Security assurance – Methodology for IT Security Evaluation.
11 ISO/IEC 27034-1: Guidelines for Application Security – Part 1: Overview and Concepts.
Capítulo 1 - Fundamentos de segurança
Políticas de segurança
A Política de Segurança da Informação e Comunicações (POSIC) é o documento mais impor-
tante de uma organização quando se trata de Segurança da Informação. Nela estão todas as
diretrizes, recomendações e deveres de todos. O profissional de segurança deve conhecer
bem a política de segurança da sua instituição e deve balizar todo o trabalho em cima dela.
13
Outras políticas associadas à POSIC tratam de assuntos mais específicos, como por exemplo: q
11 Política de Uso Aceitável (PUA).
Normas DSIC/GSIPR: q
11 Norma Complementar nº 01/IN01/DSIC/GSIPR: Atividade de Normatização.
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º 03/IN01/DSIC/GSIPR: estabelece diretrizes, critérios e proce-
dimentos para a elaboração, institucionalização, divulgação e atualização da Política de
Segurança da Informação e Comunicações (POSIC) nos órgãos e entidades da Adminis-
tração Pública Federal.
w Mesmo para empresas privadas ou outras entidades, as normas podem servir como um bom
embasamento para a criação da política de segurança, do grupo de resposta a incidentes de
As normas do DSIC/
GSIPR são públicas e segurança ou do processo de gestão de riscos. Para a comodidade do aluno, o item 6 consta a
podem ser obtidas no NC 03, que trata de diretrizes para a elaboração de uma política de segurança (POSIC).
site do DSIC:
http://dsic.planalto.gov.br/ É possível encontrar na web diversas políticas de segurança completas publicadas por
órgãos públicos brasileiros. Um exemplo seria a Portaria/Incra/P/N° 70, de 29/03/2006 (DOU
nº 62, de 30 de março de 2006).
Exercício de fixação 4 e
Políticas de segurança
O que é política de segurança? Ela existe na sua organização?
Capítulo 1 - Fundamentos de segurança
15
Planejando uma rede segura
11 Visão geral. q
11 Execução em etapas.
11 Documento de planejamento:
22 Prazos.
22 Validação e aprovação.
11 Execução.
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
dedica-se a fornecer práticas de conscientização, pesquisa e certificação open source na
área de segurança de redes. É responsável pela publicação do OSSTMM (Open Source
Security Testing Methodology Manual), Manual de Código Aberto Sobre Metodologias de
Testes de Segurança. Nesse manual são abordados todos os aspectos a serem levados em
consideração para a execução de um teste de segurança em um sistema computacional.
São abordados temas importantes, como métricas de segurança, metodologias para
melhorar a segurança física de redes, conexões sem fio e comunicações eletrônicas.
Nos capítulos seguintes, serão vistas as tecnologias e técnicas de segurança existentes, para
que o profissional as conheça e seja capaz de realizar e implementar o planejamento de uma
solução de segurança para redes de computadores.
Segurança de Redes e Sistemas
Todas as ferramentas de segurança apresentadas são baseadas em software livre, Software livre
porém os conceitos são genéricos e se aplicam a outras ferramentas, comerciais ou não, Qualquer programa de
computador que pode
existentes no mercado.
ser usado, copiado,
estudado e redistri-
buído sem restrições.
16
Roteiro de Atividades 1
Atividade 1 – Exercitando os fundamentos de segurança
Como vimos, o conceito de segurança mais básico apresentado consiste no CID (Confiden-
cialidade, Integridade e Disponibilidade). Apresente três exemplos de quebra de segurança
em cada um desses componentes, como por exemplo:
Associe cada um dos eventos abaixo a uma estratégia de segurança definida na parte teórica.
11 Utilizar um servidor Web Linux e outro Windows 2000 Server para servir um mesmo con-
teúdo, utilizando alguma técnica para redirecionar o tráfego para os dois servidores.
11 Utilizar uma interface gráfica simplificada para configurar uma solução de segurança.
11 Configurar todos os acessos externos de modo que passem por um ponto único.
11 Um sistema de segurança em que caso falte energia elétrica, todos os acessos que
passam por ele são bloqueados.
11 Configurar um sistema para só ser acessível através de redes confiáveis, para solicitar uma
senha de acesso e em seguida verificar se o sistema de origem possui antivírus instalado.
11 Configurar as permissões de um servidor www para apenas ler arquivos da pasta onde
estão as páginas HTML, sem nenhuma permissão de execução ou gravação em qualquer
arquivo do sistema.
17
Incra para implementar essa política no ambiente de produção. Realize uma crítica construtiva
de forma a identificar tópicos importantes que não foram abordados nesse documento.
Passo 1 Na estação de trabalho física, clique em Iniciar > Painel de Controle > Cone-
Segurança de Redes e Sistemas
xões de Rede > VirtualBox Host-Only Network > Propriedades > Protocolo
TCP/IP e altere o endereço IP dessa interface de rede para 10.1.G.10, máscara
de rede 255.255.255.0
18
Ao final dessa atividade, teremos a seguinte topologia, que será utilizada durante todo o curso:
Internet
Topologia A
FWGW1
.1
DHCP
DMZ
172.16.1.0/24 .1
Rede local
10.1.1.0/24
.20 .10
.10
Host Windows XP
19
20
Segurança de Redes e Sistemas
2
Explorando vulnerabilidades
em redes
objetivos
conceitos
Packet Sniffing, ARP Spoofing, IP Spoofing e fragmentação de pacotes IP.
Introdução
Com a popularização da internet, as redes de computadores passaram a usar o protocolo
TCP/IP em quase sua totalidade. Esse protocolo, apesar de ser um padrão “de fato”, é um
protocolo antigo, desenvolvido na década de 60. Nessa época, havia pouca preocupação
com segurança, visto que as redes eram restritas e controladas. Hoje em dia, existem
diversas vulnerabilidades conhecidas nesses protocolos de rede. Abaixo, discutiremos
algumas dessas vulnerabilidades. Porém, para compreendê-las, será necessário um conhe-
cimento sobre a família de protocolos TCP/IP. Caso tenha dúvidas ou necessite revisar seu
conhecimento, recomenda-se consultar o material do curso Introdução à Segurança de Redes,
oferecido pela Escola Superior de Redes.
Penetration Test
Um teste de penetração consiste em apurar o quanto difícil é invadir uma rede de com-
putadores. Objetivamente falando, um teste de invasão ou Penetration Test é uma busca
21
e identificação de vulnerabilidades em uma rede ou sistema computacional. A forma de
elaboração de um teste pode variar, desde determinar um breve panorama de segurança
da infraestrutura de uma empresa, até o que pode-se chamar de inspeção profunda, com o
objetivo de obter informações específicas sobre um ativo de uma organização.
Testes de penetração
Existem três tipos de abordagens para teste de penetração: q
Teste de penetração zero
Mais conhecido com BlackBox, onde o grupo de teste não tem nenhuma informação real
sobre o alvo e deve começar com a coleta de informações. Esse tipo de teste foi proje-
tado para oferecer o teste de penetração mais realístico possível.
Mais conhecido como Grey Box, onde a organização alvo fornece à equipe de testes
informações sobre o que provavelmente um atacante motivado pode encontrar. Um
teste de penetração parcial também pode ser escolhido se o objetivo for testar um novo
tipo de ataque ou mesmo ou se a equipe quer focar em um host específico da empresa.
Para esse tipo de testes é necessário que sejam fornecidos documentos sobre topologia
de rede, política de segurança, inventário de ativos e outras informações valiosas.
Teste de conhecimento
Também conhecido como White Box, em que a equipe detém muita informação sobre
a infraestrutura e sobre os sistemas alvo. Nesse caso, o teste visa simular um atacante
que possui um conhecimento íntimo da organização alvo.
Técnicas de ataque
Uma descrição compreensiva de técnicas de ataque é fundamental para evitar danos ou
minimizar a perda de informações nos sistemas da organização. Normalmente utilizamos uma
metodologia de penetração baseadas em fases que vão evoluindo ao longo do processo.
Fase de descoberta q
Coleta de informações na organização-alvo através de servidores de sites e de correio, regis-
Segurança de Redes e Sistemas
tros públicos e bancos de dados (endereços e nomes de registros, DNS, Whois, logs etc.).
Fase de enumeração
Fase onde a equipe de testes tenta exaustivamente obter informações, como nomes de
usuários, informações sobre compartilhamentos de rede, informações sobre aplicativos,
plataformas, infraestrutura onde estão hospedados e versões dos serviços em execução.
22
Fase de exploração q
Fase em que a equipe de testes tentará obter acesso privilegiado a um alvo utilizando fer-
ramentas conhecidas como exploits para a descoberta de vulnerabilidades identificadas.
Packet Sniffing
Sniffing O termo Packet Sniffing tem sido ao longo do tempo substituído por “Analisador de proto-
“Farejar”, em inglês, colo” (protocol analyzer) em razão de o termo sniffer ter conotação de atividade maliciosa.
consiste em capturar
pacotes em trânsito No entanto, a ação realizada é a mesma, ou seja, ler todos os pacotes de dados que estão
numa interface de rede.
trafegando em uma rede específica. Hoje, com as redes sem fio, a situação é semelhante,
com ferramentas que capturam os dados no ar. Lembre-se de que a capacidade de ler os
pacotes vai sempre ser limitada pelo uso de criptografia ou através de soluções físicas, como
o uso de um switch, que impede que uma placa de rede veja todo o tráfego de uma rede.
Na figura seguinte, vemos a interface de um programa de captura de pacotes.
Figura 2.1
Interface de um
programa de
captura de pacotes.
23
Exercício de fixação 1 e
Penetration Test
Quais são os tipos de abordagens para teste de penetração?
Exercício de fixação 2 e
Packet sniffing
O que é e o que faz um analisador de protocolo?
Nmap
O Nmap é uma ferramenta de código aberto, utilizada para exploração de rede e audi- q
toria de segurança. Ela foi desenhada para identificar as portas de serviço que estão
abertas na máquina-alvo ou em um conjunto de máquinas. O resultado final de sua exe-
cução inclui, dependendo das opções utilizadas, informações como a versão do sistema
operacional e a versão dos serviços em execução.
Nmap 192.168.1.0/24
24
999/tcp filtered garcon
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:
A execução do Nmap é bem simples, estando ele disponível para uma série de plataformas.
Abaixo alguns exemplos de execução do Nmap.
Capítulo 2 - Explorando vulnerabilidades em redes
Varredura TCP SYN Tipo de varredura mais comumente uti- #Nmap -sS <ip_alvo>
lizada, facilmente detectável. O atacante
envia para o alvo pacote com a flag SYN
setada: se receber SYN/ACK, a porta está
aberta; se receber RST, a porta está fechada.
25
Técnica Explicação Exemplo
Varredura TCP FIN, Essa varredura explora uma falha sutil na #Nmap -sF <ip_alvo>
XMAS (Árvore de implementação do TCP/IP na máquina-alvo.
Natal) e TCP Nula Um atacante envia para o alvo pacote com a #Nmap -sX <ip_alvo>
flag FIN, sem flag (TCP Null) ou com todas as #Nmap -sN <ip_alvo>
flags setadas (XMAS). Se receber RST, a porta
está fechada. Se não receber nada ou um
pacote qualquer, a porta está aberta.
Varredura UDP Embora os serviços mais populares na internet #Nmap -sU ip_alvo
utilizem o protocolo TCP, serviços como DNS,
SNMP e DHCP utilizam o protocolo UDP. Essa
varredura permite identificar serviços UDP em
execução na máquina. Seu modo de funcio-
namento é bastante simples: o atacante envia
para o alvo um pacote UDP. Se receber a men-
sagem ICMP Port Unreachable, a porta está
fechada. Se não receber nada ou um pacote
qualquer, a porta está aberta.
Varredura TCP ACK Essa varredura é diferente das anteriores, #Nmap -sA ip_alvo
(detecta as portas pois nunca determina se uma porta está
que estão sendo aberta. Seu objetivo é mapear o conjunto
filtradas por um de regras de um firewall, determinando se
firewall) essas regras são orientadas à conexão ou
não e quais portas estão sendo filtradas. O
atacante envia para o alvo um pacote com as
flags ACK. Se receber RST, a porta não está
sendo filtrada. Se receber a mensagem ICMP
Unreachable, a porta está sendo filtrada.
Varredura TCP/ Tem o mesmo objetivo da varredura TCP #Nmap -sW ip_alvo
Windows (detecta ACK, exceto que explora o detalhe de imple-
as portas que estão mentação TCP/IP realizada por certos sis-
sendo filtradas por temas operacionais. O atacante envia para o
um firewall) alvo um pacote com as flags ACK. Ao receber
o pacote com a flag RST, o Nmap avaliará
o tamanho da janela TCP. Se esse valor for
positivo, a porta está aberta. Se esse valor
for igual a zero, a porta está fechada.
26
Técnica Explicação Exemplo
Varredura furtiva Possibilita a um invasor fazer uma varre- # Nmap -sF ip_alvo -S 1.1.1.111
dura forjando a origem, com o objetivo de –n –e eth0
desviar a atenção ou simplesmente irritar
o administrador.
Varredura para Varredura para identificar a versão dos ser- # Nmap -sV ip_alvo
levantamento de viços que estão em execução na máquina-alvo.
serviços no alvo
Exercício de fixação 3 e
Nmap
No Nmap, para que é utilizada a técnica de “Varredura TCP/Windows”?
Hping
A ferramenta Hping é um gerador e analisador de pacotes TCP/IP muito utilizado para q
atividades de auditoria, testes de firewall e redes, sendo bastante útil para administra-
dores e hackers. Possui suporte para os protocolos ICMP, UDP e TCP e permite a modifi-
cação de qualquer informação, tanto do payload quanto do cabeçalho do pacote.
Principais funcionalidades:
11 Teste de firewall.
11 OS Fingerprinting.
No último tópico deste capítulo, a ferramenta Hping será utilizada para demonstrar alguns
tipos de ataques.
ARP Spoofing
Ataques de ARP Spoofing são relativamente antigos, mas quando empregados produzem q
resultados de impacto. O conceito do ataque visa enviar um pacote ARP falso para uma
MAC rede local, direcionando o tráfego do destino correto para um sistema malicioso.
Media Access Control é O protocolo ARP traduz endereços físicos (MAC) para endereços IP. Lembre-se de que os
um protocolo de acesso
ao meio físico em uma endereços MAC são singulares, isso é, o fabricante da interface de rede associa unicamente
interface de rede. um endereço MAC a uma interface específica. Dessa forma, a apropriação da identidade de
Endereços físicos de outro sistema fará com que todo o tráfego na rede seja desviado para o sistema invasor.
interfaces de rede são
comumente chamados Outro resultado possível de ataques de ARP Spoofing é a negação de serviço contra o
de endereços MAC. sistema-alvo, pois o tráfego não chegará ao sistema de destino.
27
IP: 10.0.0.1 IP: 10.0.0.7
MAC: [bb:bb:bb:bb:bb:bb] MAC: [aa:aa:aa:aa:aa:aa]
Switch
AR .0.0
P
c: P
c]
10
I
Ca 7 p
:c
cc ta
cc
ch ara
:c pon
e
.
:c
m MA
:[ oa
od C
c:
AC ad
ifi : [c
cc
M ific
ca
d
do :cc:
pa mo
ap cc:c
c
e
on c:
ra
.0 ch
ta cc:
a
10 P C
IP cc]
.1
AR
.0
Atacante
IP: 10.0.0.3 Figura 2.2
MAC: [cc:cc:cc:cc:cc:cc] Ataque ARP
Spoofing.
IP Spoofing
Essa técnica de ataque tem como objetivo alterar um campo do cabeçalho IP, para que q
os pacotes sejam enviados como se partissem de uma origem diferente. O campo do
pacote alterado é o do endereço de origem, um campo de 32 bits que indica o endereço
IP de onde partiu o pacote. O cabeçalho IP possui um tamanho fixo de 20 octetos ou
160 bits, além de uma porção opcional, raramente utilizada.
Atacante
Endereço: 1.1.1.1
IP IP
TCP Internet TCP
Vítima
Segurança de Redes e Sistemas
28
Fragmentação de pacotes IP
Uma característica do TCP/IP bastante utilizada em ataques é a fragmentação de q
pacotes. Seja para dificultar a detecção de ataques ou para realizar a negação de ser-
viços, essa característica faz parte do arsenal de técnicas de ataque. A fragmentação de
pacotes está relacionada à Maximum Transfer Unit (MTU), parâmetro que especifica a
quantidade máxima de dados que pode passar em um único pacote por um meio físico
da rede. Caso um pacote tenha tamanho superior ao suportado pelo meio físico da rede,
é fragmentado (dividido).
FDDI Por exemplo, a rede Ethernet limita a transferência a 1500 octetos de dados, enquanto o FDDI
Fiber Distributed Data permite 4470 octetos de dados por pacote. Com isso, um pacote que parta de uma rede FDDI
Interface é a tecnologia
(com 4470 octetos) e passe por uma rede Ethernet (com 1500 octetos) é dividido em quatro
de transmissão de
dados em redes. fragmentos com 1500 octetos cada um, que é o tamanho suportado pela rede Ethernet.
Os fragmentos resultantes trafegam pela rede e, quando chegam ao seu destino final, são
reagrupados, com base em offsets ou deslocamentos, reconstituindo, assim, o pacote original.
Todo esse processo de fragmentação e reagrupamento é realizado de modo automático e
transparente para o usuário, de acordo com as regras do protocolo IP.
Roteador 1 Roteador 2
600 bytes
30 bytes
Figura 2.4 A possibilidade de ataques que exploram a fragmentação de pacotes IP está relacionada
Fragmentação ao modo como são implementados a fragmentação e o reagrupamento. Tipicamente, os
de pacotes IP.
sistemas não tentam processar o pacote, até que todos os fragmentos sejam recebidos e
reagrupados. Isso cria a possibilidade de ocorrer um estouro (overflow) na pilha TCP
Capítulo 2 - Explorando vulnerabilidades em redes
quando há o reagrupamento de pacotes cujo tamanho total seja maior que o espaço que
foi reservado, ou seja, pacotes maiores podem ser criados para forçar o estouro da pilha.
O resultado disso são problemas como o travamento do sistema, caracterizando ataques
do tipo Denial of Service, que comprometem a disponibilidade de recursos. Outro ataque
consiste em gerar pacotes com o offset de fragmentação negativo, que pode causar
resultados inesperados caso a pilha TCP/IP do sistema de destino não realize uma
verificação antes de tentar reagrupar os pacotes.
A fragmentação de pacotes foi explorada em ataques, inicialmente, no fim de 1996 pelo Ping
da Morte. O ataque consistia no envio de pacotes ICMP Echo Request (ping) com tamanho
de 65535 bytes. Esse tamanho, maior do que o normal, fazia com que diversos sistemas tra-
vassem por causa da sobrecarga do buffer da pilha TCP/IP, que não era capaz de reagrupar
um pacote tão grande. O ping foi empregado inicialmente devido à sua facilidade de uso,
embora outros pacotes IP grandes, sejam eles TCP (conhecido como ataque Teardrop)
29
ou UDP, possam causar esse mesmo tipo de problema. O problema existiu, na realidade,
devido a erros de implementação da pilha TCP/IP em sistemas operacionais e em equipa-
mentos de redes. Por isso, atualmente, os sistemas já corrigiram esse problema por meio
de atualizações e instalações de correções (patches). Porém, a fragmentação e o reagru-
pamento podem ser utilizados para ataques mais sofisticados, com o intuito de driblar
firewalls ou sistemas de detecção de intrusão (IDS). Isso acontece porque a fragmentação
e o reagrupamento ocorrem somente entre as pontas, o que faz com que o firewall, o
roteador ou o IDS que não suportem fragmentação, não detectem ataques cujos dados
estejam em pacotes diferentes, já que são elementos localizados entre dois hosts que se
comunicam. A fragmentação é utilizada, por exemplo, como um método de varredura como
o usado pelo Nmap, que envia pacotes fragmentados em alguns casos, de modo que sua
detecção pelo firewall ou pelo IDS torna-se mais difícil.
Uma técnica típica de ataque DoS é o SYN flooding, que, com uma enxurrada de pacotes de
requisição de conexão (SYN), causa o estouro (overflow) da pilha de memória, que passa a
não aceitar novas requisições.
Outra técnica é o envio de pacotes específicos causando a interrupção do serviço, que pode
ser exemplificada pelo Smurf. Os ataques DoS vão além da pilha de protocolos TCP/IP, como
o caso de estouro de memória em aplicações (e da interrupção do serviço), muitas vezes
causado por falhas na programação desses aplicativos. As técnicas mais avançadas de DoS
são coordenadas e distribuídas, onde os ataques partem não de um equipamento, mas de
vários, que também acabam se tornando vítimas. Essa técnica é conhecida como Distributed
Denial of Service (DDoS).
Em uma comunicação TCP normal, são trocadas as seguintes mensagens para estabelecimento
de uma sessão:
1. O cliente envia uma requisição de conexão: pacote com a opção SYN habilitada e com
o número de sequência x.
Segurança de Redes e Sistemas
2. O servidor recebe o pacote SYN e responde com uma mensagem de reconhecimento, que
consiste em um pacote com as opções SYN e ACK habilitadas (SYN-ACK) e com números
de sequência x+1 e y. O servidor, então, adiciona 1 ao número de sequência recebido pelo
cliente (x). Esse foi o método estabelecido para identificar uma determinada requisição.
3. O cliente reconhece o pacote SYN-ACK (pacote ACK com y + 1). O cliente adiciona 1 ao
número de sequência y recebido pelo servidor.
4. A conexão é estabelecida.
30
6. A conexão é encerrada com um pacote com flag FIN.
Ataque Smurf
Smurf é outro ataque de negação de serviço, no qual um grande tráfego de pacotes ping q
(ICMP echo) é enviado para o endereço IP de broadcast da rede, tendo como origem o
Spoofing endereço IP da vítima (IP Spoofing).
Em inglês, “falsificação”,
“disfarce”; se refere aos Com o broadcast, cada host da rede recebe a requisição de ICMP echo, passando todos
ataques onde infor- eles a responderem para o endereço de origem, que é falsificado, pois é o comportamento
mações no cabeçalho
padrão quando um pacote tem por destino o endereço de broadcast da rede. A rede utili-
dos protocolos são
falsificadas. zada também é afetada, pois todos os seus hosts respondem à requisição ICMP, passando
a atuar como um amplificador. Além disso, a vítima, que teve o seu endereço IP falsifi-
cado, recebe os pacotes de todos esses hosts, ficando impedida de executar suas funções
normais, sofrendo assim um ataque de negação de serviço. As vítimas do ataque, assim, são
a rede e o host que teve o seu endereço IP falsificado.
31
Ataque Smurf
Figura 2.6
Ataque Smurf.
Varredura
Apesar de não ser necessariamente uma vulnerabilidade, a varredura (scanning) é uma w
técnica muito usada por atacantes para verificar quais endereços IP de uma determinada Existem ferramentas
rede estão associados a servidores e quais portas estão abertas (TCP e UDP) nesses servi- específicas para fazer
varredura, sendo a
dores. A varredura consiste em tentar conexão em um conjunto de endereços IP e portas, mais famosa a
verificando quais retornam algum tipo de resposta. ferramenta livre Nmap.
Zenmap
32
Figura 2.7
Técnica da varre-
dura Zenmap.
Além dessas opções, o Zenmap disponibiliza todas as varreduras em uma base de dados
totalmente pesquisável.
33
Exercício de fixação 3 e
Figura 2.8
Zenmap Topology
IP Spoofing Mapping Tool.
Exercício de fixação 4 e
DoS
Explique o que é um ataque de negação de serviço?
Onde:
-V = modo monitor.
34
Ou5
Onde:
-i = indica que cada ping deve ser realizado em um intervalo de um milésimo de segundo.
O comando acima ativa o modo monitor (-V), que permite monitorar as respostas. Serão
enviados 100 pacotes (-c) com tamanho de 65500 (-d) bytes de dados (deve ser maior que
1480 para ativar a fragmentação). A opção “-S” informa para enviar o pacote com a flag SYN
configurada para a porta 80 (-p) e porta de origem 4657 (-s). A opção “–a” trocará o endereço
de origem do pacote, permitindo a realização do spoof.
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:
O comando acima envia pacotes TCP com a flag SYN ativada (-S), para a porta do serviço
web (-p 80), enviando um pacote a cada microssegundo (--faster) e alterando o endereço de
origem aleatoriamente (--rand-source).
35
Simulando um ataque Smurf
Nesse ataque será utilizado o comando hping para enviar pacotes ICMP Echo Request para
o endereço de broadcast da rede. Assim, todas as máquinas responderão para o endereço
de origem especificado no pacote que deve estar alterado para o endereço-alvo (Spoofing).
Para que o ataque seja efetivo, a proteção contra ICMP Echo Request para endereço de
broadcast deve estar desabilitada em todas as máquinas do laboratório. Para desativar essa
proteção nas máquinas Linux, use o seguinte comando:
Após liberar a resposta para ICMP Echo Request para o endereço de broadcast da rede,
inicie tcpdump ou Wireshark em um terminal separado, para verificar o andamento do
ataque com o comando:
O comando acima vai enviar pacotes ICMP Echo Request para o endereço de broadcast da
rede do laboratório, no modo mais rápido possível (um pacote a cada 1 microssegundo),
com endereço de origem alterado para IP_ALVO (Spoofing). Os alunos devem verificar no
tcpdump os pacotes de ICMP Echo Reply que estão sendo enviados para o alvo do ataque.
O tamanho do pacote ICMP Echo Request enviado ainda pode ser aumentado para forta-
lecer o ataque. Assim, a banda do alvo será rapidamente consumida pelos pacotes de ICMP
Echo Reply.
Neste tópico foram abordados alguns ataques conhecidos em redes TCP/IP. Existe ainda
uma série de outros ataques conhecidos, como: ARP poison, connection hijacking, sequence
w
O site www.powertech.
prediction attack, buffer overflow, fraggle e race condition, entre outros. Os documentos a no/smurf lista algumas
seguir fornecem mais informações caso tenha interesse em se aprofundar no assunto: redes que aceitam
ICMP Echo Request
11 Técnicas adotadas pelos crackers para entrar em redes corporativas, de Cristiano para o endereço de
broadcast e podem ser
Gerlach, Rede Nacional de Ensino e Pesquisa (RNP).
utilizadas como
11 Introduction to TCP/IP Network Attacks (Introdução aos ataques a redes TCP) de Guang amplificadores para
ataques Smurf. No site
Yang, Department of Computer Science, Iowa State University.
também é possível
11 Attack Lab: Attacks on TCP/IP Protocols (Laboratório de ataques: ataques a protocolos verificar se a sua rede
está vulnerável a esse
TCP/IP) de Wenliang Du, Syracuse University.
tipo de ataque.
Exploit
Segurança de Redes e Sistemas
Exploit significa literalmente “explorar”, sendo uma palavra usada para se referir a pequenos
códigos de programas para explorar falhas de segurança causadas por erros de programação.
36
Metasploit
O Metasploit é um framework específico para testes de penetração. É uma ferramenta
bastante utilizada, visto que possui diversos plugins para exploração de vulnerabilidades de
forma simples, que são atualizados constantemente.
Basicamente, um framework é uma estrutura de apoio que funciona como uma abstração
entre vários projetos de software para funções genéricas. Tipicamente inclui programas de
apoio, bibliotecas e uma linguagem de script, entre outros softwares para ajudar a desenvolver
e unir diferentes componentes de um projeto.
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.
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 abaixo, selecionamos uma vulnerabilidade no componente
Samba, presente no sistema operacional MAC OS X. Note que a versão web descreve a vulne-
rabilidade e oferece uma série de referências para o analista procurar mais informações sobre
uma vulnerabilidade específica. O passo seguinte é escolher um Target, que corresponde a um Capítulo 2 - Explorando vulnerabilidades em redes
tipo de exploração que será realizado. No caso abaixo, o único tipo disponível é o Stack brute
force, que tentará um ataque de força bruta na pilha do processo vulnerável.
37
Em seguida, iremos escolher o tipo de payload usado, que determinará o que o Metasploit
tentará conseguir na máquina remota. Entre as possibilidades, podemos obter um acesso
ao console na máquina através de uma porta específica ou conectar de volta na máquina do
atacante, ofertando um acesso remoto.
Segurança de Redes e Sistemas
Por fim, escolhemos os parâmetros específicos para esse tipo de vulnerabilidade. No caso, o
endereço IP do destino, a porta de destino e a porta local. Temos ainda alguns parâmetros
avançados, onde podemos escolher o endereço local do cliente, configurações de Proxy,
parâmetros específicos do Samba, entre outros.
38
Ao clicar no botão Launch exploit, estaremos fazendo o Metasploit tentar explorar a vulnera-
bilidade em questão, e em caso de sucesso, obter acesso remoto privilegiado.
Veja que o Metasploit efetivamente realiza um ataque ao servidor remoto, de modo que não
deve ser usado em servidores que não estejam sob a administração ou controle do usuário
da ferramenta.
# msfconsole
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:
39
Name Current Setting Required Description
Explot Target:
Neste caso, o exploit aceita as opções de Remote Host, Remote port e SMBPIPE. Para confi-
gurar essas opções, utilize o comando set:
O próximo passo é configurar o payload, que nada mais é do que uma parte do software que
permite o controle do sistema-alvo após ser explorado. Nesse caso o exploit transporta o
payload para ser utilizado quando a falha do sistema é explorada.
Um dos payloads mais utilizados é o meterpreter. Com ele podemos ativar coisas interes-
santes no computador remoto, como, por exemplo, fazer upload e download de arquivos,
tirar screenshots e recolher hashes de senhas. Pode-se até mesmo controlar a tela, usando
mouse e teclado para usar completamente o computador.
Com o comando show payloads verificamos os payloads suportados pelo exploit selecionado:
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:
40
msf wins_ms08_067_netapi > set TARGET 56
TARGET -> 56
No caso do ataque informado acima, poderíamos automatizá-lo com a seguinte linha de comando:
Backtrack
O Backtrack é um sistema operacional Linux voltado para a área de segurança, principal-
mente para testes de penetração. É uma distribuição muito difundida pelos profissionais de
segurança, não necessita de instalação física na máquina e pode rodar diretamente do CD.
Contando com mais de 300 ferramentas diferentes, entre elas o próprio Metasploit, é con-
siderada a ferramenta mais completa do mercado para testes de segurança e penetração
baseada em software livre.
As ferramentas hackers do Backtrack podem ser acessadas pelo menu Applications >
Backtrack. São divididas em 10 categorias diferentes, como veremos a seguir.
Information Gathering
Ferramentas para obter informações sobre redes, aplicações web, análise de banco de
dados e análise de redes wireless. Exemplos:
11 Dnsdict6 – utilitário usado para enumerar um domínio para entradas DNS IPv6.
11 Dnsmap – utilitário usado para criar listas de hosts de registros DNS para um domínio.
Vulnerability Assessment
Exploitation Tools
11 Air Crack – ferramenta utilizada para descobrir chaves WEP e WPA em sistemas Wireless.
41
Privilege Escalation
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
11 Brute Force hitag2 – programa de força bruta capaz de capturar dados em etiquetas RFID
padrão HITAG.
11 Brute Force MIFARE – programa de força bruta capaz de capturar dados em dispositivos
de acesso por proximidade e cartões inteligentes.
Stress Testing
11 Hping – programa para a criação de pacotes TCP/IP, pode ser utilizado com ICMP, TCP e
UDP e é amplamente utilizado para ataques do tipo negação de serviço.
11 Letdown – outra ferramenta muito eficiente para ataques DoS.rtpflood – programa para
inundar telefones ips com pacotes UDP contendo dados RTP.
11 IAXflood – ferramenta para criar inundação de pacotes utilizada em redes com protocolo
IAX, que é usado pelo PABX asterisk.
42
Forensics
Ferramentas de perícia forense, tais como programas para detectar rootkits, obter informações
sobre dados armazenados desde uma rede até a memória RAM do computador. Exemplos:
11 DFF (Digital Foresics Framework) – pacote de ferramentas open source modular que inclui
utilitários para recuperação de dados, pesquisa de provas e análises.
Reporting Tools
Ferramentas geradoras de relatórios sobre evidências e captura de dados feita por pro-
gramas de perícia forense. Exemplos:
43
44
Segurança de Redes e Sistemas
Roteiro de Atividades 2
Atividade 1 – Realizando ataques de protocolos
Nesta primeira atividade prática, o objetivo é identificar e compreender ataques DOS e fazer
a análise com um sniffer (Wireshark e/ou tcpdump) para interpretar o modo como os pacotes
são elaborados para o respectivo ataque DOS.
1º Ataque: Synflood
Como já tratado na parte teórica deste curso, esse ataque consiste em enviar uma enxurrada
de pacotes com a flag SYN ativa, utilizando a ferramenta hping3. Para isso, é necessário que
você desative a proteção contra SYN Flooding do kernel de todas as máquinas virtuais Linux.
Para desabilitar a proteção, use o seguinte comando (executar como root):
Agora inicie a captura de pacotes na máquina FWGW1-G, que será nossa máquina-alvo.
No exemplo abaixo estamos utilizando o tcpdump para essa atividade. Nossa máquina ata-
cante será a máquina virtual LinServer-G.
# tcpdump -i eth1 -n
Por fim, execute a partir da estação Linux atacante o seguinte comando para iniciar o ataque
(executar como root):
O comando acima envia pacotes TCP com a flag SYN ativada (-S), para a porta do
serviço SSH (-p 22), na maior velocidade possível e alterando o endereço de origem
aleatoriamente (--rand-source).
2º Ataque: Smurf
Como já tratado na parte teórica deste curso, esse ataque consiste no envio de pacotes
ICMP Echo Request para o endereço de broadcast de uma rede desprotegida. Assim, todas
as máquinas responderão para o endereço de origem especificado no pacote que deve
estar alterado para o endereço alvo (Spoofing). Para que o ataque seja efetivo, a proteção
45
contra ICMP Echo Request para endereço de broadcast deve estar desabilitada em todas as
máquinas Linux. Para desabilitar a proteção, use o seguinte comando (executar como root):
# tcpdump -i eth1 -n
Por fim, execute a partir da estação Linux atacante o seguinte comando para iniciar o
ataque: (EXECUTAR COMO ROOT). Troque o <END_BROADCAST_REDE> pelo endereço de
broadcast da rede, no nosso caso 172.16.G.255
O comando acima vai enviar pacotes ICMP Echo Request para o endereço de broadcast da
rede do laboratório, no modo mais rápido possível, com endereço de origem alterado para
IP_ALVO (Spoofing). Os alunos devem verificar no tcpdump os pacotes de ICMP Echo Reply
enviados para o alvo do ataque. O tamanho do pacote ICMP Echo Request enviado ainda
pode ser aumentado para dar maior força ao ataque. Assim, a banda do alvo será rapida-
mente consumida pelos pacotes de ICMP Echo Reply.
A partir de uma máquina Linux, realize o port scan padrão na máquina Windows 2008.
# nmap -v 172.16.G.20
Agora vamos explorar outros modos de funcionamento do Nmap. Teste os modos stealth e
acompanhe o andamento da varredura de portas através do Wireshark. Procure entender o
que está acontecendo e a diferença entre os dois comandos executados, para comprovar os
conceitos do material teórico.
# nmap -O 172.16.G.20
# nmap -A 172.16.G.20
Agora vamos realizar um ataque utilizando o Nmap em modo decoy contra a máquina virtual
Windows 2008. Capture os pacotes usando o Wireshark e analise-os. Procure identificar a
origem do ataque.
46
Atividade 3 – Realizando um ataque com Metasploit
Nessa atividade iremos executar uma série de comandos utilizando o metasploit disponível
na máquina virtual BackTrack. Inicie essa máquina virtual e, paralelamente, acesse a inter-
face gráfica do servidor Windows 2008. Nesse servidor, desative o firewall e instale o Adobe
Reader versão 9.3.4. Embora essa seja uma versão antiga do Adobe Reader, o objetivo
desta atividade é demonstrar duas coisas: primeiro, o poder da ferramenta Metasploit, e,
segundo, que não devemos instalar em servidores programas desnecessários, como visuali-
zadores de PDF.
1º passo: gerar um arquivo PDF para explorar a falha de segurança do Adobe Reader.
Acesse o shell do BackTrack e digite:
#msfconsole
Podemos alterar o nome do arquivo a ser gerado para um nome mais amigável.
# mv /root/.msf4/local/naoclick.pdf /var/www
# /etc/init.d/apache2 start
2º passo: escutar na porta informada no passo anterior para estabelecer uma conexão com
Capítulo 2 - Roteiro de Atividades
# msfconsole
47
msf exploid(handler) > set LHOST 172.16.G.30
Neste momento, o Backtrack está esperando uma conexão na porta informada, neste caso
a porta 4444. A máquina-alvo deverá abrir o navegador e informar no campo endereço o IP
do Backtrack. Serão listados os arquivos da pasta /var/www. Clique com o botão direito no
arquivo naoclick.pdf e salve na área de trabalho. Após esse procedimento, clique duas vezes
no arquivo (poderá aparecer uma tela de aceite dos termos da Adobe, clique em accept).
Enquanto o arquivo é carregado, verificamos na máquina atacante que uma sessão foi esta-
belecida. A partir desse momento já estamos com acesso à máquina-alvo.
Para manter a conexão aberta, mesmo que o alvo seja reiniciado, digite:
Será instalado um script dentro da máquina-alvo e bastará apenas que o usuário faça login
novamente para estabelecer a conexão, não precisando mais que o alvo abra o arquivo PDF.
Comando meterpreter
Procure entender o que cada linha de comando abaixo realiza, e tenha paciência. Lembre-se
de que você está explorando vulnerabilidades, e de que é comum que alguns alunos não
consigam completar essa atividade.
48
Ativando meterpreter > keyscan_start
keylogger
meterpreter > keyscan_dump
meterpreter > keyscan_stop
# tail -f /var/log/auth.log
Na máquina virtual Backtrack execute o comando abaixo para identificar os módulos insta-
lados no Medusa:
Capítulo 2 - Roteiro de Atividades
# medusa –d
# nc 172.16.G.1 22
SSH-2.0-OpenSSH_5.1p1 Debian-5
49
Crie um arquivo de texto chamado usuários.txt contendo, em cada linha, o nome dos usu-
ários que você acredita que existam no alvo. Para esta atividade insira, em cada linha, os
nomes: root, marcelo e marco.
Crie um arquivo texto chamado senhas.txt. Neste arquivo serão inseridas, em cada linha,
as senhas que serão utilizadas no nosso ataque de dicionário. Para esta atividade não se
esqueça de inserir os textos 123456 e abacate.
Agora vamos realizar o ataque de força bruta SSH contra o alvo. Execute o seguinte comando:
50
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 este capítulo e o próximo, esses conceitos
serão aprofundados.
Exercício de nivelamento 1 e
Firewall
O que você entende por firewall?
51
Firewall
Um firewall consiste em uma técnica de segurança de redes bastante efetiva. O seu nome
vem das portas corta-fogo (firewalls) utilizadas em edifícios para conter o fogo de um pos-
sível incêndio, de modo que ele não se espalhe para o resto do prédio. Pode ser definido
como um componente ou conjunto de componentes que restringem acesso entre uma rede
protegida e a internet, ou entre outros conjuntos de redes.
Na prática, podemos pensar num firewall como uma forma de limitar a exposição da sua
rede à internet, mantendo suas funcionalidades para os usuários.
Tecnologias de firewall
11 Filtros de pacotes. q
11 Filtros de pacote dinâmicos.
11 Servidores proxy.
11 NAT.
Filtros de pacotes
A funcionalidade mais básica que um firewall pode oferecer é chamada de filtro de pacotes,
mecanismo de segurança de rede que permite o controle dos dados que entram, saem ou
passam pelo ponto de proteção. Um filtro de pacote é capaz de decidir sobre a passagem ou
não de um pacote, de acordo com as informações encontradas no cabeçalho IP. Usualmente,
os filtros de pacotes agem sobre os seguintes campos de um pacote IP:
Alguns filtros de pacotes mais avançados podem agir sobre outros campos do pacote,
como endereços físicos (MAC Address), outras flags (ex.: RST), campos de fragmentação de
pacotes, entre outros. Na verdade, um filtro de pacotes pode usar qualquer campo de qual-
52
quer um dos cabeçalhos do pacote. Usualmente, um filtro de pacotes não realiza decisões
com base no conteúdo (dados) dos pacotes, uma vez que analisar o conteúdo do pacote
pode ser dispendioso e tornar o processo de roteamento mais lento. Apesar disso, existem
ferramentas que usam esse recurso, como o l7filter. A sintaxe de comandos de um filtro de
pacotes depende da ferramenta utilizada; porém, em linhas gerais, a forma de definir as
regras é muito semelhante. No capítulo seguinte serão vistos alguns exemplos do uso de
ferramentas de filtros de pacotes.
Como exemplo, vamos imaginar que estamos querendo definir uma regra de filtragem que
irá bloquear todos os pacotes provenientes da estação A (endereço IP 192.168.1.1) para o
servidor B (endereço IP 192.168.1.2), na porta 110, utilizando o protocolo de transporte TCP.
Relembrando os conceitos de TCP/IP, quando iniciamos uma conexão TCP, o remetente
escolhe uma porta de origem que não esteja em uso, a partir da porta 1024. Sendo assim,
podemos definir a seguinte regra:
No caso, estamos usando uma sintaxe fictícia. Todos os pacotes que se enquadrem na regra
acima serão automaticamente descartados. Os filtros de pacotes normalmente definem ainda
uma ação padrão, caso não haja nenhuma regra indicando o que fazer com o pacote. Essa
ação padrão se refere à estratégia de segurança denominada Atitude de Bloqueio Padrão e
Permissão Padrão. Caso seja escolhida a atitude de bloqueio padrão, todos os pacotes que
não estiverem explicitamente permitidos por alguma regra serão bloqueados e vice-versa.
Lembre-se de que a atitude de bloqueio padrão é mais segura do que a de permissão padrão.
A partir desse exemplo podemos perceber que em um ambiente mais complexo a quanti-
dade de regras aumentará bastante, tornando o ambiente complicado para gerenciar. Do
ponto de vista do administrador de segurança, na grande maioria dos casos, ele apenas
quer decidir se vai permitir ou bloquear uma determinada conexão. Pensando nisso, foram
criados os filtros de pacotes dinâmicos, também chamados de stateful inspection, stateful
firewall ou Stateful Packet Inspection (SPI). Nesse caso, o próprio filtro de pacotes mantém
informações sobre o estado das conexões e permite automaticamente todos os pacotes
relacionados, de modo que o administrador necessita apenas especificar a regra do pri-
meiro pacote e indicar que os pacotes relacionados serão automaticamente aceitos.
53
Alguns filtros de pacotes dinâmicos tratam ainda de protocolos de aplicação, cuja conexão
é mais complexa, como, por exemplo, FTP e H.323, cuja liberação utilizando os filtros de FTP
pacotes comuns se tornaria complicada e provavelmente iria aceitar muito mais pacotes do File Transfer Protocol é
que o necessário, por conta do comportamento dinâmico desses protocolos. um protocolo de trans-
ferência de arquivos
Recentemente, alguns fabricantes têm anunciado firewalls UTM (Unified Threat Manager), na internet.
que são firewalls com diversos recursos integrados, também chamados de firewalls all-in-one
(tudo em um). Esses produtos normalmente integram uma série de recursos, como antivírus,
anti-spam, VPN, filtros de conteúdo e balanceamento de carga, entre outros.
Servidores proxy
Servidores proxy são servidores que acessam algum serviço da internet em nome de uma
H.323
estação cliente, que solicita o acesso ao proxy. Um proxy pode atuar no nível de aplicação
Protocolo de trans-
(mais comum), onde para cada aplicação há um proxy diferente (ex.: proxy HTTP, proxy FTP,
missão de áudio e vídeo
proxy H.323 etc.) ou no nível de transporte, onde há um proxy genérico para conexões TCP na internet.
e UDP (ex.: Socks). Socks
Protocolo da internet
Os proxies de aplicação possuem a vantagem de entender o protocolo de aplicação, de que permite que apli-
modo que eles são capazes de prover registros detalhados sobre os acessos realizados, cações cliente-servidor
além de permitir o controle de acesso através de parâmetros de aplicação, como bloquear usem transparente-
mente o serviço de
o acesso a arquivos executáveis em conexões HTTP, controle impossível de ser realizado uma rede ao firewall.
apenas com filtros de pacotes. Por outro lado, a aplicação em questão deve estar ciente O termo Socks vem da
da existência do Proxy para realizar o acesso normalmente através de um parâmetro de abreviação de sockets.
NAT
Segurança de Redes e Sistemas
Network Address Translation (NAT) é um recurso que permite a modificação de um ende- RFC
reço de rede em um pacote IP durante o seu trânsito em um dispositivo de roteamento. Request For Comments
O NAT pode ser utilizado em uma variedade de situações, sendo as mais comuns a “publi- é um documento que
descreve os padrões
cação” de um servidor na internet e o acesso de uma rede privativa à internet. de cada protocolo pro-
posto para a internet,
Existem tipos diferentes de NAT, com utilidades diferentes. Inicialmente veremos os tipos de NAT antes de ser conside-
existentes e a seguir conheceremos as suas aplicações. O NAT é definido em uma série de RFCs: rado um padrão.
54
11 RFC 1631: The IP Network Address Translator (NAT).RFC 2663: IP Network Address Trans-
lator (NAT) Terminology and Considerations.
11 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?
Topologias de firewall
Não existe uma fórmula para se planejar um firewall, pois isso vai depender das parti- q Capítulo 3 - Firewall – Conceitos e Implementação
Dual-Homed
Essa é a topologia mais simples, que consiste em apenas uma máquina conectada tanto q
à rede pública quanto à rede protegida, porém com a função de roteamento desabili-
tada. Dessa forma, para a rede protegida acessar a rede pública, ela necessitará utilizar
algum recurso presente na máquina em questão, como um Proxy ou NAT. A figura 3.2
mostra uma topologia dual-homed.
55
Screened Host
Nessa arquitetura, a rede interna está conectada à internet (rede pública) através de q
um roteador com o recurso de filtros de pacotes. Esse é chamado de screening router.
Os serviços são providos através de uma máquina da rede interna, chamada de bastion
host (ou bastião). O bastião é a única máquina com acesso à internet, garantido através
da configuração de filtros de pacotes no roteador. Dessa forma, as outras estações não
possuem acesso direto, devendo utilizar os serviços disponíveis no bastion (proxies).
11 Permitir que o bastião acesse a internet, utilizando os serviços permitidos pela política
de segurança da organização.
11 Permitir que as estações da rede interna acessem o bastião, utilizando os serviços per-
mitidos. Lembre-se de que o bastião necessita de um endereço IP válido para acessar a
internet ou que o roteador realize NAT para permitir esse acesso. Dessa forma, apesar de
estarem na mesma rede física, as estações necessitam acessar o roteador para alcançar
o bastião, visto que ele se encontra em outra rede lógica.
Internet
Roteador
de filtragem
Figura 3.2
Estação Bastion Host Estação Estação Topologia
dual-homed.
Note que o firewall corresponde nesse caso ao conjunto composto pelo bastion host e o
screening router.
Screened Subnet
Essa arquitetura adiciona uma camada extra de segurança em relação à anterior, através q
de uma rede extra chamada de perímetro ou Zona Desmilitarizada (DMZ). Essa rede cria DMZ
um isolamento entre a rede interna e a internet. A vantagem principal é que os bastion DeMilitarized Zone
hosts ficam em uma rede isolada, de forma que defesas extras podem ser aplicadas para é a parte da rede
onde o nível de
impedir que um bastion host comprometido tenha acesso à rede interna, aplicando o segurança é um
conceito de defesa em profundidade. pouco menor e
onde se concentram
Segurança de Redes e Sistemas
A rede DMZ fica protegida por dois roteadores, um externo ligado à internet e um interno os serviços públicos.
ligado à rede interna. Esses roteadores devem ser configurados corretamente para per-
mitir apenas as conexões estritamente necessárias. Os bastion hosts continuam a ser o
contato com a rede pública e possuem serviços para a rede interna, como proxies e serviços
públicos como correio eletrônico e páginas www públicas.
56
Internet
Roteador
Bastion externo
DMZ
Roteador
interno
Figura 3.3
Rede DMZ
protegida por dois Rede interna
roteadores.
Variações
Algumas variações podem ser feitas em relação às topologias apresentadas. A seguir
algumas variações comuns:
11 Múltiplos bastion hosts: caso diversos serviços estejam sendo oferecidos ou haja uma
razão para ter serviços divididos em diferentes servidores (redundância), pode-se colocar
mais de uma máquina na rede DMZ. Lembre-se de configurar as regras de filtragem de
acordo com os roteadores.
11 Junção dos roteadores internos e externos: essa é uma variação muito comum, visto
que a junção dos roteadores reduz custos. Lembre-se de que nesse caso o comprometi-
mento do roteador compromete a arquitetura inteira.
11 Junção do bastion host com o roteador externo: não é muito comum, pois normal-
mente a conexão à internet requer um hardware específico por conta dos requisitos
das operadoras de telecomunicação (seriais síncronas, fibras ópticas etc.), mas pode ser
adotado sem problemas. Não é recomendada a junção com o roteador interno, uma vez
que, caso o bastião seja comprometido, a rede interna estará exposta.
11 Múltiplos perímetros: outra variação comum, comum ao se referir a uma DMZ ou a uma
extranet, rede usada para conectar outras redes externas.
11 Firewalls internos: usados para separar redes com maior requisito de segurança ou
Capítulo 3 - Firewall – Conceitos e Implementação
57
Internet
Roteador
Bastion Extranet
externo
DMZ
Roteador
Bastion
interno 1
Roteador
Rede interna Rede segura
interno 2
Durante as atividades práticas será exercitada a construção de topologias de firewall. Figura 3.4
Exemplo de topo-
Exercício de fixação 3 e
logia complexa.
Topologias de firewall
Quais são as arquiteturas de firewall?
Exercício de fixação 4 e
Screened Subnet
Explique o que é DMZ. Sua organização possui DMZ?
Implementação de firewalls
Existem diversas soluções desenvolvidas sob o critério de licença de software livre que
implementam o controle de acesso perimetral em redes TCP-IP. Soluções mais comuns:
Netfilter (Iptables), para Linux; Ipfilter (IPF) e IP Firewall (IPFW), para FreeBSD; Packet Filter
(PF), para OpenBSD, e FreeBSD.
Ao final deste capítulo o aluno terá um resumo das principais características de cada uma
das implementações, realizando atividades práticas de implantação de controle perimetral.
Assim estará apto a configurar ferramentas de filtragem de pacotes, proxy HTTP e NAT.
Segurança de Redes e Sistemas
Netfilter (Iptables)
O Iptables é um framework capaz de realizar filtros de pacotes, tradução de endereços q
de rede e tradução de número de portas TCP e UDP, além de outros tipos de manipu-
lação de pacotes TCP/IP.
Ele foi desenvolvido para trabalhar integrado com o Linux kernel 2.4 e 2.6. Surgiu da reescrita e
evolução dos códigos do Ipfwadm para o Linux kernel 2.0 e do Ipchains para o Linux kernel 2.2.
58
Uma virtude do Netfilter é suportar módulos, permitindo implementações das mais simples
às mais sofisticadas.
O objetivo deste curso não é o de esgotar as características do Netfilter, mas sim orientar o aluno
no entendimento de um sistema de firewall, para um possível aprofundamento futuro.
Principais características: q
11 Stateless packet filtering (IPv4 e IPv6).
Implementação do Netfilter
A sintaxe do Netfilter pode parecer confusa no início. O objetivo da linguagem é permitir
implementações robustas. O Netfilter permite a manipulação desde as regras mais simples
até as mais complexas, onde é possível reduzir o volume do arquivo de configuração e faci-
litar o entendimento dos objetivos do(s) filtro(s).
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.
Kernel 11 Accept: ação contrária ao Drop ou Reject, indica ao Iptables para aceitar e encaminhar o
Componente central do
pacote.
sistema operacional res-
ponsável por fornecer 11 State: estado específico de um pacote em uma conexão TCP/IP. Por exemplo: o primeiro
os recursos computa-
pacote de uma conexão TCP é o pacote com a opção SYN ligada. O estado da conexão é
cionais disponibilizados
pelo hardware aos conhecido através do sistema de rastreamento de conexões, que mantém uma base de
aplicativos. dados com o estado de todas as conexões. Essa base fica em uma área dentro do kernel
do Linux, sendo controlada automaticamente por ele.
59
11 Chain: cadeia de conjuntos de regras que são aplicadas em momentos distintos no kernel
do Linux. As três principais chains são INPUT, OUTPUT e FORWARD:
22 OUTPUT: utilizada quando o pacote é originado pelo firewall e sai por alguma
interface de rede.
22 FORWARD: utilizada quando um pacote atravessa o firewall, não tendo como destino o
próprio firewall. Daqui podemos verificar que as chains INPUT e OUTPUT protegem o
próprio firewall, e a chain FORWARD protege o que estiver atrás dele.
11 Table: o Iptables possui quatro tabelas, cada uma com propósitos específicos:
22 Nat: utilizada para manipulação de tradução de endereços IP. Os pacotes podem ter os
endereços de origem, destino, porta de origem e de destino alterados de acordo com
o especificado na regra. Para a tradução de pacotes é necessário especificar apenas
a tradução do pacote inicial da conexão, de modo que todos os pacotes seguintes
pertencentes à essa conexão serão automaticamente traduzidos.
22 Filter: utilizada exclusivamente para filtros de pacotes, de forma a realizar DROP, LOG,
ACCEPT e REJECT de pacotes TCP/IP, conforme foi visto.
22 Raw: utilizada quando desejamos filtrar um pacote, mas não queremos monitorar o
estado da conexão. Dessa forma, estamos fazendo um filtro de pacotes simples.
11 Match: termo utilizado quando um pacote “encaixa” em uma determinada regra; dizemos
que o pacote “deu match” em uma determinada regra do Iptables.
11 Target: termo utilizado para informar o que será feito com os pacotes que “derem match”
em determinada regra; o target pode ser Accept, Drop, Reject etc.
11 Rule: uma regra é definida como um match ou conjunto de matches de pacotes com um
único target.
11 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).
60
Modo de operação do Netfilter
O Netfilter interage com o kernel do Linux baseado na decisão de encaminhamento de q
pacotes. O modo de funcionamento é resumido na próxima figura.
Kernel
Entrada
Tipo de
Forward Saída
roteamento
Figura 3.5
Processo de decisão Input Processo local Output
do Netfilter.
61
A representação completa do funcionamento do Iptables é apresentada na Figura 3.6.
Network
raw
PREROUTING
mangle mangle
mangle
INPUT PREROUTING
INPUT
filter
mangle nat
INPUT
INPUT PREROUTING
Routing
Local Decision
Process
Routing mangle
mangle
Decision FORWARD
INPUT
raw filter
OUTPUT FORWARD
mangle Routing
OUTPUT Decision
nat mangle
mangle
OUTPUT INPUT
POSTROUTING
filter
mangle nat
OUTPUT
INPUT POSTROUTING
Figura 3.6
Detalhamento
Segurança de Redes e Sistemas
do processo de
encaminhamento
Network
do Iptables. Fonte:
Frozentux.
Chains do Netfilter: q
11 PREROUTING
11 INPUT
11 FORWARD
62
11 OUTPUT q
11 POSTROUTING
Tabela Nat
Tabela Mangle
Tabela Raw
11 INPUT: nessa chain são tratados os pacotes destinados ao firewall no momento anterior à
entrega ao sistema responsável pelo processamento desses pacotes. Nessa chain podem
ser analisados os pacotes das tabelas Mangle e Filter.
11 FORWARD: nessa chain são tratados os pacotes que não são destinados ao firewall e
serão encaminhados a outro host na rede. Nessa chain podem ser analisados os pacotes
das tabelas Mangle e Filter.
11 OUTPUT: nessa chain são tratados os pacotes gerados por processos do próprio host, que
serão enviados à rede. Nessa chain podem ser analisados os pacotes das quatro tabelas.
11 POSTROUTING: nessa chain são analisados pacotes que estão saindo do firewall e não
sofrerão nenhum outro tipo de processamento pelo host. Nessa chain são permitidas
manipulações apenas de pacotes das tabelas Mangle e Nat.
Exercício de fixação 5 e
Netfilter
Capítulo 3 - Firewall – Conceitos e Implementação
Explique o funcionamento do Netfilter, usando como base o Iptables.
Controle perimetral
11 Controle de acesso ao firewall. q
11 Controle de acesso através do firewall.
63
Segue um exemplo de configuração de Dual-Homed firewall utilizando Iptables, com o
objetivo de gerar logs dos pacotes ICMP destinados ao firewall (que são encaminhados pelo
firewall) e dos que são gerados pelo firewall; a barra invertida “\” indica que a regra continua
na próxima linha:
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
acima não havia a necessidade do parâmetro –t filter). Exemplo:
iptables –t nat –L
iptables –L
iptables –t nat –F
64
-j: ( Jump) indica a ação ou o target da regra. Exemplo:
man iptables
Tradução de IP (NAT)
O Iptables tem uma tabela especial para manipulação de tradução de endereço IP nos
pacotes TCP/IP. Essa tabela será utilizada para a realização de controle de NAT das conexões,
sendo elas: SNAT, DNAT, NAT Estático e NAT Dinâmico, conforme apresentado no capítulo 2.
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:
Nos exemplos acima foram usados parâmetros para identificação da origem do pacote, que
podem ser usados em qualquer regra, não somente em regras de NAT. São eles:
11 -s: define a origem do pacote, que pode ser um único endereço IP ou uma rede, como nos
exemplos acima.
11 -o: define a interface de saída do pacote. Nos exemplos acima, para serem sujeitos às
regras, os pacotes devem sair pela interface eth0.
Para identificação do destino, podemos usar o parâmetro –d de forma análoga, assim como
o parâmetro –i para indicar a interface de entrada.
65
DNAT
Esse NAT, justamente como sugere o nome, foi concebido para realizar a troca do endereço
IP de destino de uma conexão TCP/IP. No exemplo a seguir, temos um servidor em uma rede
com endereço privado, que não é roteável pela internet. Assim foi disponibilizado um ende-
reço IP público que deve ser traduzido para o endereço IP privado ao passar pelo NAT.
Nesse exemplo, verificamos dois novos parâmetros: –p, que indica o protocolo em questão
(exemplos: TCP, UDP, ICMP) e –dport, que indica a porta de destino. De forma análoga, –sport
serve para indicar a porta de origem.
NAT Dinâmico
Diferente dos casos anteriores, onde havia traduções de endereços IP de Um para Um, ou
que normalmente chamamos de estáticos. Há também a necessidade de tradução de vários
endereços IP de uma rede para um único endereço IP ou um pequeno grupo de endereços
IP. Nesse exemplo, temos uma rede local com endereços IP privados, que ao estabelecer
conexão com a internet precisa de endereço de origem válido; para isso, todas as conexões
TCP/IP saem com o endereço IP válido da interface externa do firewall.
q
Berkeley nos anos 70.
11 Ativação Hoje não é um único
sistema operacional,
11 Controle mas uma extensa
família derivada do
11 Configuração
original. Membros
22 Ação – block ou pass mais conhecidos:
FreeBSD, OpenBSD,
22 Direção NetBSD e Darwin
(base do Mac OS X).
22 Log
22 Quick
Ports
22 Família de endereço IP – inet ou inet6 Também conhecido por
Sistema de Ports ou
22 Protocolo
Coleção de Ports, é um
22 Endereço de origem ou destino sistema de organi-
Segurança de Redes e Sistemas
66
Para instalação do PF no FreeBSD é necessário compilar o kernel do FreeBSD com suporte
ao PF, habilitando os módulos necessários. Para o funcionamento do PF no FreeBSD é
necessário adicionar as seguintes linhas de comando no arquivo de configuração /etc/rc.conf,
conforme mostrado abaixo:
pf_flags=”” # Parâmetros
adicionais para iniciar o PF
pflog_flags=”” # Parâmetros
adicionais ao iniciar os logs
Ativação
Ocorre automaticamente editando o arquivo de configuração /etc/rc.conf conforme citado
ou manualmente com os seguintes comandos:
Controle
Após iniciado o PF, pode ser utilizada a ferramenta pfctl para realizar as verificações e con-
trole do PF. Seguem os principais controles:
67
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 uick: significa que essa deve ser a última regra a ser analisada, não verificando
as regras seguintes.
11 Interface: nome da interface de rede que o pacote está passando, como fxp0 e en0.
11 Fam_de_end: protocolo que está sendo analisado; inet para IPv4 e inet6 para IPv6.
11 Protocolo: protocolo da camada de transporte que está sendo analisado, pode ser TCP,
UDP ou qualquer outro protocolo especificado no arquivo /etc/protocols.
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
origem da conexão o endereço IP de um segmento de rede:
Segurança de Redes e Sistemas
block in quick on fxp0 proto tcp from any to any port ssh
pass in all
68
Firewall Builder
11 Interface gráfica. q
11 Padronização da configuração.
11 Minimização de erros.
O Firewall Builder é um projeto disponível em dois tipos de licença, software livre para Linux
e FreeBS, e licença comercial para Windows e MAC OS. É instalado na máquina do adminis-
trador do firewall, que envia a sintaxe para o firewall, que a escreve automaticamente para
o host do Iptables. É uma ferramenta capaz de manipular regras do Packet Filter (PF do
OpenBSD e FreeBSD) e outros roteadores e firewalls comerciais.
Figura 3.7 A configuração gráfica da figura 3.7 representa os seguintes comandos no Iptables:
Exemplo de
configuração # iptables –F # Limpa todas regras do
Netfilter. Iptables
69
# iptables -A FORWARD -i eth1 -d 192.168.1.0/24 -j DROP # Bloqueia o
tráfego com
# na rede 192.168.1.0
# iptables -L -n
70
Roteiro de Atividades 3
Atividade 1 – Filtros de pacotes
Na criação de regras em filtros de pacotes é preciso traduzir os acessos que queremos
permitir ou bloquear, em regras baseadas em endereços IP, portas e flags. Utilizando a lin-
guagem fictícia dos exemplos, crie regras para as seguintes situações. Caso seja necessário,
invente uma sintaxe para novos parâmetros:
1. Permitir conexões TCP (ida e volta) para envio de correio eletrônico para um servidor
SMTP no endereço IP 192.168.5.1.
1.
Intranet Internet
20 Mbps
8 Mbps
R2 R1
Capítulo 3 - Roteiro de Atividades
71
2.
Internet
20 Mbps
Servidor Servidor de
de e-mail aplicações web
R1
R2
Servidor de Servidor
banco de dados mainframe PC PC PC PC
Internet
DHCP DHCP
72
O laboratório será dividido em dois grupos, definidos pelo instrutor. Cada aluno participará
apenas de um grupo: Topologia A ou Topologia B.
Onde:
11 G =1 – Grupo Topologia A
A figura 3.9 mostra uma listagem com a descrição dos serviços disponibilizados pelos
servidores da DMZ.
conexões previamente definidas no filtro de pacotes. Dessa forma, a regra padrão é negar
todos os pacotes que chegarem, saírem e/ou atravessarem o firewall. A política de filtros
de pacotes será a mais restritiva possível, de modo que somente as conexões previamente
definidas deverão ser permitidas em nosso filtro de pacotes.
73
A cada item a seguir, será preciso verificar a configuração com o auxílio dos seguintes comandos:
Acesso ao firewall
w
Para mais informações
Configure no firewall acesso de gerência SSH e ICMP, somente para pacotes originados da sobre a configuração
do Netfilter no Debian,
estação de trabalho Windows XP, e teste o funcionamento das regras originando acessos dos visite: http://wiki.
servidores Linux e Windows 2008 ao firewall. debian.org/iptables.
74
Passo 6 Edite novamente o arquivo de configuração do firewall e adicione as regras
que permitam o gerenciamento e o troubleshooting do firewall, permitindo
acesso SSH e ping originados da máquina Windows XP:
# Permite todo tráfego loopback
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
# Permite PING
-A INPUT -p icmp -s 10.1.G.10 -m icmp -j ACCEPT
Passo 8 Acesse o firewall com o protocolo SSH a partir da máquina Windows XP utili-
zando o aplicativo Putty.
75
Acesso através do firewall da rede local à DMZ
Configure no firewall permissão de acesso somente dos pacotes originados nas máquinas da
rede local que atravessarão o firewall com destino aos serviços da DMZ descritos na Figura 3.9.
Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -
76
Acesso através do firewall da DMZ à internet
Configure no firewall permissão de acesso somente dos pacotes originados nos servidores da
DMZ que atravessarão o firewall com destino à internet.
Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -
Passo 4 Realize teste de conexão a partir da máquina da rede DMZ. Por exemplo: veri-
fique se o servidor LinServer estabelece conexão no repositório do Debian,
para saber se existem atualizações para os pacotes instalados no sistema,
com o comando:
# apt-get check-update
Observe que o acesso à internet ainda não será possível por ainda faltar a
configuração da tradução de endereços (NAT).
77
Acesso através do firewall da internet à DMZ
Configure no firewall permissão de acesso somente dos pacotes originados na internet, que
atravessarão o firewall com destino aos serviços da DMZ descritos na Figura 3.9.
Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -
78
Atividade 5 – Controle de NAT
O principal objetivo desta atividade é demonstrar o entendimento do funcionamento dos
tipos de NAT e aplicá-los em uma simulação de caso real.
1. Configure no firewall o tipo de NAT necessário para permitir o acesso dos servidores da
DMZ à internet.
Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado com o comando:
sudo su -
Carregue o módulo de NAT:
# modprobe iptable_nat
Passo 4 Realize teste de conexão a partir da máquina da rede DMZ: com o comando abaixo,
verifique se o servidor LinServer estabelece conexão no repositório do Debian,
para saber se existem atualizações para os pacotes instalados no sistema:
# apt-get update
Capítulo 3 - Roteiro de Atividades
79
2. Configure no firewall o tipo de NAT necessário para publicar os serviços do LinServer da
DMZ na internet.
Passo 1 A partir da máquina Windows XP, acesse o firewall via SSH utilizando o Putty.
Entre com o usuário aluno e mude para acesso privilegiado utilizando:
sudo su -
Passo 4 Solicite a um colega de outro grupo para acessar os serviços disponíveis em sua
DMZ; é necessário passar o endereço IP público da publicação dos serviços.
Adicione o firewall FWGW1 como objeto e siga as orientações iniciais do instrutor para
concluir as seguintes atividades:
-A INPUT –f –j DROP
80
4
Serviços básicos de segurança
objetivos
conceitos
Gerenciamento de logs, sincronismo de tempo e monitoramento de serviços.
Introdução
Neste capítulo, serão apresentadas técnicas e tecnologias para o monitoramento de dispositivos
e recursos de redes. Ao final, o aluno será capaz de compreender as técnicas e realizar a configu-
ração de ferramentas de sincronismo de tempo, centralização de logs e monitoria de serviços.
Este capítulo não tem o objetivo de instruir o aluno na instalação dessas ferramentas;
para isso, recomendamos a consulta aos sites de cada ferramenta. Para a realização das
atividades em laboratório, as ferramentas serão instaladas com foco no entendimento de
seu funcionamento e configuração.
Exercício de nivelamento 1 e
Serviços básicos de segurança
O que você entende monitoramento dos recursos de redes?
Gerenciamento de logs
11 Gerenciamento centralizado. q
11 Requisitos de gerenciamento de logs.
O uso de serviços de log centralizados é importante para o gerenciamento de falhas nos dis-
positivos e no gerenciamento da segurança com a preservação do registro de eventos em
81
casos de falhas de sistema ou comprometimento de algum dispositivo da rede. Cada orga-
nização possui requisitos diferentes de gerenciamento de logs, que determinarão o detalha-
mento dos logs coletados, por quanto tempo serão armazenados e como serão analisados.
d
pamentos da rede, softwares de segurança, sistemas operacionais e aplicativos.
É necessário concentrar esforços para que esses dados não sejam comprometidos por sis- Saiba mais
temas mal-intencionados. Eles serão úteis na análise de incidentes de segurança ou falhas
Para definir a estratégia
computacionais. Para isso é necessário que o servidor de logs esteja protegido por um de logs, recomendamos
sistema de controle de perímetro, já mencionado nas sessões anteriores. Também é neces- o artigo Guide to
Computer Security Log
sária a realização de uma configuração segura do servidor, o que será visto adiante.
Management, de Karen
Kent e Murugiah
Syslog-ng Souppaya, do NIST
q
(National Institute
Source of Standarts and
Technology).
É como o syslog-ng vai receber as mensagens. Exemplo: Unix socks“/dev/log” ou outras
fontes.
Destination
É para onde serão enviados ou guardados os logs recebidos pelo syslog-ng. Exemplo:
arquivo local, rede, SGDB Oracle, MySQL etc.
Log Paths
No syslog-ng podem ser definidas várias origens e destinos. O objeto “global log” define
o destino de cada origem ou de um conjunto delas.
Filter
Os filtros do syslog-ng incrementam a forma como serão realizados os caminhos dos logs:
O syslog-ng é uma ferramenta distribuída com a licença de software livre, muito utilizada
atualmente. É uma solução que, pela sua qualidade do código, permite a criação de um ser-
vidor de logs na rede para vários clientes.
O syslog-ng é uma implementação do protocolo Syslog, definido pela RFC 5424 – The Syslog
Protocol. Essa RFC define o protocolo e uma série de particularidades, incluindo a porta
padrão do protocolo (UDP 514) e as facilidades e severidades. As facilidades são categorias
que indicam a origem da mensagem. Através delas é possível separar os registros de log em
arquivos separados, organizando melhor as informações. A lista a seguir apresenta todas as
facilidades definidas na RFC, com seus respectivos códigos e siglas:
82
Código Nome Sigla
Conforme já mencionado, além das facilidades, temos ainda as severidades, que indicam
o nível de “profundidade” do registro de log correspondente. As severidades definidas no
padrão estão na tabela abaixo:
0 Emergency emerg
1 Alert alert
Capítulo 4 - Firewall – Conceitos e Implementação
2 Critical crit
3 Error err
4 Warning warning
5 Notice notice
6 Informational info
7 Debug debug
83
até a severidade 7, onde todas as ações são registradas. A severidade 7 é útil no auxílio de
resolução de problemas, como quando um determinado sistema não está se comportando
como se espera.
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 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.
Origem 1 Destino 1
Filtro
Origem 2 Destino 2
84
Syslog-ng como servidor
Neste exemplo, teremos a sintaxe do arquivo de configuração do servidor syslog-ng q
para receber as mensagens dos agentes. Dessa forma, o servidor está configurado para
receber as mensagens de syslog na porta UDP 514 e armazenar no arquivo do cliente
específico do diretório “/var/log/agente.log”, onde o termo agente será substituído pelo
hostname do agente:
No exemplo anterior, verifica-se que pode ser criado um filtro contendo mais de uma severidade.
Exercício de fixação 1 e
Gerenciamento de logs
Explique os objetivos do gerenciamento de logs.
Exercício de fixação 2 e
Syslog
O que é um syslog-ng?
Logs do Windows
Os logs centralizados possibilitam a análise de correlação de logs q
11 http://www.syslog.org/wiki/Main/LogAnalyzers
11 http://www.ossec.net/
85
Outra questão importante a ser considerada é o registro de logs em sistemas Windows.
Infelizmente, o padrão Syslog é um padrão Unix, de modo que os sistemas Windows não
w
Para indicações de
o utilizam de forma nativa. Dessa forma, não é possível, utilizando apenas os recursos do analisadores de log:
sistema operacional, redirecionar os registros de log gerados por um sistema Windows para http://www.syslog.org/
wiki .Um analisador e
o syslog-ng, como foi feito antes para sistemas Unix. Apesar disso, existem algumas ferra-
correlacionador de logs
mentas que permitem a compatibilidade entre o sistema de logs do Windows e o syslog-ng. utilizado pela comuni-
dade de segurança
Uma ferramenta simples e gratuita é o Winlogd: é o OSSEC.
1. Baixe o winlogd.exe no site indicado e copie para o diretório system32, dentro do diretório
de instalação do Windows.
3. Configure o winlogd para enviar os logs para o servidor do syslog-ng, utilizando o registro
do Windows (regedit). Os parâmetros são os seguintes (observe que 202 em hexadecimal
equivale a 514 em decimal e que o parâmetro Server deve ser alterado para o endereço IP
do servidor syslog-ng):
3.1. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winlogd\Parameters]
3.3. “Port”=dword:00000202 /* porta UDP, que será utilizada para envio dos logs: 514
é a porta padrão do syslog */
Qualquer mudança de configuração no winlogd para se tornar efetiva deve ser precedida do
reinício do serviço, que pode ser feito com os seguintes comandos:
q
Segurança de Redes e Sistemas
Plugins NTP:
11 NTPD
11 NetTime
O NTP pode ser configurado como servidor ou cliente. É um protocolo para sincronização
dos relógios dos computadores, baseado em uma fonte confiável: os relógios atômicos do
Observatório Nacional, que definem a hora legal brasileira. Site do NTP: www.ntp.org.
86
O site armazena o projeto NTP, que desenvolve uma ferramenta de sincronização de reló-
gios para computadores Linux, Unix, VMS e Windows. O NTP pode ser configurado como
servidor, como cliente e/ou as duas funcionalidades ao mesmo tempo. Assim, podemos
buscar uma fonte de relógio externa, se assim desejarmos, e redistribuir essa fonte de hora
confiável para a configuração dos relógios das máquinas da rede interna. A configuração do
NTP ocorre com a edição do arquivo ntp.conf, localizado normalmente em /etc/ntp.conf nos
servidores Unix. Segue um exemplo de configuração do NTP utilizando como referência os
relógios do Comitê Gestor da Internet do Brasil (CGI.br):
driftfile /etc/ntp.drift
statsdir /var/log/ntpstats/
87
Dessa forma, o NTP será forçado a sincronizar o relógio local da máquina, mesmo que ele
esteja com diferença superior a 16 minutos do servidor NTP da rede. Após iniciar o NTP, você
pode deixá-lo rodando na máquina como deamon, com o seguinte comando:
# ntpd
# 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 refid: identificação da referência (par do sistema) a qual o servidor de tempo remoto está
sincronizado.
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.
11 offset: deslocamento, ou quanto o relógio local tem de ser adiantado ou atrasado (em
milissegundos) para ficar igual ao da fonte de tempo.
Exercício de fixação 3 e
Logs do Windows
Explique como funciona o log no Windows?
Segurança de Redes e Sistemas
Exercício de fixação 4 e
NTP
O que é um NTP?
88
Monitoramento de serviços
As ferramentas de monitoramento são um subconjunto do universo de ferramentas q
de gerenciamento que estão focadas em obter informações sobre elementos de infra-
estrutura de TI. Entre as ferramentas de monitoramento, destacamos algumas com o
código-fonte aberto e distribuído sob a licença GNU GPL.
Nagios
O Nagios é uma ferramenta de gerenciamento que monitora os elementos e serviços q
de rede. Os dados são coletados através de testes que simulam o funcionamento de
aplicações como: File Transfer Protocol (FTP); Secure Shell (SSH); Hypertext Transfer Pro-
tocol (HTTP); Simple Mail Transfer Protocol (SMTP); Post Office Protocol version 3 (POP3);
Network Time Protocol (NTP); Internet Control Message Protocol (ICMP); ou através de
plugins adicionais que podem ser desenvolvidos e integrados ao Nagios.
Diversos plugins estão disponíveis na internet e podem ser utilizados pelo administrador
para testes mais completos. A interatividade com o administrador baseia-se no envio de
mensagem eletrônica, alerta no console e mensagem SMS para celulares sobre o pro-
blema ocorrido. O grande destaque dessa ferramenta é a possibilidade de classificação de
grupos de usuários para receber relatórios e alertas do sistema. Por exemplo, o problema
de um determinado servidor pode ser comunicado ao responsável pelo serviço, bem
como para uma equipe responsável pelos equipamentos ou ativos de rede. Toda a sua
configuração é realizada em arquivos de texto e, a interface com o usuário, realizada em
um console web. É possível obter relatórios de disponibilidade e planejar ações corretivas
para os problemas ocorridos em equipamentos da rede. A figura a seguir apresenta a tela
Figura 4.2
Sumário dos principal do Nagios, onde se pode ter uma visão abrangente do estado dos servidores que
eventos do Nagios. estão sendo monitorados pela ferramenta.
89
Existe ainda o projeto Fully Automated Nagios (FAN), que tem por objetivo prover uma
instalação facilitada do Nagios e ferramentas auxiliares providas pela comunidade.
O projeto FAN disponibiliza inclusive uma imagem em CD-ROM (ISO), que facilita a insta-
lação de um servidor Nagios.
Zabbix
O Zabbix é uma ferramenta de gerenciamento que monitora os elementos e serviços q
de rede. Os dados são coletados através de consultas ao SNMP (Simple Network
Management Protocol), de ferramentas de testes que simulam o funcionamento das apli-
cações FTP (File Transfer Protocol), SSH (Secure Shell), HTTP (Hypertext Transfer Protocol)
ou através de plugins adicionais que podem ser desenvolvidos e integrados ao Zabbix.
Todos os dados coletados pelo Zabbix são armazenados em uma base de dados SQL
(Structured Query Language), permitindo a geração de relatórios pré-definidos e personali-
zados, e ainda a utilização de ferramentas especializadas para gerar relatórios. Entre os relató-
rios padrão gerados pelo Zabbix, temos os relatórios de disponibilidade, de nível de serviços,
de tráfego de rede e de utilização de recursos, como CPU (Central Processing Unit) e memória.
Toda a configuração do Zabbix é realizada através de uma interface web clara e amigável.
Os alarmes são emitidos no console web do usuário, via recursos de áudio, mensagens
eletrônicas e/ou envio de SMS (Short Message Service) para aparelhos celulares. O Zabbix
permite a geração de gráficos on-line e oferece ao administrador a possibilidade de criar
mapas personalizados da rede. A seguir imagem de uma tela de monitoramento do Zabbix.
Figura 4.3
Tela de monitora-
mento do Zabbix.
Cacti
q
Segurança de Redes e Sistemas
Ferramenta de monitoração criada por Ian Berry. Surgiu como uma opção de frontend
(interface gráfica com o usuário para interagir com programas) que apresenta os gráficos
dos dados obtidos através de consultas SNMP ou de scripts. Esses dados são armaze- Round-Robin
nados pelo Round-Robin Database Tool (RRDTool). Database Tool
Software que armazena
e mostra dados em
série obtidos em um
determinado período de
tempo.
90
Figura 4.4
Configuração
do Cacti.
Figura 4.5
Exemplos de
gráficos Cacti.
91
Existe ainda uma versão facilitada, que oferece uma distribuição Linux com o Cacti
pré-instalado. Ela se chama CactiEZ e é uma boa opção para iniciantes que querem
começar rapidamente a utilização da ferramenta.
Ntop
O Network Traffic Probe (Ntop) é uma ferramenta livre para análise de tráfego de rede. q
Possui um servidor HTTP (Hypertext Transfer Protocol) e HTTPS (Hypertext Transfer
Protocol Secure) nativo, que apresenta uma série de gráficos do tráfego e estatísticas da
rede. Possui ainda um modo interativo no console de texto. Principais objetivos:
Com desenvolvimento iniciado em 1998 por Luca Deri, o Ntop opera nas plataformas Unix
(incluindo Linux, BSD, Solaris e MacOSX) e Microsoft Windows. A coleta de informações é
feita através da análise do tráfego das informações que passam pelas interfaces da rede
local. Principais características:
11 Ordenação de tráfego.
A figura seguinte mostra a estrutura funcional do Ntop, seus módulos e os itens que
completam a ferramenta:
11 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 clas-
sificada também como ferramenta especializada na geração de gráficos, ainda que estes
gráficos possuam menos recursos funcionais que os gráficos do Cacti.
92
Quase todas as ferramentas mencionadas são fáceis de instalar. A configuração do Nagios é
complexa por exigir a manipulação de vários arquivos de texto. As demais ferramentas
possuem interface web para configuração, estando bem documentadas e com vários artigos
de referência publicados na internet.
Vantagens do Cacti
Dentre as opções apresentadas, o Cacti foi escolhido para ser a ferramenta usada neste q
curso, pelas seguintes razões:
Apesar das atividades práticas deste capítulo trabalharem apenas com a ferramenta Cacti, Capítulo 4 - Firewall – Conceitos e Implementação
o aluno está convidado a questionar o instrutor sobre as outras ferramentas. As instru-
ções apresentadas durante este capítulo servem como ponto de partida para que o aluno
seja capaz de instalar e configurar qualquer uma das ferramentas apresentadas. Muitas
delas possuem versões pré-instaladas, em Live CDs, ou distribuições Linux customizadas
de fácil instalação.
93
94
Segurança de Redes e Sistemas
Roteiro de Atividades 4
Nas atividades deste roteiro, serão configurados os serviços essenciais de gerenciamento
de hosts em uma rede, como serviço de logs centralizado, serviço de sincronização de relógio
e monitoramento dos serviços e recursos dos sistemas.
Internet
Topologia A Topologia B
FWGW1 FWGW1
DHCP DHCP
Figura 4.8
Topologias para
a realização das
atividades deste Atividade 1 – Configuração do servidor de Syslog
capítulo
Nesta atividade, o aluno vai configurar um repositório de Syslog em um servidor da DMZ e
enviará os logs dos demais servidores para esse servidor.
Capítulo 4 - Roteiro de Atividades
O objetivo desta atividade é fazer o aluno aplicar os conceitos de repositório de logs de uma
rede e preparar o ambiente para os serviços seguintes, que serão configurados durante o curso.
No host LinServer, para instalar o syslog-ng, é necessário que esse host já esteja com o acesso
à internet configurado conforme o Roteiro de Atividades 3. Após realizar a instalação, com
base na teoria apresentada, vamos configurar o servidor para receber o syslog local e da rede,
e colocar os logs de cada host em um arquivo diferente no diretório /var/log/syslog/.
95
Exemplo:
Host Arquivo
LinServer /var/log/syslog/linserver.log
FWGW1 /var/log/syslog/fwgw1.log
Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install syslog-ng
Passo 8 Como esta máquina foi configurada como servidor syslog-ng e também como
agente, os logs locais da máquina devem iniciar o armazenamento no local
definido em “destination”, após o reinício do serviço:
# /etc/init.d/syslog-ng restart
conforme segue:
# apt-get update
96
Passo 1 No console do VirtualBox, acesse a máquina FWGW1. Entre com as credenciais
de usuário root.
Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install syslog-ng
Passo 6 Por fim, também no arquivo de configuração do syslog-ng, defina a regra log,
associando a origem ao destino desejado; use a tabela de arquivos de log para
definir essa regra:
log { source(s_all); destination(d_syslog-server); };
Passo 7 Como esta máquina foi configurada como agente syslog-ng, os logs da
máquina iniciarão o envio para o servidor definido em “destination”, após
o reinício do serviço:
# /etc/init.d/syslog-ng restart
Para configurar o syslog-ng como cliente, o aluno terá o material teórico e o manual do pro-
grama como referências. Para acessar o manual do syslog-ng, utilize o seguinte comando:
# man syslog-ng
O aluno instalará o NTP nos hosts Linux, tanto no host que será o servidor de sincronismo
de relógio, quanto nos hosts que serão clientes desse servidor. Para instalar o NTP utiliza-
remos os seguintes comandos:
Capítulo 4 - Roteiro de Atividades
# apt-get update
# /etc/init.d/ntp <ação>
97
Onde a ação pode ser:
A configuração do NTP fica por padrão no arquivo /etc/ntp.conf. Para que o programa assuma
as novas configurações realizadas no arquivo de configuração, é necessário reiniciar o
daemon NTP.
Como referência para esta atividade, utilizaremos o manual on-line “NTP.br - A Hora Legal
Brasileira, via Internet”.
Passo 1 Instale o pacote NTP no host Debian LinServer no servidor LinServer-G; esse
será o nosso servidor de tempo do laboratório:
# apt-get install ntp
98
Passo 1 Instale o pacote NTP no host Debian FWGW1-G; este será nosso cliente de
tempo do laboratório:
# apt-get install ntp
Passo 2 Edite o arquivo de configuração do NTP (/etc/ntp.conf) com seu editor de texto
preferido e troque os servidores de tempo padrão do Debian pelos servidores
de tempo do Comitê Gestor da Internet Brasil (CGI.br).
Exemplo:
# vi /etc/ntp.conf
Comente as linhas:
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
Adicione as seguintes linhas:
server 172.16.G.10 iburst
Onde G é referente ao grupo, G=1 para Topologia A e G=2 para Topologia B.
Passo 1 No host Windows XP, configure o relógio para sincronizar com o servidor de
relógio do laboratório, o servidor LinServer (172.16.G.10).
99
Passo 2 No host Windows 2008 Server, configure o relógio para sincronizar com o ser-
vidor de relógio do laboratório. Para isso, clique uma vez no relógio da barra de
ferramentas, e aparecerá um menu flutuante; clique em “Change date and time
settings...” e aparecerá a tela de auxílio de configuração do relógio, como a seguir:
recomendado utilizar strings longas e complexas como communities. Para facilitar a imple-
mentação nesta atividade, excepcionalmente utilizaremos a community “public” nos hosts
com SNMP versão 2c.
Instalação do Cacti
100
Passo 2 Atualize a base de pacotes do apt-get com o repositório da internet:
# apt-get update
Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install cacti
Para a senha de root do MySQL, utilize rnp123.
Para o servidor http, escolha Apache.
Responda YES, para o instalador do Cacti criar os esquemas de banco de dados.
Para as demais solicitações de senha, utilize rnp123.
Passo 5 No host Windows XP, acesse o console web do Cacti para concluir a instalação:
http://172.16.G.10/cacti
Passo 3 Instale o pacote syslog-ng para ser utilizado como servidor de syslog da rede:
# apt-get install snmpd
Passo 4 Configure o SNMPD para permitir consulta aos discos locais da máquina pelo
console de gerenciamento do Cacti instalado no host LinServer:
# vi /etc/snmp/snmpd.conf
Adicione as seguintes linhas:
com2sec readonly default public
syslocation Curso SEG-2 ESR RNP
syscontact Aluno ESR SEG-2 <aluno@esr.rnp.br>
disk /
load 12 14 14
Edite o arquivo /etc/default/snmpd para permitir consultas SNMP remotas pela
interface eth1:
Capítulo 4 - Roteiro de Atividades
# vi /etc/default/snmpd
Altere os parâmetros da variável SNMPDOPTS para:
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/
snmpd.pid 127.0.0.1 172.16.G.1’
Reinicie o serviço SNMPD:
#/etc/init.d/snmpd restart
Passo 5 No host Windows XP, acesse o console web do Cacti para adicionar a monito-
ração do novo host: http://172.16.G.10/cacti
101
Instalação do agente SNMP no Windows
Passo 5 Com o botão direito do mouse sobre o serviço “SNMP Service”, acesse a opção
“Properties”. Configure as abas “Agent” e “Security”.
Segurança de Redes e Sistemas
Passo 6 No host Windows XP, acesse o console web do Cacti para adicionar a monito-
ração do novo host WinServer pela URL: http://172.16.G.10/cacti
102
5
Detecção e prevenção de intrusos
objetivos
conceitos
Sistemas de Detecção de Intrusos (IDS), seus componentes e classificações, HIDS
e conceitos relacionados ao Snort, entre outros.
Introdução
Nos capítulos 2 e 3, vimos como estabelecer um perímetro para proteger uma rede interna
dos perigos da internet e de outras redes públicas, incluindo a criação de uma DMZ para
prover serviços públicos. Apesar de ser uma técnica bastante eficiente, existe a possibili-
dade de as nossas defesas serem atacadas e eventualmente vencidas. Lembre-se: não existe
sistema 100% seguro e isso sempre vai existir. Por isso, a detecção e a prevenção de intrusos
que consiste no monitoramento constante de diversos elementos, como segmentos de rede,
sistemas operacionais e aplicações. Através desse monitoramento constante, podemos
tomar uma ação caso alguma atividade suspeita seja detectada, que pode ser desde um
alerta para o administrador de segurança até o bloqueio temporário ou permanente do
atacante. Podemos considerar um IDS (Intrusion Detection System), em conjunto com um
firewall, como uma aplicação do princípio de defesa em profundidade.
Exercício de nivelamento 1 e
Detecção e prevenção de intrusos Capítulo 5 - Detecção e prevenção de intrusos
11 Centralizados x Distribuídos.
103
Classificações: q
11 Quanto ao modo de funcionamento:
22 Detectores de anomalias.
22 Reativos.
22 Passivos.
11 Ativos (IPS).
11 Sensor: responsável por coletar informações sobre a rede, sistema operacional ou apli-
cação, para ser utilizado como parâmetro de entrada para o sistema de detecção.
Esses componentes podem estar em uma única máquina ou distribuídos. Existem ainda
diferentes tipos de IDS de acordo com o modo de funcionamento, local e forma de atuação
frente a um ataque. Existem então as seguintes classificações para facilitar o nosso entendi-
mento sobre o assunto.
11 Detector de mau uso: é o modo mais utilizado atualmente. Possui funcionamento pare-
cido com o de um antivírus. Através de um conjunto de assinaturas previamente confi-
Segurança de Redes e Sistemas
guradas, o IDS monitora o ambiente em busca de eventos que coincidam com alguma
assinatura. Possui baixo índice de falsos positivos caso as assinaturas sejam de boa quali-
dade. Não detectam ataques desconhecidos e dependem de atualização das assinaturas
por parte do fabricante ou da comunidade.
104
Quanto ao local de atuação
11 Baseados em host: agem em cima de uma única máquina. Normalmente são instalados na
própria máquina que se deseja proteger e monitoram chamadas do sistema operacional ou
atividades de uma aplicação específica. Comumente chamados de Host-based IDS (HIDS).
11 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.
Ativos: q
11 Atuam normalmente em cima de tráfego de rede.
Vantagem:
Desvantagem:
11 Liberar acesso.
11 Bloquear acesso.
105
O IPS (Intrusion Prevention System) se diferencia do IDS pelo fato de ser ativo, ou seja, inter-
fere diretamente nos eventos que passam por ele, diferente do IDS, que é passivo, isto é,
apenas monitora os eventos, sem neles interferir. Os IPSs mais comuns são os de rede, que
atuam em cima do tráfego de rede. Na figura abaixo, podemos diferenciar um IDS de um IPS,
por meio da sua localização na rede.
IPS
Figura 5.1
IDS Localização do IDS
e IPS na rede.
Na Figura 5.1 podemos perceber que o tráfego passa diretamente pelo IPS, de modo que o
sistema pode optar por não transmitir um tráfego adiante, caso suspeite que seja malicioso.
Esse comportamento é diferente do comportamento do IDS, que apenas monitora o tráfego.
Mesmo que o IDS tome uma ação, essa será reativa, pois não vai interferir no tráfego da
rede. Uma vantagem clara dos IPSs é a possibilidade de bloquear um ataque a partir do seu
primeiro pacote, o que pode ser fundamental para mitigá-lo, visto que em alguns ataques,
basta um pacote para que o ataque seja bem-sucedido (lembre-se do ping da morte).
Exercício de fixação 2 e
IPS
O que são IPS?
11 System calls.
11 Logs de aplicação.
11 Modificação em arquivos.
11 Criação de processos.
106
Exemplos: q
11 OSSEC.
11 SAMHAIN.
11 Tripwire.
11 Osíris.
Na maior parte dos casos, quando falamos em IDS, estamos nos referindo aos sistemas de
detecção de intrusos baseados em rede (NIDS), que são mais comuns. Um sistema baseado
em rede é capaz de monitorar um segmento de rede e detectar tráfego malicioso destinado
a qualquer máquina que se encontre atrás do segmento monitorado, criando uma proteção
mais abrangente, porém limitada a informações obtidas através de pacotes enviados na rede.
Como complemento aos NIDSs, existem sistemas de detecção que agem em uma máquina
específica, monitorando elementos como chamadas ao sistema (system calls), logs de
aplicação, modificação em arquivos ou registros, criação de processos, entre outros. São cha-
mados de HIDS (Host Intrusion Detection Systems). Um HIDS protege apenas a máquina onde
esteja instalado, porém é capaz de obter informações que não trafegam na rede.
Exercício de fixação 3 e
HIDS
Explique o que é um HIDS.
Snort
q
Capítulo 5 - Detecção e prevenção de intrusos
NIDS open source baseado em assinaturas com plugin estatístico (SPADE). Tem estrutura
modular altamente customizável com plugins, disponível em diversas plataformas
(arquitetura modular).
11 Alertas
22 Arquivos texto.
22 Bases de dados.
22 snort 3305 26.6 58.1 174664 149108 ? S<s 03:54 5:11 /usr/sbin/snort -m
027 -D -d -l /var/log/snort -u snort -g snort -c /etc/snort/snort.conf -S HOME_
NET=[172.16.1.0/24] -i eth0
107
11 Controles de execução q
22 /etc/init.d/snort stop – encerra o Snort.
O Snort possui uma estrutura modular altamente customizável, de modo que diversos plugins e
programas acessórios podem ser usados para expandir suas funcionalidades, como a possibi-
lidade de reagir a um alerta, a atualização automática das suas assinaturas e o gerenciamento
de diversos sensores espalhados em uma ou mais redes. Por ter o código-fonte aberto, o Snort
foi portado para plataformas como Linux e Windows. A figura a seguir apresenta os diferentes
componentes do Snort, desde a captura do pacote na rede até o registro de um alerta ou log.
Figura 5.2
Internet Decodificador Arquitetura Snort.
de pacote
Registro e
Preprocessadores Detection Engine
sistema de alerta
Alerta de saída ou
registro de arquivo
Pacote é descartado Módulos de saída
Gerador da Código da
regra (GID) regra (SID) Descrição do alerta + classificação + prioridade
Revisão
Timestamp + IP + portas
[**][1:2001669:2] BLENDING-EDGE Web Proxy Get Request[**]
[Classification: Potentially Bad Traffic][Priority 2]
09/22-04:09:54.54.944632 192.168.1.1:64570-> 192.168.2.33:80
Segurança de Redes e Sistemas
108
Através da arquitetura modular do Snort, é possível a geração de alertas em arquivos
texto, bases de dados, entre outros. Em conjunto com os alertas, é possível ainda o arma-
zenamento dos pacotes que causaram um determinado alerta, o que é importante para se
determinar se um determinado alerta é legítimo, ou se é um falso-positivo.
Há programas auxiliares ao Snort, que geram alertas em formatos mais úteis para um
administrador, como BASE (Basic Analysis and Security Engine), Sguil (The Analyst Console
for Network Security Monitoring) e OSSIM, considerado um SIEM (Security Information
and Event Management ). Um SIEM é uma ferramenta centralizada de segurança, com o
objetivo de concentrar as informações de segurança em uma única ferramenta. O OSSIM
é um conjunto de ferramentas integradas, com um console gráfico completo. Muitas das
ferramentas presentes no OSSIM foram ou serão apresentadas neste curso, como Snort,
Nessus, Ntop e Nagios. O interessante do OSSIM é que ele é disponibilizado como uma
imagem ISO, com todos os componentes instalados automaticamente, bastando apenas a
sua inicialização através dessa ISO.
Instalação do Snort
A instalação do Snort, assim como a de outros programas open source, normalmente envolveria
compilar o código-fonte e instalá-lo na máquina em questão. Porém, no caso do Linux, a própria
distribuição Debian, utilizada no nosso laboratório, provê o Snort já compilado, de modo que
basta uma conexão com a internet e dois comandos para instalar a parte básica do Snort:
apt-get update
(Hibridizando o APT).
Reading state information... Done
109
snort-common snort-common-libraries snort-rules-default
Suggested packages:
libio-socket-ssl-perl snort-doc
[...]
[...]
110
snort/snort.eth0.conf found, defaulting to snort.conf ...done).
FWGW1:~#
Algumas partes do resultado da instalação (representadas pelas linhas contendo [...]) foram
suprimidas por questão de tamanho. Ao final da execução do comando, o Snort estará
instalado e executando. Durante a instalação será perguntado o endereço da rede local,
que corresponderá ao parâmetro HOME_NET. Esse parâmetro é importante, pois o tráfego
que não se originar ou tiver como destino essa rede será ignorado pelo Snort. Caso queira
monitorar todo o tráfego que passa pela interface de captura do IDS, configure HOME_NET
como 0.0.0.0/0.
Verifique que uma série de parâmetros são passados para o Snort automaticamente, por
conta da instalação do Snort no Debian. Os principais serão descritos a seguir.
Caso tenha interesse em outros parâmetros do Snort, o comando man snort apresenta q
uma descrição de todos os parâmetros existentes:
11 -D: modo daemon, executa o Snort como um serviço, de modo que ele ficará em
constante execução até que seu processo seja finalizado.
11 -d: instrui o Snort a incluir os dados da camada de aplicação no pacote que será registrado.
11 -l: indica o diretório onde os logs do Snort serão armazenados. No acaso, o diretório
/var/log/snort conterá os registros de alertas e pacotes.
111
11 -u: indica o usuário que será utilizado para executar o Snort. Conforme o princípio q
do menor privilégio, não recomendamos que o Snort seja executado com direitos
de administrador (root).
11 -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.
Alguns desses parâmetros podem ser ajustados no arquivo /etc/default/snort. Para controlar
a execução do serviço do Snort, podemos utilizar os seguintes comandos:
Configuração do Snort
11 /etc/snort/snort.conf q
22 var RULE_PATH
22 include $RULE_PATH/<arquivo>.rules
22 # = comentário
11 Variáveis (var) – configuram parâmetros do Snort, como a rede local, a rede externa, os ser-
vidores DNS, SMTP, HTTP, SQL, Telnet e SNMP. Configurar esses parâmetros pode reduzir SNMP
significantemente a quantidade de falsos positivos no seu IDS, pois o Snort só alertará Simple Mail Transfer
Protocol. Protocolo de
quando o destino efetivamente dispor do serviço indicado. A seguir alguns exemplos.
envio de mensagens de
22 var HOME_NET [192.168.1.0/24] correio eletrônico.
112
Regras do Snort
11 Regras Sourcefire VRT Certified. q
11 Regras Sourcefire VRT (Vulnerability Research Team) Certified.
Instalando regras:
As regras do Snort são um elemento-chave na sua configuração. Sem regras, o Snort torna-se
um mero analisador de pacotes. As regras são linhas de texto contendo instruções para o
Snort localizar pacotes que contenham características específicas e informações acerca do
alerta a ser gerado. Abaixo um exemplo de regra, que detecta um ataque específico para
servidores de correio eletrônico (SMTP).
11 Regras Sourcefire VRT (Vulnerability Research Team) Certified – regras fornecidas pela
Sourcefire, empresa responsável pelo desenvolvimento do Snort. Necessitam de uma
assinatura por parte do usuário.
11 Regras Sourcefire VRT Certified (versão para usuários registrados) – regras gratuitas
Capítulo 5 - Detecção e prevenção de intrusos
11 Regras Emerging Threats Pro – versão paga do ET, que custa 500 dólares por ano.
Para instalar um novo conjunto de regras, basta copiar os arquivos para o diretório de
regras do Snort (normalmente /etc/snort/rules) e referenciá-los no arquivo snort.conf
(include <caminho do arquivo .rule>).
113
Oinkmaster
Com atualização automática de regras, é instalado automaticamente no apt-get. q
11 Configuração (emerging threats).
Parâmetros adicionais:
Conforme foi dito, a atualização constante de regras é fundamental para o bom funciona-
mento de um IDS. Porém, dependendo do número de atualizações diárias e da quantidade
de sensores, a tarefa de mantê-los atualizados pode ficar muito complexa. Com o intuito
de facilitar a atualização de regras, foi criada uma ferramenta chamada Oinkmaster, que
permite que a atualização seja feita de forma automática.
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.
l
<arquivo.rule>. Não se esqueça de especificar o caminho completo.
O Oinkmaster possui parâmetros extras que podem ser inseridos no arquivo de configu- Saiba mais
ração. Seguem dois parâmetros importantes:
Segurança de Redes e Sistemas
114
Guardian: um Snort reativo
O Guardian é um script na linguagem Perl, que insere temporariamente regras de q
bloqueio em um firewall, a partir dos alertas gerados pelo Snort. Através do Guardian,
a instalação de Snort passa a ter uma característica reativa.
22 Interface – interface onde serão bloqueados os pacotes maliciosos. Ajuste para a sua
interface externa.
22 cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
22 cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
/usr/local/bin/guardian.pl –c /etc/guardian.conf
Snort-inline
Modo especial de funcionamento do Snort, integrado com o firewall Iptables/netfilter q
(snort como IPS). Funcionamento:
uma fila (queue), para ser processado pelo Snort-inline, que pode descartar pacotes de acordo
com as suas regras, de modo que o pacote não é passado adiante pelo processo de roteamento
do firewall. Opcionalmente podem ser gerados registros e alertas correspondentes.
Assim como qualquer IPS, a implementação do Snort-inline deve ser realizada com
cuidado, pois caso a máquina onde se encontra o IPS fique sobrecarregada, ela pode
impactar no desempenho da rede ou até tornar indisponível o segmento de rede
atrás do IPS.
115
para a honeynet (daí o honey, “mel” em inglês). Dessa forma, um pesquisador de segurança
consegue aprender com as técnicas empregadas pelo atacante. Uma honeynet é um tópico
avançado e deve ser utilizada apenas por administradores experientes.
l
dades incomuns (por exemplo, certo host conectar a determinados serviços ou falhas em
tentativas de conexão).
Se o Bro detectar algo de interesse, pode ser configurado para gerar uma entrada de log, Saiba mais
alertar o operador em tempo real, executar um comando do sistema operacional (por
Outro projeto interes-
exemplo, para finalizar a conexão ou bloquear um host malicioso on-the-fly). Além disso, os sante de IPS é o HLBR,
arquivos de log detalhados do Bro podem ser facilmente utilizados pela ciência forense. desenvolvido no
Brasil disponível no
Para que esse aplicativo funcione corretamente, será necessário instalar os seguintes sourceforge.
componentes na máquina Linux: Libpcap, Flex, Bison ou byacc, cabeçalhos e bibliotecas do
BIND8, Autotools, OpenSSL, Libmagic, Libz, GnuPG, LibGeopIP e Google Perftools.
HIDS
Existem diversas ferramentas que realizam detecção de intrusos com base em hosts.
Podemos citar algumas, disponíveis na internet:
kernel. Suporta plataformas como Linux, BSD, Windows, AIX, Solaris e MacOS.
Atua de forma centralizada, monitorando mudanças em diversas máquinas.
116
Roteiro de Atividades 5
Atividade 1 – Configuração básica do Snort
Configure o Snort na máquina gateway (FWGW1), e teste a sua configuração utilizando a
ferramenta Nmap.
Passo 3 Por padrão, o apt-get configura o Snort para iniciar automaticamente apenas
na interface eth0; para esta atividade vamos iniciar o Snort na interface eth1,
que interliga com o host Windows XP. Para isso use o comando:
# /etc/init.d/snort start eth1
Passo 4 No host Windows XP, realize um scan na rede DMZ para encontrar todos os
serviços publicados.
# tail –f /var/log/snort/alert
117
Atividade 2 – Atualização de regras
Configure o Oinkmaster para atualizar automaticamente as regras, uma vez por hora.
Utilize as regras Emerging Threats.
Desafio: você consegue configurar o Oinkmaster para atualizar as regras VRT? Será neces-
sário se registrar no site do Snort e obter um Oinkcode. Pesquise na internet se é possível
utilizar o Oinkmaster para atualizar mais de um conjunto de regras.
118
Atividade 3 – Bloqueio automático no firewall
Configure o Guardian para bloquear automaticamente os pacotes com destino ao firewall,
conforme descrito na parte teórica. Utilize o Nmap para testar o bloqueio.
Desafio: existe alguma ferramenta para teste de IDS? Verifique na internet e tente instalar
para testar o Snort.
Passo 1 No host FWGW1, baixe o “Guardian Active Response for Snort” do endereço
# wget http://www.chaotic.org/guardian/guardian-1.7.tar.gz
# tar –xvzf guardian-1.7.tar.gz
# cd guardian-1.7
Passo 2 Adicione a nova regra ao arquivo de configuração do Snort. Para isso, edite o
arquivo /etc/snort/snort.conf e insira no final a seguinte linha:
Capítulo 5 - Roteiro de Atividades
include $RULE_PATH/youtube.rules
Passo 5 Como não temos uma porta espelhada no switch para instalação do Snort,
vamos gerar o acesso a partir da máquina LinServer. Para isso, execute:
# apt-get install lynx
# lynx www.youtube.com
119
Segurança de Redes e Sistemas
120
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 é funda-
mental para garantir a segurança de aplicações e serviços, de modo que somente usuários
previamente cadastrados, identificados e autenticados podem ter acesso aos recursos
computacionais que lhes foram autorizados pelo responsável.
Exercício de nivelamento 1 e
Sistema AAA
11 Autenticação (Authentication) q
22 Mecanismo de identificação do usuário.
11 Autorização (Authorization)
121
11 Auditoria (Account) q
22 Mecanismo de gerar registros das ações do usuário.
O processo de controlar o acesso, garantindo que a origem dos dados é a de quem alega ser,
é um dos objetivos da autenticação. Garantir o uso autorizado de recursos e o registro de
todas as atividades dentro de um sistema são tarefas dos sistemas conhecidos por: Auten-
ticação, Autorização e Auditoria (AAA). Nesta sessão, serão apresentados os protocolos e
técnicas para trabalhar com cada um desses As.
Autenticação
Algo que você sabe: q
11 Mecanismo de senhas e suas variações
11 Biometrias
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:
Nesse princípio, o sistema solicita ao usuário que informe algo que somente aquele usuário
sabe. O exemplo mais comum desse princípio são as senhas e suas variações (OTP e
passphrases). Apesar de ser o mais barato de implementar, pois pode ser implementado
inteiramente via software, em geral é o menos seguro, pois um atacante pode tentar adi-
vinhar a senha de um usuário. Como o cérebro humano é limitado, os usuários tendem a
escolher senhas fáceis de lembrar.
Aqui o usuário deve apresentar algo para o sistema que lhe foi dado no momento em que
se registrou para obter acesso ao sistema. Dessa forma, ao reapresentar o mesmo objeto, o
Segurança de Redes e Sistemas
usuário estaria comprovando que é realmente quem diz ser. Normalmente, são combinados
com uma senha (chamada de PIN), de modo que não possa ser usado caso seja roubado.
Nessa categoria, são muito comuns os smartcards, chips e tokens. São considerados mais
seguros que o primeiro, pois para um usuário se passar por outro, deve obter o objeto que o
identifica e a senha correspondente.
Essas são consideradas as formas mais seguras de autenticação, pois envolvem uma carac-
terística intrínseca ao usuário. Em geral são chamadas de biometrias.
122
Alguns exemplos: impressões digitais, formato da íris, voz, face etc. Apesar de consideradas
seguras, devem ser utilizadas de forma cuidadosa, pois o seu uso indiscriminado pode criar
uma falsa sensação de segurança. Um leitor de impressões digitais pode ser enganado com
uma impressão digital falsa, caso não tenha um dispositivo que garanta que o dedo em
questão é “vivo”. Ou o mesmo leitor, caso esteja controlando uma porta, pode ser arrancado
do seu lugar e a porta aberta por uma mera junção de dois fios.
Autorização
O usuário obtém acesso somente aos recursos previamente definidos pelo gestor do
sistema. A autorização corresponde a um processo seguinte à autenticação, onde o usuário
obtém acesso aos recursos de acordo com o nível de acesso que lhe foi designado por um
administrador ou gestor. Dessa forma, uma vez corretamente identificado, o usuário pode
ter acesso a determinados recursos.
Auditoria
A auditoria por fim corresponde ao processo de verificação contínua se os acessos con-
cedidos estão corretos e se não há acessos indevidos. Normalmente temos um auditor
que periodicamente verifica as trilhas de auditoria, que são registros feitos pelos sistemas
de autenticação e autorização, contendo todos os acessos realizados pelos usuários do
ambiente. Através de um processo consistente de AAA, podemos ter um ambiente com
um nível de segurança adequado, sem comprometer a integridade, a confidencialidade e a
disponibilidade dos sistemas.
Nos itens a seguir, estaremos considerando a autenticação com base em senhas, visto que é
a autenticação mais comum e possível de se implementar via software.
Exercício de fixação 1 e
Sistema AAA
Quais são os princípios básicos em que se baseia o processo de autenticação em geral?
O que é autorização?
Criptografia
11 Simétrica: também conhecida por criptografia convencional. q
11 Assimétrica: criptografia por chaves pública e privada.
Esconder seus segredos sempre foi um dos grandes desafios da humanidade. Os antigos
generais precisavam transmitir informações para seus exércitos sem o perigo de ter suas
mensagens interceptadas e traduzidas pelo inimigo. O uso da criptografia apareceu, possi-
velmente, nas primeiras guerras da antiguidade e seu primeiro relato de uso na história é
atribuído a Cesar, imperador de Roma.
123
Basicamente, um processo criptográfico envolve a aplicação de três conceitos elementares:
a mensagem/texto, o algoritmo e a chave. A mensagem consiste, pura e simplesmente, na
informação que se deseja transmitir de forma segura; o algoritmo é a forma que será utili-
zada para cifrar e decifrar uma mensagem; e a chave, em alguns modelos computacionais,
pode ser entendida como o segredo compartilhado que deve ser conhecido apenas pelas
duas partes envolvidas no processo de comunicação. A garantia da confidencialidade está
em esconder do atacante o algoritmo ou a chave utilizada.
Os algoritmos criptográficos podem ser divididos em dois grandes grupos: algoritmos simé-
tricos ou de chave secreta e algoritmos assimétricos ou de chave pública.
Criptografia simétrica
Utiliza a mesma chave para criptografar e descriptografar uma informação. q
Vantagens:
Desvantagens:
124
Criptografia assimétrica
11 Gerenciamento de chaves. q
11 Implantação de não repúdio do remetente.
Dessa forma, a criptografia assimétrica pode ser utilizada para garantir a confidencialidade,
a autenticidade ou ambos. O criptossistema mais utilizado atualmente é o RSA, sendo
envolvido o conceito de números primos, de modo que é difícil de explorar, pela complexi-
dade de se encontrar números primos de um número composto.
A criptografia assimétrica tem como desvantagem o desempenho, pois é muito mais lenta
que a criptografia simétrica. Se usássemos criptografia assimétrica em todas as transações
criptográficas, teríamos perda de desempenho bastante significativa. Dessa forma, o mais
comum é utilizar de uma forma combinada as duas técnicas:
11 2048 bits.
11 4096 bits.
125
Algoritmos simétricos utilizam tamanhos menores: q
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. Atualmente o algoritmo simétrico recomendado é o AES-256, que utiliza
chaves de 256 bits.
Algoritmos Hash
Algoritmos Hash são funções criptográficas conhecidas como one-way. Essas funções
possuem como entrada mensagens de tamanho variável e a saída de tamanho fixo.
Uma mensagem de entrada, sempre que for submetida à análise da função Hash vai
gerar a mesma saída.
Figura 6.2
Mensagem Valor do hash Função Hash
Função de hash de uma só via
(tamanho arbitrário) (tamanho fixo) (Fonte: Cert RS).
MD5
Função de Hash de uma só via, inventada por Ron Rivest, do MIT, que também trabalha para
a Indústria RSA de Segurança de Dados. O algoritmo MD (Message Digest) produz um valor
de Hash de 128-bit para um tamanho arbitrário da mensagem inserida. Foi primeiramente
proposto em 1991, depois de alguns ataques de criptoanálise descobertos contra a função
de Hash de uma só via, utilizada no MD4 de Rivest. O algoritmo foi projetado para veloci-
dade, simplicidade e segurança. É claro que os detalhes do algoritmo são públicos e foram
analisados por diversos criptógrafos.
126
Uma fraqueza foi descoberta em alguma parte do MD5, mas não afetou a segurança global
do algoritmo. Porém, o fato de ele só produzir um valor de Hash de 128-bit é inquietante; é
preferível uma função de Hash de uma só via, que produza um valor mais longo.
SHA
Função de Hash de uma só via, desenvolvida pelo NIST (National Institute of Standards and
Technology). Produz um valor de Hash de 160-bit de um tamanho arbitrário da mensagem.
O SHA é uma função Hash baseada na função Hash MD4. Porém, a fraqueza na parte do
algoritmo MD5 mencionada ainda não foi possível de aplicar contra o SHA. Acredita-se que
o SHA não possui essa vulnerabilidade. Atualmente, não existe forma conhecida de ataque
criptoanalítico contra o SHA, com exceção do ataque de força bruta. Seu valor de 160-bits
torna o ataque de força bruta ineficiente. É claro que não existe prova de que alguém não
possa quebrar o SHA no futuro próximo ou mesmo quando esse material estiver sendo lido.
Exercício de fixação 2 e
Capítulo 6 - Autenticação, Autorização e Certificação Digital
Criptografia
Explique a criptografia assimétrica.
Exercício de fixação 3 e
Algoritmos Hash
O que são e para que servem os algoritmos hash?
127
Certificados digitais
O coração da especificação do esquema X.509 é a associação de certificados de chaves
públicas a cada usuário do diretório. Esses certificados digitais devem ser gerados por uma
Autoridade Certificadora (AC) confiável e armazenados no servidor de diretório. Esse arma-
zenamento pode ser feito pelo AC e pelo usuário. Dessa forma, o servidor de diretório não é
responsável pela criação desses certificados de chave pública, mas apenas provê fácil acesso
aos certificados de usuários.
128
1
E 3
Figura 6.4
Processo de
geração de
um certificado.
4
4. Certificado assinado: recipiente pode verificar a assinatura usando a chave pública da AC.
Exercício de fixação 4 e
Gerenciamento de senhas
11 Sistemas de senhas Linux. q
11 Sistemas de senhas Windows.
22 Hash NTLM.
11 Administrando as senhas.
129
A primeira fronteira de proteção contra intrusos é o sistema de senhas. Praticamente todos
os sistemas multiusuários utilizam um mecanismo de autenticação onde o usuário é indu-
zido a entrar com o identificador (ID) e uma senha secreta. A senha serve para autenticar o
ID do usuário, liberando ou não o acesso ao sistema. O ID é utilizado para:
Garantir o uso de senhas fortes por parte do usuário é uma difícil tarefa do administrador
do sistema, em qualquer ambiente operacional. Vamos analisar como funciona o sistema de
senhas em um ambiente Unix. Quando um usuário é criado no sistema, uma senha é asso-
ciada ao seu ID. Essa senha é manipulada pela função crypt(), que pode trabalhar com crip-
tografia baseada em DES, MD5 ou SHA, para geração do Hash da senha e do SALT que será
armazenado no arquivo de senhas do sistema, normalmente armazenado em /etc/shadow.
A cifragem das senhas permite um nível adicional de proteção, visto que mesmo que um
atacante tenha acesso ao arquivo de senhas, terá de realizar um ataque de força bruta no
arquivo de senhas para tentar descobrir as senhas dos usuários do sistema.
Segurança de Redes e Sistemas
130
Salt Password Password File
User id salt E (pwd, [salt, 0])
12 bits 56 bits
Load
crypt (3)
11 characters
Salt
Select Password
Valor do SALT
O SALT é gerado no momento em que a senha é criada, e guardado em texto claro no
Objetivos do SALT: q
11 Evitar que senhas duplicadas sejam visualizadas no arquivo de senhas. Mesmo que
mais de um usuário tenha escolhido a mesma senha, o valor de SALT será diferente,
resultando em valores de Hash diferentes.
Quando um usuário Unix vai realizar o processo de login no sistema, fornece o ID do usuário
e a senha. O sistema utiliza o ID do usuário para varrer o arquivo de usuários /etc/passwd
para encontrar o UID (número identificador do usuário no sistema) e em seguida consultar o
131
arquivo de senhas para encontrar o SALT do usuário e o Hash. Com essas informações
disponíveis, a função crypt() é chamada, a senha é digitada pelo usuário e passada junto
com seu respectivo SALT. Se o Hash gerado pela função for igual ao Hash do arquivo de
senhas, o acesso ao sistema é concedido.
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
O Hash LM (Lan Manager) não é exatamente um Hash, sendo gerado como resultado de um
processo de manipulação de strings, e obtido com os seguintes passos:
2. Preenche a senha com caracteres nulos até que ela tenha exatamente 14 caracteres.
Segurança de Redes e Sistemas
4. Usa cada parte separadamente como uma chave DES para criptografar uma
sequência específica.
Como resultado do algoritmo usado para gerar o Hash LM, o Hash é muito fácil de ser que-
brado. Primeiro, mesmo uma senha com mais de oito caracteres pode ser atacada em duas
132
partes distintas. Depois, todo o conjunto de caracteres minúsculos pode ser ignorado.
Isso significa que a maioria das ferramentas para quebrar senhas começa quebrando os
Hashes LM e depois simplesmente varia os caracteres alfabéticos na senha quebrada para
gerar senhas que fazem distinção entre maiúsculas e minúsculas.
Hash NTLM
Solução proprietária da Microsoft que abriu a especificação para parceiros implemen- q
tarem soluções integradas.Hash Unicode.
11 Hash MD4.
11 Mais resistente a ataques de força bruta do que o Hash LM.O Hash NTLM também é
conhecido como Hash Unicode, porque dá suporte a todo o conjunto de caracteres
Unicode. O Hash NTLM é calculado pegando-se a senha no formato de texto claro e
gerando um Hash Message Digest 4 (MD4) a partir dele. O Hash MD4 está realmente
armazenando no banco de dados do Active Directory ou no banco de dados do Secu-
rity Accounts Manager (SAM) ou Gerenciador de Contas de Segurança. O Hash NTLM
é muito mais resistente a ataques de força bruta do que o Hash LM.
Administrando as senhas
11 Treinamento do usuário. q
11 Requisitos de complexidade.
11 Análise de dicionário.
Para proteger as contas dos usuários do sistema, o administrador pode minimizar os efeitos
dessas ferramentas utilizando práticas recomendadas para o gerenciamento de senhas,
como veremos a seguir.
Treinamento do usuário
Reforçar aos usuários a importância de manter suas senhas protegidas de amigos e
familiares (especialmente crianças), que poderiam divulgá-las a outras pessoas menos
confiáveis. As senhas que você precisa compartilhar, como a senha de uma conta conjunta
on-line, são as únicas exceções. Não anotar senhas em agendas, no monitor do computador,
embaixo do teclado etc.
133
Requisitos de complexidade
Uma boa senha deve ter um número mínimo de caracteres, deve utilizar caracteres de
diversos conjuntos (maiúsculas, minúsculas, números e símbolos), não deve constar em
dicionários e deve ser fácil de lembrar. É importante que o administrador seja sensível à
dificuldade dos usuários de lembrar senhas, de modo que ele não aplique regras muito
restritivas, que possam forçar os usuários a anotar as senhas. A troca de senhas a cada mês
ou requisitos de complexidade muito severos são alguns exemplos de regras que podem
complicar a vida do usuário.
Exercício de fixação 7 e
Sistema de senhas no Windows
Explique onde são armazenadas as senhas no Windows.
Nesse cenário, é importante que as soluções informatizadas possam integrar uma solução
de autenticação única para todos os sistemas. Dessa forma, um usuário, uma vez autenti-
cado, deverá ter acesso a todos os sistemas que tiver autorização para acessar.
Existem várias soluções de implementação de SSO, como NTLM, uma solução proprietária
da Microsoft que abriu a especificação para parceiros implementarem soluções integradas.
Outros sistemas baseado em Kerberos são Smart Card e OTP Token.
OTP
One Time Passwords (OTP) é um mecanismo que utiliza senhas descartáveis. Para cada
acesso é gerada uma senha que logo em seguida perde o valor. Assim, se a senha de um
usuário for capturada, não servirá para comprometer o sistema. Existem várias maneiras
de gerar as senhas, como, por exemplo, o uso de calculadoras Java, que podem estar em
sistemas embarcados como um PDA ou um celular. O problema dessas implementações é o
fato de o usuário ter a necessidade de estar perto da calculadora para ter acesso ao sistema.
Segurança de Redes e Sistemas
S/Key
Sistema de autenticação OTP desenvolvido para sistemas operacionais Unix e q
derivados.O usuário provê um segredo W.
134
Sistema de autenticação OTP desenvolvido para sistemas operacionais Unix e derivados, como
o caso do Linux. A proposta do S/Key é obter um conjunto de senhas em que cada uma só pode
ser utilizada uma vez. O processo de inicialização do S/Key funciona da seguinte forma:
Smart Card
O Smart Card, ou Cartão Inteligente, é um cartão de plástico, semelhante a um cartão de
crédito, com um microchip embutido na superfície. O conceito de Smart Card foi patenteado
pelo Dr. Kunitaka Arimura no Japão, em 1970.
Embora existam muitos tipos, qualquer Smart Card pode ser classificado quanto à forma q
de conexão com a leitora:
11 Sem contato físico: se refere aos cartões que não necessitam de contato físico com
a leitora, o que indica que a conexão é feita através de ondas eletromagnéticas. A
ausência do ato de inserção traz benefícios, como economia de tempo e preservação
dos terminais do cartão. Um exemplo interessante deste tipo de cartão são os passa-
portes eletrônicos.
Os cartões inteligentes por contato físico podem ser utilizados com leitores conectados
em um computador pessoal, a fim de autenticar um usuário. Softwares de navegação na
internet também podem utilizar a tecnologia do Smart Card para complementar SSL (Secure
Sockets Layer), utilizado para melhorar a segurança em transações na internet. Como o
cartão inteligente possui arquitetura de hardware e software, ele interage com o sistema,
permitindo ou negando acesso quando necessário. Ele pode ser programado, por exemplo,
135
para que após cinco tentativas de autenticação sem sucesso, o conteúdo da memória seja
destruído, inutilizando-o.
Hoje em dia é muito comum Smart Cards nos nossos cartões de crédito, em chips de
celulares GSM ou em cartões emitidos pelo governo, como o e-CPF e o e-CNPJ, além do
recém-anunciado Registro de Identificação Civil (RIC). Nesses casos, o cartão contém um
certificado digital padrão ICP-Brasil. Os certificados digitais serão vistos em mais detalhes
na sessão 7. Em alguns desses cartões, existe um sistema complexo de proteção do material
criptográfico contido dentro do cartão, que se apaga caso o cartão seja aberto ou haja
erro na senha de acesso em um determinado número de vezes. Normalmente, as chaves
privadas nunca saem de dentro do cartão, que possui um chip capaz de realizar operações
criptográficas dentro do próprio cartão.
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
serviços de diretório. A ITU-T define que o diretório é um servidor ou um conjunto de servi- ITU-T
Segurança de Redes e Sistemas
dores distribuídos que mantêm a base de informações de usuários. Nessa base de informa- Setor de normatização
de telecomunicações,
ções estão contidos endereços de rede e outros atributos e informações de usuários.
responsável por
coordenar padroniza-
ções relacionadas a
telecomunicações da
União Internacional de
Telecomunicações.
136
Exercício de fixação 8 e
LDAP
Explique o que é o LDAP.
Exercício de fixação 9 e
Serviço de diretórios
O que é um serviço de diretório?
Tipos de informação
O modelo de serviço do diretório LDAP é baseado em entradas. Uma entrada é um conjunto
de atributos e é referenciada através de um nome distinto (DN). O DN é usado para referen-
ciar uma entrada de forma não ambígua. Cada um dos atributos de entrada tem um tipo e
um ou mais valores. Esses tipos geralmente são palavras mnemônicas, como CN para nome
comum, ou mail para endereço de correio eletrônico; existem RFCs que determinam essas
palavras, com os valores dependendo do tipo de atributo. Por exemplo, um atributo mail
pode conter o valor <usuario@dominio.com.br>. Um atributo fotoJpeg conterá uma fotografia.
Protocolo Kerberos
Protocolo de autenticação de rede desenvolvido em 1983 pelo MIT (Massachusetts Institute
l
of Technology), como parte de um projeto de segurança que visava produzir um ambiente
de TI seguro e amplamente distribuído pelo campus da universidade.
Saiba mais
Fazendo uso de criptografia de chave privada, provê autenticação em redes abertas
Na mitologia Grega, mediante uso de algoritmo de autenticação de três vias (TTP – Trusted Third Party), pro-
11 Ticket: tipo de certificado/token que informa com segurança, para todos os equipa-
mentos conectados ao sistema de autenticação, a identidade do usuário para quem o
ticket foi concedido.
11 Autenticador: uma credencial gerada pelo cliente com informações que são comparadas
com as informações do ticket, para garantir que o cliente que está apresentando o ticket
é o mesmo para o qual o ticket foi concedido.
137
11 Centro de distribuição de chaves: para acessar uma aplicação, o usuário obtém tem-
porariamente tickets válidos através do centro de distribuição de chaves que ratificam
os tickets com o autenticador. A aplicação examina o ticket e o autenticador quanto à
validade e concede acesso caso sejam válidos.
Ba
nco de Dados
EQ
S_
TG
_R
RE
EP
S_
AS
Q
R
_R
EP
AS
Figura 6.6
AP_REP
Processo de auten-
ticação
AP_REQ do Kerberos.
Segurança de Redes e Sistemas
1. O usuário realiza uma autenticação em sua estação (utilizando usuário e senha, por exemplo).
2. O Cliente Kerberos então executa uma função hash sobre a senha digitada e isso se torna
a Chave Secreta do Cliente/Usuário (aqui chamada de K1).
138
3. O Cliente Kerberos envia uma mensagem em texto claro para o Authentication Server
(AS) contendo o Identificador do Usuário (nessa fase, não é enviada a chave K1 e/ou a
senha do usuário para o AS).
4. O AS gera a chave secreta (K1) utilizando a mesma função hash utilizada pelo usuário a
partir da senha do usuário encontrada no servidor de banco de dados (por exemplo, o
Active Directory no Windows Server).
6. O cliente recebe mensagens A e B e tenta decifrá-las utilizando a chave K1 e, após, tenta recu-
perar a Chave TGS da Sessão (k2), que está cifrada na mensagem A. Caso não consiga, fica
claro que o usuário não possui a chave secreta (k1) e, portanto, não deve ser autenticado.
d Kerberos no Windows
Saiba mais A implementação Kerberos do Windows foi implementada a partir do Windows 2000 Server,
onde passou a ser padrão no Active Directory, o serviço de diretórios da Microsoft. O Active
Mais informações
sobre o Kerberos Directory consiste em um diretório X.500 (LDAP), combinado com autenticação Kerberos.
podem ser encon- No Active Directory, o Kerberos substitui a autenticação NTLM, facilitando o uso de single
tradas na RFC 4120.
sign-on (SSO) e tornando a solução mais segura. Apesar de o Kerberos ser um protocolo
mais robusto, as senhas ainda são armazenadas em formato de Hash no diretório e podem
ser obtidas através de utilitários encontrados na internet, como o Cain & Abel, Pwdump e
Ophcrack. A figura a seguir mostra o funcionamento geral do Kerberos.
139
Acesso a serviços em uma rede
Sempre que um usuário tentar acessar um serviço na rede, o cliente Kerberos enviará para o
TGS o TGT que foi gerado pelo serviço de autenticação (KDS). O TGS vai gerar um ticket para
o serviço em particular que será utilizado pelo cliente. Esse funcionamento é detalhado nos
passos abaixo, que explicam o funcionamento do protocolo nessa situação:
11 Mensagem F: Chave Secreta entre cliente e servidor (k3) cifrada utilizando a chave TGS
gerada para o cliente.
3. De posse das mensagens E e F geradas pelo TGS, o cliente encaminha essas informa-
ções para o servidor responsável pelo serviço em que o usuário está tentando acesso,
enviando as mensagens:
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:
140
11 Provê capacidade de Single Sign-On (SSO).
Organização do Kerberos
O Kerberos oferece um mecanismo para autenticação mútua entre partes, antes de se
estabelecer efetivamente uma comunicação segura. O Kerberos usa o que é conhecido
como KDC (Key Distribution Center), para facilitar a distribuição segura de permissões e de
chaves simétricas dentro de uma rede. O KDC é executado como um serviço em um servidor
e mantém uma base de dados para todas as entidades de segurança dentro do chamado
Domínio Kerberos.
O Kerberos divide a rede nos chamados reinos (realms). Cada reino possui seu servidor de
autenticação e uma política de segurança própria, permitindo diferentes níveis de segu-
rança por reino. Essa divisão de reinos pode ser hierarquizada, fazendo com que cada área
da organização possua um reino local vinculado a um reino central.
Figura 6.8
Exemplo de auten-
ticação mútua para Administrativo Empresa 1 Internet Financeiro Empresa 1
acesso de serviços.
Por exemplo, para que o domínio “Administrativo Empresa1” consiga acessar serviços de
“Financeiro Empresa1” em um meio inseguro como a internet, basta que os servidores
Kerberos troquem chaves de segurança e se autentiquem mutuamente. Assim o usuário
autenticado em “Administrativo Empresa1” não necessita de outra autenticação para acessar
serviços em “Financeiro Empresa1”. Em uma rede Windows, o Kerberos funciona no
controlador de domínio e utiliza o Active directory para autenticar, efetivamente, todas as
entidades constantes nesse diretório.
11 Related Requests For CommentsRFC 4120 – The Kerberos Network Authentication Service (V5).
11 RFC 4752 – The Kerberos V5 (GSSAPI) Simple Authentication and Security Layer
11 RFC 6251 – Using Kerberos Version 5 over the Transport Layer Security (TLS) Protocol.
Exercício de fixação 10 e
Kerberos
O que é Kerberos e como é utilizado?
141
Certificação digital
A recomendação X.509 define um framework para provimento de serviços de autenticação
de usuário do diretório X.500. O diretório também pode servir como um repositório de
certificados públicos de usuários do repositório. O X.509 define também alternativas de
protocolos de autenticação com base no uso de certificados digitais. A recomendação X.509
é baseada no uso de algoritmos criptográficos de chave pública e assinatura digital. Ela não Assinatura digital
explicita o uso de um algoritmo especificamente, mas recomenda o uso do RSA. Método de autenticação
dos algoritmos de
Autoridades certificadoras criptografia de chave
pública operando
Existem várias implementações de Infraestrutura de Chave Pública (PKI) comerciais e em conjunto com uma
de software livre: função Hash, também
conhecida como função
11 Microsoft Windows 2008 Server – CertificateAutority. resumo.
Trilhas de auditoria
A análise dos eventos é uma atividade vital para identificar o que ou quem causou algo no
sistema. O processo de auditoria pode ser dividido em fases definidas na elaboração da
política de segurança. A auditoria em segurança da informação tem o papel de assegurar a
qualidade da informação e participar do processo de garantia quanto a possíveis e indesejá-
veis problemas de falha humana.
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.
142
Falta a navegação para acesso à funcionalidade. Acesse “Local Security Policy” em Local
Policies>Audit Policy>Audit object acess. Configure como Failure.
Figura 6.9
Acesso às
funcionalidades
de Audit Policy.
Figura 6.10
Configurando as
propriedades de
Audit object access.
Uma vez configurada a diretiva, os registros serão gravados localmente no próprio sistema,
podendo ser visualizados com o Event Viewer, outra ferramenta Windows.
143
Figura 6.11
Visualizador
de eventos
(Audit Failure).
Segurança de Redes e Sistemas
144
Roteiro de Atividades 6
Atividade 1 – Utilização do sistema OTP S/Key
Nesta atividade, vamos configurar o uso de um sistema de autenticação OTP utilizando o
d Opie. Será fornecido acesso SSH ao host LinServer.
Passo 3 Agora que o Opie está instalado na máquina, edite o arquivo /etc/pam.d/sshd e
comente a linha @include common-auth; após essa linha, vamos adicionar mais
três linhas ao arquivo de configuração:
auth sufficient pam_unix.so
auth sufficient pam_opie.so
auth required pam_deny.so
Essas linhas instruirão o Pluggable Authentication Module (PAM) do Linux a tentar
utilizar o módulo pam_opie.so, que consulta o Opie para autenticar no sistema.
Passo 4 Agora, edite o arquivo de configuração do SSH para permitir resposta a desafios,
depois reinicie o servidor SSH, com o seguinte comando com o usuário root:
# vi /etc/ssh/sshd_config
...
ChallengeResponseAuthentication yes
...
Reinicie o serviço:
# /etc/init.d/ssh restart
Passo 5 Antes de autenticar um usuário, vamos incluir um usuário para usar a autenti-
cação S/Key do Opie. Para isso execute:
# su aluno
# aluno@FWGW1:~$ opiepasswd -f –c
Capítulo 6 - Roteiro de Atividades
145
Atividade 2 – Configurando o serviço de autenticação Kerberos no Windows 2008
Para realizar a instalação do serviço de autenticação Kerberos do Windows 2008 será neces-
sário realizar a instalação da Rule Active Directory. Para isso execute o comando dcpromo.exe.
4. Na página “Name the Forest Root Domain”, digite o nome DNS completo do domínio raiz
da floresta. No nosso digite domainA.esr.local ou domainB.esr.local (dependendo do seu
grupo) e clique em “Next”.
5. Na próxima página será necessário informar um nome NetBios para o domínio. Insira
DOMAINA ou DOMAINB (dependendo do seu grupo) e clique em “Next”.
6. Na página “Set Forest Functional Level”, selecione o nível funcional de floresta que
acomoda os controladores de domínio a serem instalados em qualquer lugar da Flo-
resta; em seguida, clique em “Next”. Como teremos somente controladores de domínio
Windows 2008 Server, utilizaremos o nível funcional Windows 2008 Server. Após sele-
cionar, clique em “Next”.
7. Na página “Additional Domain Controller Options“, a opção “Servidor DNS” está sele-
cionada por padrão, portanto, a infraestrutura DNS da sua floresta deverá ser criada
durante a instalação do AD DS. Clique em “Next”.
8. Se o assistente não puder criar uma delegação para o servidor DNS, uma mensagem será
exibida para indicar que você pode criar a delegação manualmente. Para continuar, clique
em “Yes”.
9. Na página “Location for Database, Log Files, and SYSVOL”, mantenha os valores originais
propostos pelo instalador e, em seguida, clique em “Next”.
10. Na página Senha do “Directory Services Restore Mode Administrator Password“, digite
“rnpesr” e confirme a senha do modo de restauração; em seguida, clique em “Next”.
12. Após a instalação das funções AD, DS e DNS, será necessário reiniciar o servidor.
13. Agora inicie a máquina Virtual Windows XP e a adicione no domínio que você acabou de
criar. Não se esqueça de alterar o endereço do servidor de DNS para o IP do servidor
Windows 2008, ou seja, 172.16.G.20.
14. Crie um usuário no AD chamado RNP e execute o Wireshark. Tendo a certeza de que
Segurança de Redes e Sistemas
o Wireshark está em execução no servidor Windows 2008 e que ele está capturando
pacotes, acesse a máquina virtual Windows XP e realize a autenticação utilizando o
usuário RNP. Tente visualizar todas as mensagens citadas na parte teórica deste livro.
146
Atividade 3 – Uso do Cain & Abel para avaliar a segurança do sistema de autenticação
Nesta atividade usaremos o Cain & Abel para realizar um ataque de ARP-Poison, capturar
senhas e avaliar a segurança do sistema de autenticação.
1. Acesse o Servidor Windows 2008 e crie um novo usuário chamado RNP2, com a senha 123456.
3. Agora, autentique como Administrador na máquina virtual Windows XP, desative o firewall
e inicie o programa Cain & Abel (o executável do programa Cain & Abel encontra-se em:
c:\arquivos de programas\Cain\Cain.exe).
4. Iniciemos a execução do sniffer (clique no ícone que parece uma placa de rede, selecione
a interface padrão, clique novamente nesse ícone e, também, no ícone amarelo).
5. Para iniciarmos um scan da rede em busca de MACs que queiramos sniffar, precisamos ir
à aba “Sniffer” e, na parte inferior dessa janela, clicar no botão “Hosts”.
6. Como podemos ver abaixo, nessa janela são exibidos os PCs em nossa rede:
7. Vamos ver agora a técnica Man in the Middle: clique no botão “APR” na parte inferior
Capítulo 6 - Roteiro de Atividades
esquerda da janela:
147
8. Clique no botão com o símbolo na barra de ferramentas superiores (assim iniciaremos
o sniffer).
Aqui o botão “+” pode não aparecer. Para resolver o problema, no treeview esquerdo
clique na raiz APR e depois em uma linha qualquer no quadro status.
11. Agora, a partir da máquina Windows 2008, acesse algum site https, como Gmail, Banco
do Brasil etc. Observe o comportamento estranho do navegador, que informa um certifi-
cado inválido. O que aconteceu é que o Cain & Abel gerou um certificado falso e apre-
Segurança de Redes e Sistemas
sentou como se fosse o certificado do site https que você está tentando acessar.
148
12. Verifique as demais configurações desta ferramenta.
149
Segurança de Redes e Sistemas
150
7
Redes Privadas Virtuais
objetivos
Detalhar o uso de VPN IPSec e VPN SSL, abordando aspectos práticos relacionados.
conceitos
VPN, PPT, PL2TP, IPSec e SSL, entre outros.
Introdução
A criptografia é um assunto extenso e muito importante para a segurança da informação,
considerada fundamental por muitos autores. Neste capítulo, veremos aspectos teóricos do
uso de VPN IPSec e VPN SSL e abordaremos aspectos práticos dessas aplicações.
Exercício de nivelamento 1 e
Redes Privadas Virtuais
O que você entende por VPN?
VPN
VPN (Virtual Private Network) possibilita o uso de uma rede pública para interligar escri- q
tórios comerciais, com redução de custos. Serve para viabilizar negócios que têm como
Capítulo 7 - Redes Privadas Virtuais
11 Autenticação da mensagem.
151
Virtual Private Network é um termo bastante utilizado atualmente. A possibilidade de uso de
uma rede pública como a internet para interligar escritórios comerciais e grandes empresas
tem permitido a redução de custos e vai viabilizar negócios que têm como premissa requisitos
de comunicação eficiente. Dessa forma, gestores de empresas vêm buscando mecanismos
para manter as equipes sempre em comunicação, visando diminuir os investimentos em infra-
estrutura de TI ou até mesmo buscando melhor uso do parque tecnológico já instalado.
Uma solução efetiva de VPN visa transportar os dados de modo seguro e sigiloso, usando
um canal compartilhado para interligar duas redes privadas protegidas. Para que isso
ocorra, precisamos alcançar alguns objetivos importantes:
11 Confidencialidade dos dados: garantia de que a mensagem não poderá ser interpretada
por origens não autorizadas.
11 Integridade dos dados: garantia de que o conteúdo da mensagem não foi alterado
durante a transmissão entre o emissor e o receptor.
11 Não repúdio do emissor: o emissor não poderá repudiar o envio da mensagem, ou seja,
dizer que ele não enviou a mensagem questionada, com embasamento legal.
11 Autenticação da mensagem: garantia de que a mensagem foi enviada por uma fonte
autêntica e será entregue a um destino autêntico.
Neste capítulo, vamos utilizar o modelo OSI de 7 camadas para classificar as tecnologias de VPN.
Na ilustração, as camadas do modelo OSI e as respectivas aplicações de tecnologias de VPN.
RF encryptors,
Camada 1: Física
optical bulk encryptors Figura 7.1
OSI vs. VPN.
11 Autenticação da mensagem.
152
VPN PPTP
Autenticação: q
11 PAP.
11 CHAP.
11 MS-CHAP.
Analisando o modelo OSI, a VPN PPTP encontra-se na camada de enlace por ser uma
derivação do protocolo Point to Point Protocol (PPP), que consiste em um protocolo de
comunicação ponto a ponto, muito utilizado no passado em linhas telefônicas. O PPTP foi
desenvolvido pela Microsoft com o objetivo de incrementar recursos ao PPP. Ele utiliza a
autenticação do PPP com um recurso de túnel que pode ser criptografado utilizando
Figura 7.2
Estrutura do Proto- criptografia de 40 ou 128 bits. A Figura 7.2 apresenta uma estrutura básica de um pacote
colo do Túnel PPTP. PPTP, contido dentro de um pacote IP.
Podemos verificar, assim, que o CHAP e o MS-CHAP são preferíveis ao PAP, pois não tra-
Capítulo 7 - Redes Privadas Virtuais
L2TP
Especificado na RFC 2661 e desenvolvido por empresas como Cisco e Microsoft, utiliza a q
estrutura cliente servidor e é orientado a pacotes. Usa UDP como protocolo de transporte.
O L2TP é um protocolo aberto, especificado na RFC 2661. Foi desenvolvido por um grupo de
empresas incluindo Cisco e Microsoft. Assim como o PPTP, o L2TP utiliza a estrutura cliente
servidor, mas é orientado a pacotes. Dessa forma, alguns problemas de desempenho do
PPTP foram contornados, por utilizar UDP como protocolo de transporte.
153
Cabeçalho Data Link
Cabeçalho IP Cabeçalho UDP Cabeçalho L2TP Cabeçalho PPP Payload PPP
Data Link Trailer
Para implementar o túnel L2TP em redes com firewall por padrão, é necessário liberar a Figura 7.3
porta UDP 1701. Como é um protocolo orientado a pacotes, o NAT pode ser implementado Estrutura do
protocolo do L2TP.
no modelo um-para-muitos ou um-para-um. Por ser mais leve e prover melhor desem-
penho, recomenda-se usar o L2TP no lugar do PPTP, sempre que possível. Deve-se ainda
evitar o PPTP, especialmente as versões com chaves de 40 bits, pois diversas vulnerabili-
dades já foram descobertas nesse protocolo.
IPSec
A segurança de IP (IPSec) é uma capacidade que pode ser acrescentada a qualquer q
versão atual do protocolo Internet: IPv4 e IPv6, por meio de cabeçalhos adicionais. IPSec
é um conjunto de protocolos, também conhecido como suíte de segurança IP.Os proto-
colos inclusos na suíte de segurança IP estão focados em:
A segurança de IP (IPSec) é uma capacidade que pode ser acrescentada a qualquer versão
atual do protocolo Internet: IPv4 e IPv6, por meio de cabeçalhos adicionais. O IPSec atua
na camada de rede do modelo OSI, por criptografar o conteúdo (payload) do pacote IP.
Como o IPSec não é um protocolo único, mas sim um conjunto de protocolos, cada qual com
um objetivo específico, podemos chamar o IPSec de suíte de segurança IP. Os protocolos
inclusos na suíte de segurança IP estão focados na entrega da mensagem autêntica, com
integridade dos dados, confidencialidade dos dados e não repúdio do emissor.
A especificação do IPSec consiste em várias RFCs, sendo as mais importantes delas emi- q
tidas em 1998. São elas:
11 RFC 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.
154
Além das quatro RFCs, diversos rascunhos foram publicados pelos grupos de trabalho do IP
Security Procotol. Os documentos estão descritos na RFC 2401, divididos em sete grupos,
conforme a figura:
Arquitetura
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.
155
Quais as formas mais usuais de autenticação do VPN PPP?
Exercício de fixação 2 e
IPSec
Explique como o IPSec funciona.
22 Counter (CTR).
22 RC4.
Cabeçalho IP Cabeçalho ESP Cabeçalho TCP Dados Trailer ESP Autenticação ESP
Criptografado
Segurança de Redes e Sistemas
Autenticado
11 Modo de Túnel: esse modo de operação oferece proteção a todo pacote IP. Todo o Figura 7.5
pacote original viaja por um “túnel” de um ponto de uma rede IP para outro, e nenhum Pacote encapsu-
lado ESP no modo
roteador ao longo do caminho é capaz de examinar o cabeçalho IP interno. transporte.
156
Cabeçalho Cabeçalho Trailer
Novo cabeçalho IP Cabeçalho ESP Dados Autenticação ESP
IP TCP ESP
Criptografado
Autenticado
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.
Cabeçalho ESP
11 Security Parameters Index (SPI). q
11 Número sequencial.
11 Dados.
157
11 Padding. q
11 Tamanho do Pad.
11 Próximo cabeçalho.
Sequence number
O campo SPI possui um valor que identifica a associação de segurança (SA) de um tráfego
IPSec. O campo “Sequence number” possui um contador, que é incrementado a cada pacote
enviado, com o objetivo de proteger contra ataques replay, onde o atacante captura um
tráfego e o repete mais à frente. O payload contém o pacote original que está sendo prote-
gido pelo ESP. O “Padding” é utilizado para completar os dados de modo a caber no tamanho
de bloco do algoritmo de criptografia. “Pad Length” contém o tamanho do campo anterior e
“Next Header” indica o tipo do próximo cabeçalho.
Cabeçalho AH
11 Próximo cabeçalho. q
11 Tamanho do payload.
11 Número sequencial.
Sequence number
158
No cabeçalho AH, alguns campos são invertidos em relação ao ESP, e não temos a cifragem
do pacote original. Os campos “Next header”, “SPI” e “Sequence number” possuem a mesma
finalidade dos correspondentes no cabeçalho ESP. O campo “Payload length” indica o
tamanho do cabeçalho AH.
Exercício de fixação 3 e
IPSec
Explique o que são ESP e AH no protocolo IPSec.
VPN SSL
Com o uso de VPNs baseadas em SSL, é possível ter acesso a aplicações ou redes q
remotas, tendo como acesso qualquer tipo de conectividade à internet. Pode ser imple-
mentada via:
11 Navegador web
Com o uso de VPNs baseadas em SSL, é possível ter acesso a aplicações ou redes remotas,
tendo como acesso qualquer tipo de conectividade à internet, sendo necessário apenas
um navegador da internet ou um software cliente instalado na máquina do usuário. Essa
flexibilidade permite às VPNs baseadas em SSL prover acesso de qualquer lugar a recursos
computacionais de uma empresa. Dessa forma, colaboradores de uma empresa podem
utilizar VPNs baseadas em SSL para ter acesso remoto a aplicações de uma empresa.
Existem algumas etapas no estabelecimento da sessão VPN SSL que podem ser descritas em
Capítulo 7 - Redes Privadas Virtuais
1 2
159
1. Nesta fase, o equipamento do usuário estabelece uma conexão TCP na porta 443 do servidor.
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 van-
tagem das VPN SSL em relação ao IPSec é que a liberação do acesso através de um firewall é
bem mais simples, pois envolve apenas uma porta (443 TCP), que normalmente já é liberada
pra acessos www seguros (HTTPS).
Exercício de fixação 4 e
VPN SSL
Explique a diferença entre TLS e SSL.
11 Testes.
Instalação do Openswan
w
Instalação e configuração da solução de VPN usando o Openswan no Debian.
Openswan é uma
Instalação do Openswan: implentação de IPSec
para Linux, licenciado
debian:~# apt-get install openswan pela GPLversão 2. Site
Segurança de Redes e Sistemas
do projeto: www.
Reading package lists... Done openswan.org.
Suggested packages:
160
openswan-modules-source linux-patch-openswan curl
Recommended packages:
iproute-doc
openswan
Figura 7.11
Tela de instalação
do OpenSwan.
Nessa tela deve-se selecionar “No” (Não), pois será usada uma Pre-shared Key (Chave
pré-compartilhada). Após essa tela, não há mais configuração.
Verificando a versão:
correctly:
161
Please disable /proc/sys/net/ipv4/conf/*/send_redirects
Configuração do Openswan
O servidor de VPN deve estar configurado de acordo com a estrutura de sua unidade.
Para a configuração da VPN siga os passos seguintes.
vim /etc/ipsec.conf
# Manual: ipsec.conf.5
162
# basic configuration
config setup
interfaces=%defaultroute
# eg:
# plutodebug=”control parsing”
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
nhelpers=0
conn %default
keyingtries=0
disablearrivalcheck=no
conn vpnpeer1
left=200.200.40.16
Capítulo 7 - Redes Privadas Virtuais
leftsubnet=192.168.1.0/255.255.255.0
right=200.200.140.10
rightsubnet=10.61.0.0/255.255.0.0
ike=aes256-sha-modp1024
esp=aes256-sha1
pfs=no
ikelifetime=8h
163
keylife=8h
dpddelay=30
dpdtimeout=120
dpdaction=hold
authby=secret
auto=start
# nameserver 202.21.11.100
include /etc/ipsec.d/examples/no_oe.conf
---------------------------------------------------------------------
# This file holds shared secrets or RSA private keys for inter-Pluto
# RSA private key for this host, authenticating it to any other host
# which knows the public part. Suitable public keys, for ipsec.
conf, DNS,
164
dade de software livre. É importante lembrar que o IPv6 virá com IPSec nativo, de modo que
é preciso conhecer bem as duas tecnologias.
Instalação do OpenVPN
O OpenVPN atualmente já faz parte do repositório padrão do Debian. Dessa forma, a insta-
lação pode ser feita com o utilitário apt-get, como ilustra o exemplo a seguir:
Suggested packages:
ca-certificates resolvconf
165
tar: ./md5sums: time stamp 2010-06-08 17:45:39 is 5089826.261059126
s in the future
debian:~#
O projeto disponibiliza ainda, no seu site, um cliente de VPN SSL para as plataformas Micro-
Segurança de Redes e Sistemas
soft Windows, Apple Mac OS X e Linux. A instalação desses clientes para Microsoft Windows
é realizada via método de instalação padrão de aplicativos para Windows.
Configuração do OpenVPN
A configuração do OpenVPN pode ser realizada editando o arquivo de configuração padrão
ou criando um novo arquivo de configuração. No caso de criar um novo arquivo, é neces-
sário fazer referência a esse novo arquivo de configuração na inicialização do serviço.
166
Exemplo de configuração do servidor OpenVPN:
;local a.b.c.d
port 1194
;proto tcp
proto udp
;dev tap
dev tun
;dev-node MyTap
ca ca.crt
cert server.crt
dh dh1024.pem
ifconfig-pool-persist ipp.txt
;server-bridge
;client-config-dir ccd
;client-config-dir ccd
;learn-address ./script
;client-to-client
;duplicate-cn
keepalive 10 120
comp-lzo
;max-clients 100
167
;user nobody
;group nogroup
persist-key
persist-tun
status openvpn-status.log
;log openvpn.log
;log-append openvpn.log
verb 3
;mute 20
É importante ressaltar que a VPN pode trabalhar em modo transparente (bridge) ou roteada
(routing). Desta forma, será necessário configurar o kernel do Linux para que trabalhe de acordo
com um dos modos, conforme realizado no capítulo 3. Será necessário também ajustar as
regras de firewall para permitir o fluxo de pacotes para a interface virtual do OpenVPN.
A configuração do cliente pode ser realizada também por arquivo de configuração, o que
facilita a distribuição de pacotes em larga escala. Abaixo a tela de configuração para o cliente
OpenVPN, na plataforma Microsoft Windows XP.
Figura 7.12
Cliente de OpenVPN
para Windows XP.
Segurança de Redes e Sistemas
168
Roteiro de Atividades 7
Atividade 1 – VPN IPSec
Nestas atividades iremos praticar os conceitos de VPN aprendidos neste capítulo. Para isso
vamos implementar as tecnologias de VPN IPSec e VPN SSL.
VPN IPSec é amplamente utilizada como tecnologia de VPN para interconectar redes.
Vamos implementar um túnel IPSec com o Openswan para interligar duas redes de vizinhos
no laboratório. Essa atividade é complexa e envolve a configuração em duas estações de
alunos. Escolha um colega próximo e combine com antecedência o que cada um vai fazer.
A cooperação e o planejamento são fatores fundamentais para o sucesso da prática. Um
aluno vai configurar os equipamentos da Topologia A e o outro aluno vai configurar os
equipamentos da Topologia B.
Conforme ilustra a figura a seguir, iremos interligar a rede de topologia A com a rede de
topologia B, utilizando o Openswan configurado no gateway FWGW1 de cada um dos alunos.
Internet
DHCP DHCP
Configure o OpenSwan no host FWGW1, para permitir a comunicação das máquinas da rede
local remota com os seus servidores da DMZ. Exemplo: se você está configurando o cenário
da Topologia A, você vai configurar o Openswan para permitir que os usuários da rede
10.1.2.0/24 acessem os servidores de sua DMZ, rede 172.16.1.0/24.
169
Passo 1 Acesse o host FWGW1, atualize a lista de pacotes do Debian e instale o pacote
Openswan:
# apt-get update
# apt-get install openswan
Você será questionado se quer utilizar Opportunistc Encryption (OE): res-
ponda “No”.
Será questionado também se quer gerar as chaves RSA. Responda “No”,
porque utilizaremos uma frase-senha (Pre shared key).
Passo 2 Aguarde seu colega concluir o Passo 1 para iniciarem juntos o Passo 3.
Passo 4 Para definir a frase-senha (Pre shared key), vamos editar o arquivo
/etc/ipsec.secrets
Atenção: observe a ordem dos hosts:
Para o Grupo A:
Y.Y.Y.Y X.X.X.X : PSK “vpnipsec”
Para o Grupo B:
Segurança de Redes e Sistemas
Passo 5 Para iniciar a VPN IPSec, temos de iniciar o serviço nos dois gateways VPN
(FWGW1-A e FWGW1-B):
# /etc/init.d/ipsec start
# /etc/init.d/ipsec restart
170
Passo 6 Verifique se a conexão IPSec foi estabelecida:
# ipsec auto status
Passo 7 Verifique a conectividade com testes de ping para o host Windows XP de seu
colega de trabalho. Por exemplo, se você é Grupo A, no host Windows XP, faça:
C:\> ping 10.1.2.10
1. Configurar o host FWGW1 como servidor de VPN SSL, que receberá conexões na interface
externa conectada à internet de um vizinho de laboratório.
171
Passo 3 Para gerar o certificado do servidor OpenVPN, vamos utilizar o comando:
# ./build-key-server FWGW1-G
Serão solicitadas informações para o certificado do servidor.
Podemos utilizar o exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal
Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]: Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []:Escola Superior de
Redes
Common Name (eg, your name or your server’s hostname)
[FWGW1-A]:fwgw1-G.esr.rnp.br
Email Address [me@myhost.mydomain]:admin@esr.rnp.br
Passo 5 É necessário gerar também os parâmetros para o Diffie Hellman; para isso,
utilize o comando:
# ./build-dh
172
Passo 6 Os certificados foram gerados no subdiretório keys. Vamos copiar os certificados
necessários para o servidor para o diretório /etc/openvpn/keys com os comandos:
# mkdir /etc/openvpn/keys
# cp keys/ca.crt /etc/openvpn/keys
# cp keys/FWGW1-G.crt /etc/openvpn/keys
# cp keys/FWGW1-G.key /etc/openvpn/keys
# cp keys/dh1024.pem /etc/openvpn/keys
Para aumentar ainda mais o nível de segurança, vamos gerar uma chave
estática que deve ser configurada tanto no servidor quanto nos clientes da
VPN. Para isso execute dentro do diretório /etc/openvpn/keys (essa chave será
utilizada em outra atividade):
# openvpn --genkey --secret static.key
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/FWGW1-G.crt
dh /etc/openvpn/keys/dh1024.pem
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
# /etc/init.d/openvpn start
173
Configure o host Windows XP para estabelecer a conexão VPN SSL com o gateway de seu
colega. Iremos utilizar o cliente de VPN disponibilizado no site do OpenVPN.
Passo 1 A partir do host Windows XP, com um navegador, entre no site do OpenVPN
(http://openvpn.net/) faça o download da última versão do cliente OpenVPN
para Windows XP e proceda com a instalação do cliente. Por exemplo:
http://swupdate.openvpn.net/community/releases/openvpn-2.1.4-install.exe
persist-key
persist-tun
ca ca.crt
cert clienteXP.crt
key clienteXP.key
verb 3
Onde Y.Y.Y.Y é o endereço público (interface eth0) do firewall (FWGW1) do seu
colega de laboratório, onde será estabelecida a VPN.
174
Passo 5 Verifique o funcionamento com testes de ping. Ex.:
C:\>ping 172.16.G.10
C:\>ping 10.1.G.10
C:\>
175
Atividade 3 – Servidor VPN SSL para múltiplos clientes
Nesta atividade, vamos realizar uma configuração mais avançada do OpenVPN. O objetivo é
implementar uma solução de VPN para vários clientes simultâneos. A próxima figura ilustra
como seria essa topologia:
Internet
DHCP Host
Windows
DMZ 172.16.1.0/24
Host
Servidor Servidor Windows
Windows Linux
Host Windows
Segurança de Redes e Sistemas
176
1. Vamos configurar o host FWGW1 como servidor de VPN SSL para múltiplos clientes, que
receberá conexões na interface externa conectada à internet.
Passo 1 Caso não exista, crie um usuário chamado aluno com a senha rnpesr
#adduser aluno
Para atender à necessidade acima, será necessário, ainda, inserir uma
regra de firewall para realizar o NAT de todos os pacotes cuja origem seja a
rede VPN e o destino seja as máquinas da rede interna.
#/sbin/iptables –t nat -A POSTROUTING -s
10.8.G.0.0/255.255.255.0 -o eth0 -j MASQUERADE
Modificar o arquivo /etc/openvpn/server.conf com o conteúdo abaixo.
Observe que várias linhas que estão comentadas poderiam ser utilizadas
no seu ambiente. Digite apenas as linhas que não estão comentadas.
;;;;;;;;;;;;;;;;;;
; confs do servico
;;;;;;;;;;;;;;;;;;
mode server # Habilita modo site-to-client
tls-server # Servidor de Certificado
proto udp # Protocolo
port 1194 # Porta
dev tun # Nome para interface virtual
max-clients 10 # Limita a quantidade máxima de
clientes
;;;;;;;;;;;;;;;;;;
; confs dos certificados
;;;;;;;;;;;;;;;;;;;;;;;;
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/FWGW1-G.crt
key /etc/openvpn/keys/ FWGW1-G.key
tls-auth /etc/openvpn/keys/static.key
duplicate-cn #permite vários clientes com única chave
;;;;;;;;;;;;;;;;;;;;;
;confs de rede
;IP-SRV 10.8.G.1 /
;IP-NWK 10.8.G.0
Capítulo 7 - Roteiro de Atividades
;;;;;;;;;;;;;;;;;;;;;
# fornece a subrede da VPN (implica automaticamente tls)
server 10.8.G.0 255.255.255.0
177
;;;;;;;;;;;;;;;;;;;;;;;;
;Ativa compactação de pacotes
;;;;;;;;;;;;;;;;;;;;;;;;
comp-lzo
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;confs de manutenção de estado
; do tunel por ping
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push “ping 10”
push “ping-restart 60”
keepalive 10 120
persist-key
persist-tun
tls-timeout 120
;;;;;;;;;;;;;;;;;;;;;;;;
;confs de armazenamento
; de logs
;;;;;;;;;;;;;;;;;;;;;;;;
status-version 2 # Versao do status
status /var/log/openvpn-status.log # Local de armaz status
log-append /var/log/openvpn.log # Local de armaz log
verb 4 # nivel detalhamento
;;;;;;;;;;;;;;;;;;;;;
;confs do modulo PAM
;;;;;;;;;;;;;;;;;;;;;
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
username-as-common-name
178
Passo 2 Agora vamos configurar um cliente para o OpenVPN. Crie o arquivo client.
ovpn na pasta C:\Program Files\OpenVPN\config com o conteúdo abaixo:
remote Y.Y.Y.Y
proto udp
port 1194
client
pull
dev tun
comp-lzo
keepalive 10 120
persist-key
persist-tun
float
tls-client
dh dh1024.pem
ca ca.crt
cert clienteXP.crt
key clienteXP.key
tls-auth static.key
auth-user-pass
Onde Y.Y.Y.Y é o endereço público (interface eth0) do firewall (FWGW1) do
seu colega de laboratório, onde será estabelecida a VPN.
179
Passo 4 Verifique o funcionamento com testes de ping. Ex.:
C:\>ping 172.16.G.10
C:\>ping 10.1.G.10
C:\>
Segurança de Redes e Sistemas
180
8
Auditoria de Segurança
da Informação
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 qual-
quer área, como qualidade, ambiental, financeira, de conformidade etc.
É importante ressaltar que este capítulo trata apenas da auditoria de dispositivos de segu-
rança, sem entrar em questões de políticas, análise de risco e outros tópicos relacionados
à governança e normatização. Esses assuntos são tratados em detalhes no curso Gestão da
Segurança da Informação – NBR 27001 e NBR 27002, oferecido pela Escola Superior de Redes.
Exercício de nivelamento 1 e
Auditoria de Segurança da Informação
O que você entende por auditoria de segurança da informação?
181
Como a auditoria de dispositivos de segurança é realizada na sua organização?
Análise de vulnerabilidades
Vulnerabilidade: q
11 Falha em um sistema computacional.
11 Bugs (software).
11 Falha de configuração.
Sistemas vulneráveis:
11 Software.
11 Sistema operacional.
11 Roteador.
11 Protocolo.
11 Hardware.
Exploração de vulnerabilidade:
11 Estouros de pilha.
11 Negação de serviços.
11 Acesso irrestrito.
Uma vulnerabilidade pode ser definida como uma brecha em um sistema computacional.
Quando tratamos de programas (software), essas vulnerabilidades são muitas vezes chamadas
de bugs. Um sistema vulnerável pode ser um software, um sistema operacional, um roteador, Bug
um protocolo ou até um hardware. Essas vulnerabilidades podem ser exploradas com o intuito Falha ou vulnerabilidade
em um programa ou
de subverter o sistema em questão, causando indisponibilidade, obtendo controle sobre ele,
sistema.
acessando dados sensíveis ou utilizando o sistema para atacar outros sistemas.
Service é o ataque de
conhecidas e amplamente divulgadas. Uma forma eficiente de verificar se uma rede, aplicação negação de serviço
ou sistema operacional está suscetível a determinadas falhas é com o uso de ferramentas de realizado de forma dis-
tribuída e coordenada
análise de vulnerabilidades. Essas ferramentas utilizam assinaturas ou regras que simulam
falhas conhecidas e produzem um relatório com os problemas encontrados e possíveis solu-
ções. É importante, porém, salientar que a análise de vulnerabilidade não substitui o controle
da aplicação de correções dos fabricantes dos produtos utilizados em uma organização, pois
confiar na ferramenta pode levar à não aplicação de uma correção caso ela esteja desatuali-
zada ou mesmo não tenha sido atualizada para verificar uma vulnerabilidade específica.
182
Como novas falhas são encontradas todos os dias, uma boa ferramenta de análise de vulne-
rabilidades deve ser constantemente atualizada, de modo que possa detectar as falhas mais
recentes descobertas. Existe atualmente uma série de ferramentas de análise de vulnerabili-
dades, gratuitas e comerciais. Algumas ferramentas gratuitas / open source: Nmap, Nessus,
OpenVas, Microsoft MBSA; comerciais: Rapid7 NeXpose, eEye Retina, GFI LANguard, IBM
Internet Scanner.
A seguir, detalharemos o uso da ferramenta Nessus, que é gratuita para fins não comerciais
e pode ser obtida livremente na internet.
Exercício de fixação 1 e
Análise de vulnerabilidades
Como pode ser realizada uma análise de vulnerabilidades?
Instalação do Nessus
O Nessus é uma ferramenta de análise de vulnerabilidades, atualmente mantida pela
empresa Tenable Network Security. Apesar de originalmente ser uma ferramenta open
source, hoje a sua licença permite o uso gratuito apenas residencial e para treinamento. O
uso comercial necessita da aquisição de uma licença específica. Por conta dessas mudanças,
foi criado um novo produto, a partir da última versão livre do Nessus, atualmente conhecido
como OpenVAS. Por questões didáticas e pelo fato de estar mais adequado ao laboratório
prático, utilizaremos o Nessus nas atividades.
Para instalar o Nessus é necessário baixar o pacote específico para o Linux Debian, utilizado
no laboratório, uma vez que a versão mais recente ainda não se encontra disponível nos
repositórios para instalação com apt-get. O download do Nessus pode ser feito no seguinte
endereço: http://www.nessus.org/
2. Instale o pacote com o comando dpkg –i <nome do pacote>. A instalação pode demorar um
pouco, seja paciente.
Capítulo 8 - Auditoria de Segurança da Informação
3. Acesse o endereço http://www.nessus.org/register para obter uma chave de registro.
Para registrar o Nessus para uso doméstico, será necessário fornecer um endereço de
correio eletrônico, para que a chave seja enviada. No e-mail recebido, encontra-se refe-
rência ao comando necessário para inserir a chave na ferramenta:
/opt/nessus/bin/nessus-fetch --register <chave de ativação>.
FWGW1:~# /opt/nessus/sbin/nessus-adduser
Login : rnp
Login password :
183
Do you want this user to be a Nessus ‘admin’ user ? (can upload
plugins, etc...) (y/n) [n]: y
User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that rnp has the right to test. For instance, you may want
Enter the rules for this user, and enter a BLANK LINE once you are
done :
Login : rnp
Password : ***********
This user will have ‘admin’ privileges within the Nessus server
Rules :
User added
11 Iniciar o Nessus.
Segurança de Redes e Sistemas
Auditoria:
Iniciando a varredura
Para realizar uma auditoria, necessitamos inicialmente acessar o servidor Nessus no endereço:
https://<servidor_nessus>:8834
184
Figura 8.1
Tela de login
do Nessus.
Através da tela principal do Nessus, podemos criar uma política (policy), para ser usada na
auditoria. Clique no botão Add, para adicionar uma política. Na próxima tela, nomeie essa
política. Inicialmente, deixaremos os valores padrão.
Figura 8.2
Política.
185
Após criar a política, salve-a e crie uma varredura (scan). Defina um nome, escolha a política
recém-criada e a rede que será auditada. Neste exemplo, auditaremos a nossa rede de
servidores (172.16.1.0/24).
Figura 8.3
Configuração
Nessus.
Por fim, iniciaremos a auditoria clicando no botão Launch scan para iniciar a auditoria, que
após seu término terá o relatório disponível na guia Reports, conforme a próxima tela.
Segurança de Redes e Sistemas
Figura 8.4
Relatório
do Nessus.
186
Exemplo de auditoria em firewall
ivocarv$ nmap 192.168.1.0/24
Interestingportson 192.168.1.1:
O horário do firewall está correto? Ele está sendo sincronizado com uma fonte de tempo confiável?
Como foi dito, auditoria de segurança é um assunto vasto. Podemos auditar um perímetro,
uma rede, um sistema operacional, uma aplicação ou um ativo de rede específico como um
roteador, switch, hub. Neste capítulo veremos um exemplo de auditoria em um firewall.
Normalmente uma auditoria é realizada com base em uma norma ou boas práticas em segu-
rança. Neste exemplo estaremos realizando uma auditoria frente às boas práticas.
11 Testando o firewall.
11 Alertas e registros.
Arquitetura do firewall
Neste ponto da auditoria, estamos preocupados se a arquitetura definida realmente cumpre
os objetivos que foram definidos. O auditor deve verificar as seguintes questões, entre outras:
11 Existem hubs sendo usados na rede? (Hubs podem ter todo o tráfego que passa por
ele monitorado). Capítulo 8 - Auditoria de Segurança da Informação
Testando o firewall
Existem recursos de segurança específicos para a plataforma que está sendo auditada?
Eles estão bem configurados?
187
Existem duas categorias diferentes de firewall: os que rodam em cima de um sistema ope-
racional e os chamados appliances, que são equipamentos específicos que fazem o papel Appliance
de firewall (ex.: um switch com firewall embutido, um roteador com filtros de pacotes, um Serviço que executa
dentro de um hardware
firewall embutido em uma caixa física).
dedicado e otimizado
para a aplicação
Cada tipo tem suas vantagens e desvantagens: os baseados em sistemas operacionais são
em questão.
mais flexíveis, porém são suscetíveis a vulnerabilidades no sistema operacional usado; os
appliances são normalmente mais seguros “de fábrica”, porém normalmente são proprietá-
rios e será preciso confiar no fabricante no que tange à segurança.
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?
O auditor deve analisar as regras do firewall, de modo a encontrar e eliminar essas inconsis-
tências, além de procurar simplificar as regras para facilitar uma visualização futura. A ideia
final é minimizar ao máximo a quantidade de regras. Essa redução não só tornará o seu
firewall mais simples, como mais rápido, visto que terá menos regras para processar.
11 Documentar as regras.
Segurança de Redes e Sistemas
188
O Nmap é uma ferramenta simples e prática para validar regras de firewall, verificar as
portas abertas de um servidor ou até avaliar os serviços em uma rede inteira. Suporta
diversos tipos de varredura: S (SYN), T (Connect), A (ACK), W (Window), M (Maimon), U (UDP),
N (Null), F (FIN), X (Xmas), I (Idle), Y (SCTP), O (IP protocol)
Neste exemplo, executamos o Nmap com as opções padrão e passamos como parâmetro a rede
192.168.1.0/24, que corresponde ao endereço classe C 192.168.1.0 (máscara 255.255.255.0). Note
que o Nmap apresenta apenas os endereços IP que estão disponíveis, mostrando as portas
abertas em cada servidor.
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.
Um exercício interessante é realizar scans utilizando diversos tipos diferentes e verificar o tipo
de registro que aparece no servidor remoto. A seguir outro exemplo do Nmap, agora utili-
zando a opção –O, que procura adivinhar a versão do sistema operacional do sistema-destino:
189
Verifique que o Nmap detectou o sistema operacional como Linux, porém o MAC Address se
refere à empresa TP-Link. Com um pouco de investigação, chegaremos à conclusão de que se
trata de um modem ADSL, da marca TP-Link, que provavelmente executa uma versão do sistema
operacional Linux. Um Telnet na porta 23, que está aberta, já nos fornece uma pista importante:
Trying 192.168.1.1...
Connected to 192.168.1.1.
Login:
não temos nenhum serviço em execução nesta porta. Com o Netcat, podemos registrar um
serviço nesta porta:
root# nc -l 3500
Em outra estação, podemos realizar uma conexão com o servidor, na porta 3500:
190
Dessa forma, caso o tráfego esteja permitido, tudo o que escrevermos na estação será
apresentado no servidor. Por fim, temos a ferramenta Hping2, que permite enviar pacotes
arbitrários para uma máquina remota. No exemplo abaixo, vamos utilizar o Hping2 para
enviar pacotes TCP para a porta 443 do servidor 192.168.1.1, com a flag SYN habilitada:
191
len=46 ip=192.168.1.1 ttl=64 DF id=3663 tos=0 iplen=40
Por fim, vamos enviar pacotes UDP na porta 53, alterando o endereço de origem para o
endereço 192.168.1.150:
^C
w
Exercício de fixação 2 e
Todas as ferramentas
Arquitetura do firewall indicadas podem ser
instaladas a partir do
Que tópicos devem ser verificados na auditoria da arquitetura do firewall? apt-get do Debian ou
baixadas do site de
cada ferramenta
(Netcat, Hping, Nmap).
Algumas delas também
possuem versões para
Explique como devem ser realizadas as regras do firewall. O que deve ser observado?
Alertas e registros
Registros e alertas são itens importantes em uma política de segurança; porém, se eles não
Segurança de Redes e Sistemas
são vistos periodicamente pela equipe responsável, de nada adiantam. Firewalls com muitos
registros sendo gerados podem ser facilmente esquecidos pelo administrador, que fica
perdido entre tantos dados.
Alertas podem ser configurados para envio por e-mail ou SMS, de modo que possam ser mais
facilmente vistos pelo administrador. Revisar os registros periodicamente pode ser útil para
detectar tentativas de ataqu, e permitir aos responsáveis a tomada de ações proativas.
192
Algumas recomendações que devem ser observadas pelo auditor: q
11 Os registros de log estão precisos? Estão sendo gerados mais registros do que
o necessário?
11 Existe procedimento para analisar os alertas? Eles são enviados para um local
de rápida verificação?
11 O horário do firewall está correto? Ele está sendo sincronizado com uma fonte
de tempo confiável?
Por fim, verificamos que a tarefa de auditoria não é uma tarefa simples. Apesar de existirem
ferramentas que auxiliam o auditor em algumas questões, elas não resolvem todos os pro-
blemas. Bom senso e conhecimento ainda são fundamentais. Durante as atividades práticas,
vamos exercitar o uso do Nessu, e teremos oportunidade de utilizar as demais ferramentas
apresentadas neste capítulo.
193
Segurança de Redes e Sistemas
194
Roteiro de Atividades 8
Atividade 1 – Auditoria com Nessus
Instale e configure o Nessus, conforme apresentado na parte teórica. Realize uma auditoria
a partir da estação cliente, objetivando analisar os dois servidores presentes na rede de
servidores. Oriente o Nessus a analisar a rede inteira.
Passo 3 Faça o registro no site do projeto com o perfil de licença HomeFeed. Esse perfil
é o suficiente para o propósito desta atividade. Para fazer o registro, acesse:
http://www.nessus.org/register/
Cadastre um e-mail válido, para o qual será enviado o número da licença.
Passo 6 Com o console aberto, crie uma nova Policy, com o nome “padrao”.
Marque todas as opções de Port Scanners disponíveis.
Em Credentials, aceite as configurações padrão.
Habilite todos os filtros, clicando no botão Enable All. No restante das opções,
aceite os valores padrão.
Passo 8 Analise o relatório gerado pelo Nessus no menu Reports. Foi possível encon-
trar os hosts da rede DMZ? Quais serviços foram encontrados? Existe alguma
falha que possa comprometer a segurança dos sistemas?
195
Atividade 2 – Auditoria sem filtros de pacotes
Agora retire todas as regras do firewall e refaça a auditoria com uso no Nessus a partir da
estação cliente, objetivando os dois servidores presentes na rede DMZ. Oriente o Nessus
para analisar apenas os dois endereços IPs, para agilizar o processo.
Passo 1 Desabilite todas as regras no firewall do host FWGW1. Pode ser utilizado o
seguinte comando:
# iptables-restore < /etc/iptables.down.rules
Passo 3 Com o console aberta, crie uma nova Policy, com o nome “VerificaIDS”. Marque
as opções de Port Scanners, TCP Scan e SYN Scan, escolha Port Scan Range
80,443. Em Credentials, aceite as configurações padrão. Habilite apenas os
filtros relacionados a servidores web, clicando no botão Disable All e habili-
tando apenas as famílias de regras CGI abuses e Web Servers. No restante das
opções, aceite os valores padrão.
Passo 4 Abra uma sessão Shell no host FWGW1 e deixe listando todos alertas do
Snort, com o comando:
# tail –f /var/log/snort/alert
Passo 6 Verifique os logs do Snort. Foi registrada alguma tentativa de explorar falhas
em serviços web?
uma ferramenta de IDS. Quais detalhes você analisaria? Procure verificar as diferenças entre
esta auditoria e o exemplo do firewall.
196
Atividade 5 – Utilizando o Nikto
A ferramenta Nikto é um scanner de vulnerabilidades especializado, ou seja, desenvolvido
para análise um determinado serviço. Nesta atividade pede-se para executar o Nessus e
o Nikto contra o servidor Windows 2008 e comparar o relatório gerado. Os passos abaixo
explicam como instalar e executar o Nikto.
Passo 3 Agora vamos disparar o Nikto contra o servidor Windows 2008 que possui
o serviço HTTP instalado:
# ./nikto.pl -h 172.16.G.20 -o /tmp/relatorio.txt
Acesse o arquivo /tmp/relatorio.txt e veja as vulnerabi-
lidades encontradas. Pesquise no Google sobre algumas das
vulnerabilidades indicadas e como você poderia corrigi-las.
Nesta atividade, iremos executar o Xprobe contra as máquinas Linux e Windows Server e
observa o resultado gerado.
197
Atividade 7 – Utilizando o THC-Amap
O THC-Amap é uma ferramenta para a identificação remota de serviços de rede. Seu modo
de funcionamento busca identificar o serviço em uma máquina-alvo pelo banner do serviço
e não apenas pelo número da porta.
l
# cd amap-5.2
# ./configure
# make Saiba mais
# make install Para mais informações
sobre o Amap, acesse:
Passo 2 Agora execute o Amap. Nesta tentativa, iremos tentar identificar o serviço na http://www.aldeid.com/
máquina-alvo que está executando na porta 22. wiki/Thc-amap
# amap –bqv 172.16.G.1 22
Segurança de Redes e Sistemas
198
9
Configuração segura de
servidores Windows
objetivos
conceitos
Técnicas de proteção em profundidade, como firewalls de perímetro e proxy, IDS e IPS.
Introdução
Prevenir acesso não autorizado a dados sensíveis é essencial em qualquer ambiente em que
múltiplos usuários têm acesso aos recursos físicos ou via rede. Um sistema operacional deve
ser configurado de forma segura antes de ser exposto em uma rede pública não controlada,
como o caso da internet. Este processo de reforçar a segurança é chamado de hardening.
Veremos neste capítulo técnicas e ferramentas utilizadas em ambientes Microsoft Windows
que auxiliam nestas atividades.
Exercício de nivelamento 1 e
Configuração segura de servidores Windows
O que você entende por hardening?
199
Necessidade de configuração de um bastion host
Em um ambiente Microsoft Windows, publicado na internet, é vital utilizar o conceito de
bastion host para garantir a integridade do sistema. Existem inúmeras falhas de segurança
documentadas que permitem ao invasor acesso total à máquina-alv, quando esta é disponi-
bilizada em uma rede pública e com a instalação padrão do sistema operacional.
Atualmente, esse valor é inferior a 10 minutos, de modo que uma máquina conectada à internet
por um tempo superior provavelmente já está infectada por algum worm ou foi invadida.
w
O Internet Storm
O bastion host será uma máquina exposta na rede pública disponibilizando recursos e Center (ISC) publica
serviços. Por ser uma máquina com serviços públicos, essa será a primeira barreira a ser uma estatística sobre o
tempo em que uma
vencida por um invasor para tentar obter acesso aos sistemas da rede privada.
q
máquina sem nenhuma
correção de segurança
Existem várias implementações possíveis de bastion hosts, de acordo com os serviços
“sobrevive” na internet.
que ele oferece. Alguns exemplos: http://www.dshield.org/
survivaltime.html
11 Firewall gateways.
11 Servidores web.
11 Servidores FTP.
11 Transportadores de e-mail.
Exercício de fixação 1 e
Bastion host
O que é um bastion host? Qual a sua finalidade?
Check-list
É recomendado planejar a instalação e escrever um check-list das atividades a serem q
realizadas e auditadas nos servidores públicos:
200
A seguir, veremos com mais detalhes as configurações de segurança recomendadas para
servidores que utilizam o sistema operacional Microsoft Windows.
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.
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
Para listar as portas que estão aguardando conexão de rede ou as conexões estabelecidas,
podemos usar uma ferramenta do próprio sistema operacional, neste caso com o comando
netstat, como mostra a próxima figura.
201
Figura 9.1
Conexões de rede.
A suíte de ferramentas SYSInternals oferece outra ferramenta para listar com mais detalhes
as conexões de rede estabelecidas e seus respectivos processos, além de também listar as
portas que estão aguardando por conexões de rede. Segue abaixo exemplo de listagem de
portas da ferramenta TCPview.
Segurança de Redes e Sistemas
Figura 9.2
Conexões de rede
com TCPView.
202
Através do netstat e do TCPview, podemos verificar as portas que estão abertas no servidor,
de modo a localizar e desabilitar o serviço em questão ou filtrar a porta. Outra forma de
verificar as portas abertas é utilizando o Nmap. Desabilitar serviços em sistemas Windows é
um processo que demanda certa paciência. Caso um serviço essencial seja desabilitado,
algum comportamento inesperado pode acontecer. Recomenda-se que seja utilizada uma
máquina de testes, para se criar familiaridade com o processo, antes de desabilitar serviços
em servidores em produção. Mais à frente, serão vistos com mais detalhes o modo de
desabilitar serviços no Windows.
Figura 9.3
Windows Firewall
para Windows
Server 2008.
1. Clique na opção desejada de acordo com a necessidade de criar uma regra de entrada
(pacotes que entram no servidor) ou regra de saída (pacotes que saem do servidor).
203
3. Selecione que deseja criar uma regra para uma porta.
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.
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.
Uma baseline consiste em uma referência inicial de segurança, um ponto inicial, a partir do qual
se evolui para uma configuração segura. Os servidores Windows possuem alguns perfis padrão
de segurança, de acordo com o papel que aquele servidor irá desempenhar. Mais adiante, serão
vistas algumas ferramentas que permitem a criação de uma baseline e a posterior auditoria
para verificar se a configuração atual atende ao mínimo necessário de segurança.
Além da baseline, é preciso criar um mapa do tempo (timeline) dos servidores da rede,
registrando a data de instalação do sistema operacional, das principais correções e da ins-
talação de aplicativos. Essa linha do tempo será útil para manter atualizado o inventário dos
Segurança de Redes e Sistemas
204
11 Liberar exceções nos filtros de pacotes nas interfaces de rede que forem necessárias.
Figura 9.4
Regras de configu-
ração do Windows
2008 Server.
205
Através da ferramenta, podemos iniciar, encerrar e desabilitar serviços. Para iniciar e encerrar Figura 9.5
um serviço, basta clicar em cima do serviço e escolher uma das opções, que se assemelham Serviços do
Windows XP.
aos controles de um programa tocador de música. Note que alguns serviços não podem ser
encerrados, pois são serviços essenciais para o funcionamento do sistema operacional. Para
desabilitar um serviço, basta clicar no serviço desejado e mudar o startup type para disabled.
Uma tarefa importante para a configuração segura de servidores consiste em saber a porta
TCP ou UDP associada a um determinado serviço, de modo que possamos desabilitar os ser-
viços desnecessários que abrem portas de rede no servidor. Essa tarefa pode ser realizada
utilizando alguns utilitários disponíveis na internet. Abaixo, um exemplo de como podemos
descobrir um serviço que corresponda a uma porta específica.
1. Através do netstat –ano ou do TCPview, verificamos uma porta da qual desejamos saber o
serviço correspondente. No exemplo abaixo, a porta UDP 1900, que corresponde ao pro-
cesso de número 1216 (svchost.exe). Geralmente um serviço é executado por esse programa.
Segurança de Redes e Sistemas
206
Figura 9.6
Serviços
associados ao
processo
svchost.exe.
4. Na Wikipedia (List of TCP and UDP port numbers) há uma lista de portas conhecidas e os
processos correspondentes, onde podemos confirmar que a porta 1900 UDP corresponde
w de fato ao serviço SSDP, que possui relação com a descoberta de dispositivos UPnP.
Exercício de fixação 3 e
O Process Explorer
pode ser encontrado
no endereço: Baseline
http://technet.
microsoft.com/en-us/ Explique o que é uma linha base de segurança.
sysinternals/bb896653
207
um Service Pack. Porém, ferramentas terceiras normalmente trazem informações mais deta- l
lhadas e com relatórios úteis na gestão dos servidores. Vamos ver exemplos de ferramentas
Saiba mais
úteis para a análise de segurança de servidores Windows.
Para maisores detalhes
WMIC dos comandos dispo-
níveis, consulte a ajuda
on-line ou através do
Windows Management Instrumentation Console (WMIC) é também conhecida como “canivete
próprio aplicativo com
suíço do Windows”. Essa ferramenta é executada em linha de comando e pode ser executada o comando: wmic /?
no servidor local ou remoto pela rede de dados. Essa ferramenta está disponível em todas as
versões do Windows a partir do Windows NT.
SYSInternals
A suíte de ferramentas desenvolvidas inicialmente por Mark Russinavich e Bryce Cogswell
oferece a possibilidade de uma verificação mais detalhada do funcionamento do sistema
operacional. As ferramentas podem ser baixadas gratuitamente do site da Microsoft:
http://technet.microsoft.com/en-us/sysinternals/
208
Algumas já foram apresentadas, como o TCPview e o Process Explorer.
209
WSUS
Windows Server Update Services (WSUS) é uma ferramenta da Microsoft que auxilia no
processo de atualizações dos sistemas e aplicativos Microsoft. É um serviço que pode ser
executado em versões do Windows Server 2000, 2003 e 2008. Esse serviço é responsável
por baixar as atualizações dos servidores da Microsoft e distribuí-las para as estações de
trabalho e servidores da rede. Essa distribuição pode ser realizada automaticamente de
forma pré-aprovada pelo administrador do sistema ou com aprovações manuais para cada
atualização, em casos mais críticos.
Figura 9.10
MBSA Tela inicial do WSUS.
210
Figura 9.11 Além de verificar a instalação de correções de segurança, o MBSA também verifica falhas
Microsoft Baseline comuns na configuração dos servidores, como o serviço de atualização desligado, contas de
Security Analyzer.
usuário que nunca expiram, contas sem senhas, configurações com fragilidade de segurança
do Internet Explorer, entre outras. O MBSA é gratuito para usuários Windows.
q
Capítulo 9 - Configuração segura de servidores Windows
Recursos presentes na ferramenta:
11 Customização de baselines
Suporta Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Hyper-V,
Windows 7, Windows Vista, Windows XP, BitLocker Drive Encryption, Windows Internet
Explorer 8, Microsoft Office 2010 e Microsoft Office 2007 SP2.
211
A figura a seguir mostra o console principal da ferramenta:
Figura 9.12
Microsoft Security
Compliance Manager.
w
Ele requer o .NET runtime e o SQL Server Express. Os seguintes passos são necessários para
a instalação da ferramenta:
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.
Segurança de Redes e Sistemas
212
Figura 9.13
Microsoft Secu-
rity Compliance
Manager.
Baseline Library q
11 Lista todas as baselines numa estrutura hierárquica.
11 Ao clicar em uma baseline com o botão direito, um menu apresenta alguns comandos
que podem ser aplicados.
Actions
Vamos agora imaginar que queremos criar uma baseline para o Windows 7. Ao iniciar o
MSCM, vemos no lado esquerdo o painel de bibliotecas de baseline. Dentro da categoria
“Windows 7”, vamos escolher uma baseline que se adeque às nossas necessidades. Neste
exemplo, usaremos o Win7-SSLF-Desktop 1.0. Ao clicar na baseline no painel central, vemos
uma série de informações.
Agora, podemos verificar que a baseline escolhida se refere a uma política para estações de Capítulo 9 - Configuração segura de servidores Windows
trabalho (desktop). A sigla SSLF se refere a “Segurança Especializada – Funcionalidade Limi-
tada”, que indica que a política correspondente é bastante restritiva. Segundo a descrição,
essa política só é aplicável em organizações que possuam altos padrões de segurança,
onde ela é mais importante que a funcionalidade das aplicações. Ela ainda assume que o
ambiente utiliza o Active Directory e que a comunicação só é feita com computadores com a
versão mais atual do sistema Windows e com as atualizações mais recentes.
Na parte superior da janela, vemos uma aba Documents, que nos fornece informações adicionais
sobre a segurança do sistema operacional em questão. No exemplo, o documento Windows 7
Security Guide.docx oferece um guia completo sobre a segurança desse sistema operacional.
A partir de uma baseline padrão, exporta-se para formatos que podem ser aplicados em
computadores, como GPO, DCM e SCAP. Para customizar uma baseline, porém, temos de
213
criar uma cópia, pois as da Microsoft não são editáveis. No painel do lado direito, encon-
tramos a opção Duplicate, que permite duplicar uma baseline, que aparecerá na árvore do
lado esquerdo da janela, na parte superior.
Figura 9.14
Exemplo de
duplicação de
baseline.
A partir dessa cópia, podemos analisar cada parâmetro de configuração e alterá-lo, criando uma
nova baseline personalizada. No exemplo, ao clicar em “Power management/sleep settings” e
na aba Definitions abaixo, podemos habilitar (enable) e desabilitar (disable) esse item específico,
que corresponde à exigência de senha quando o computador sair do modo de espera.
Ao finalizar a configuração desejada, a opção “Create GPO Backup” permite criar um Group
Policy Object (GPO), que pode ser aplicado em um computador específico (ou em um
conjunto de computadores), utilizando o Active Directory ou o Local Policy Tool (LPT), que
acompanha a ferramenta. Opcionalmente podemos exportar a configuração no formato
Desired Configuration Management (DCM), de modo a utilizar o Configuration Manager para
monitorar os computadores no ambiente, verificando se estão de acordo com as baselines
definidas. Por se tratar de um produto comercial, o System Center Configuration Manager
não será detalhado neste capítulo.
Exercício de fixação 4 e
Microsoft Security Compliance Manager
Explique como funciona o Microsoft Security Compliance Manager?
11 NTFS.
Por fim, porém não menos importante, um sistema seguro deve utilizar um sistema de
arquivos que suporte a criação de permissões, de modo a limitar o acesso dos usuários, limi-
tando um potencial estrago em caso de comprometimento de uma conta de usuário, além de
Segurança de Redes e Sistemas
214
Figura 9.15
Permissões de
um determinado
arquivo.
215
11 Restringir opções do Active Desktop.
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 har-
dware da estação e criação de modelos com o recurso “Starter GPO”. Quando falamos de
GPO, estamos nos referindo a Diretivas de Grupo. Uma diretiva de grupo é um conjunto de
regras que podemos utilizar a fim de facilitar o gerenciamento, configuração e segurança de
computadores e usuários.
Podemos atribuir diretivas em uma GPO. Essa GPO com essas regras podem ser atribuídas a um:
11 Site: é o mais alto nível e normalmente atribuído a GPOs mais genéricas, válidas para
qualquer usuário/computador/domínio nesse site.
11 Domínio: vem em segundo nível. Configurações feitas nesse nível afetaram usuários/
computadores dentro do domínio.
11 OU: o que se aplica nas OUs afetarão todos os usuários/computadores dentro dela.
Para criar uma GPO, basta clicar com o botão direito em uma das opções acima, clicar em
Propriedades e na aba Group Policy.
Segurança de Redes e Sistemas
216
Figura 9.16
Criando uma GPO.
Exercício de fixação 5 e
Group Policy Objects (GPO)
Explique o que são Group Policy Objects (GPO).
22 Permite aplicar políticas que sempre estarão ativas nas estações de trabalho,
independente do usuário logado.
11 User Configuration
Se houver algum conflito entre as configurações dos computadores e dos usuários, as confi-
gurações dos usuários vão prevalecer.
Opções de GPO
11 Software Settings – nessa categoria são configurados, por exemplo, a distribuição de
aplicações para o usuário.
217
11 Administrative templates – modelos utilizados para configurar as definições de políticas
de segurança de usuários e computadores, essas opções acessam diretamente as chaves
de registro HKEY_LOCAL_MACHINE e HKEY_CURRENT_USER.
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
restritiva e personalizada. Por padrão, as GPOs podem ser sobrepostas caso existam
políticas habilitadas em um site e em um domínio, seguindo sempre a precedência da mais
próxima. Por exemplo, podemos configurar em nível de site uma GPO para que os usuários
troquem a senha a cada 30 dias. Porém, no domínio foi configurada uma GPO desativando
essa política. Nesse caso, a política vigente será a do domínio.
GPO1
Site
GPO2
Domínio
Segurança de Redes e Sistemas
GPO3
ou
Figura 9.17
Heranças de GPO.
218
11 Force Policy Inheritance (Forçar Herança de Políticas): especifica que você não permitirá
que níveis filhos possam sobrescrever suas configurações de GPO. Por exemplo, se o
administrador de rede da empresa deseja criar uma GPO que force os usuários a utili-
zarem uma senha de nove dígitos e não deseja que os administradores do domínio nem
das OUs dos domínios alterem essa política, ele pode criar a GPO, aplicar para todo o site
e marcar a opção de Force Policy Inheritance.
11 Política de senhas.
11 Auditoria de contas.
11 Direitos de usuários.
Capítulo 9 - Roteiro de Atividades
11 Opções de segurança.
Diretiva de senhas
Sempre é bom lembrar que uma boa política de senhas é fundamental para uma organi-
zação, mas, antes de mais nada, é um controle de segurança, e antes de defini-lo o adminis-
trador precisa entender exatamente quais os riscos envolvidos em se definir como o usuário
vai trabalhar com suas senhas, o valor do que está sendo protegido com essa senha e os
demais controles de acesso que existem adicionalmente além da própria senha.
219
A organização deve estar preocupada não somente com ataques de força bruta ou por dicio-
nário, mas também evitar que o usuário esqueça a senha e tenha de redefini-la diversas
vezes. Porém, uma fraca política de autenticação invalida todas as outras barreiras imple-
mentadas, tais como firewalls, criptografia etc. Para se defender contra essas vulnerabili-
dades, faz-se necessário uma correta aplicação de diretivas de senha utilizando o console
Diretiva de segurança local ou do domínio, se o servidor for um controlador de domínio.
Opções:
11 Armazenar senhas usando criptografia reversível: diretiva que oferece suporte a apli-
cativos que necessitam armazenar a senha original do usuário, essa opção só deve ser
utilizada se realmente for necessário.
Diretiva de auditoria
A auditoria de segurança é uma das ferramentas mais poderosas para ajudar a manter a
segurança do sistema. A auditoria deve identificar ataques, bem sucedidos ou não, que
representam algum tipo de ameaça a sua rede ou ataques contra os recursos determinados
em sua avaliação de riscos.
220
Principais opções:
22 Perda de eventos que passaram por auditoria, devido a falha no sistema de auditoria.
221
Atribuição de direitos de usuários
Principais opções:
11 Acesso a este computador pela rede: esse direito de usuário determina quais usuários e
grupos têm permissão para se conectar com o computador pela rede.
11 Permitir logon pelos serviços de terminal: essa configuração de segurança determina quais
usuários ou grupos têm permissão para fazer logon como um cliente de serviços de terminal.
11 Alterar a hora do sistema: permite informar quais usuários têm permissão para alterar a
data e a hora do computador.
11 Fazer backup de arquivos e pastas: direito do usuário que determina os usuários que
podem ignorar permissões de diretório, registro e outros objetos persistentes, com a
Segurança de Redes e Sistemas
Opções de segurança
Além das políticas e controles de segurança constantes nas diretivas locais, podemos des-
tacar também o conjunto de opções de segurança. Essas opções complementam as políticas
de segurança local.
222
Essas opções são divididas em:
Auditoria. Desligamento.
Criptografia.
223
Segurança de Redes e Sistemas
224
Roteiro de Atividades 9
Atividade 1 – Configuração segura de servidor
Utilizando as técnicas vistas na parte teórica, modifique a configuração do servidor Windows
2008 de modo a torná-lo mais seguro, atendendo aos itens descritos no texto.
Para nos auxiliar nesta tarefa, vamos utilizar a ferramenta da MBSA (Microsoft Microsoft
Baseline Security Analyser).
Passo 2 Clique no link da última versão do MBSA para ser redirecionado ao portal
da ferramenta.
Passo 3 Faça o download do programa na tradução de língua em que você se sinta mais
familiarizado e na plataforma de sua máquina, por exemplo, 32 ou 64 bits.
Passo 5 Faça o Scan no host, aceitando as configurações padrões para o Scan. Após
completar a varredura, verifique o relatório final com as sugestões de ações.
Avalie se as sugestões são pertinentes e se estão em conformidade com os
Capítulo 9 - Roteiro de Atividades
225
Passo 6 Aplique as correções que você julgar necessárias, como:
11Atualização do sistema operacional.
11O firewall do Windows.
11Compartilhamentos habilitados.
11Registros de logs mínimos.
11Serviços não necessários.
Os serviços abaixo podem ser desativados sem comprometer a segurança
do sistema:
11Agendador de Tarefas (schedule).
11Ajuda e Suporte (helpsvc).
11Áudio do Windows (AudioSrv).
11Configuração sem fio (WZCSVC).
11Registro Remoto (RemoteRegistry).
11Spooler de Impressão (spooler).
11Microsoft TAPI Service (TapiSrv).
11Messenger (messenger).
Atividade 2 – Auditoria
Execute uma auditoria no servidor Windows 2008 com o Nessus e compare o resultado com
o da auditoria feita na Atividade 1 do Roteiro de Atividades 8. Houve aumento do nível de
segurança? Analise o resultado da auditoria e tente realizar mais modificações na configu-
ração do servidor para torná-lo ainda mais seguro
Segurança de Redes e Sistemas
226
Atividade 3 – Envio de log para servidor remoto
Logs são arquivos de texto gerados pelo sistema e que podem ajudar a descobrir problemas
na execução de softwares, problemas de hardware e incidentes de segurança. Do ponto de
vista da segurança, é muito importante deixar esses arquivos seguros, intactos, inalteráveis
e de acesso restrito. Uma forma de proteger os logs de um equipamento é enviá-los para um
servidor central com acesso restrito. Tal funcionalidade irá permitir, inclusive, a correlação
de logs e eventos facilitando a identificação de possíveis atacantes.
Nesta atividade iremos utilizar o binário Snare para enviar os logs do servidor Windows
2008 para um servidor Linux no formato SysLog.
Para permitir o envio dos logs para o servidor Syslog centralizado, vamos
instalar o software Snare, cujo instalador pode ser encontrado em:
http://www.intersectalliance.com/projects/SnareWindows/
A instalação deve utilizar os padrões fornecidos pelo instalador, com exceção da
opção sobre a interface de configuração remota do SNARE. Nessa tela, marque a
opção “Enable Web Access” e, em password, digite “rnpesr”.
Agora vamos configurar o Snare. Acesse o endereço http://localhost:6161
no campo usuário digite ”snare“ e a senha é ”rnpesr”. Clique em “Network
Configuration” e em “Destination Snare Server address”. Altere para
172.16.G.10 e em “Destination Port” altere para 514. Clique em “Change
Configuration”.
Agora clique em “Apply the Latest Audit Configuration” e clique no botão
“Reload Settings”.
Para testar, acesse via SSH o servidor 172.16.G.10 e realize um logon/logoff no
Capítulo 9 - Roteiro de Atividades
227
Atividade 4 – Controle de acesso ao sistema operacional
O objetivo dessa atividade é realizar a instalação de um software chamado SuRun. A ideia
por trás do SuRun é semelhante ao que acontece no Linux com o sudo, ou seja, não permitir
que um usuário administrador possa se autenticar remotamente e, a partir de uma lista de
usuários válidos, permitir que eles possam executar binários como administrador.
Passo 2 Agora, vamos configurar o acesso remoto ao servidor Windows 2008 utili-
zando o serviço de Terminal. Para isso, acesse o painel de controle e clique em
System. Selecione “Advanced System Settings” e clique na aba “Remote”.
Habilite a opção “Allow connections from computers running any version of
Remote Desktop (less secure)”.
Utilizando o snap-in “Computer Management”, acrescente o usuário supor-
teloc dentro do grupo “Remote Desktop Users”.
228
10
Configuração segura de
servidores Linux
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 desmilitari-
zada (DMZ), os servidores públicos passam a ser o elo mais fraco da rede na maioria dos casos,
pois são eles que executam serviços públicos que podem ser explorados por atacantes através
de vulnerabilidades ou de uma configuração incorreta. O comprometimento de um servidor
na DMZ pode permitir a abertura de conexões para a rede interna, dependendo da política de
segurança adotada no perímetro. Apesar de ser algo considerado no momento de implantação
do perímetro, em alguns casos não é possível realizar um isolamento completo. Como exemplo,
Dessa forma, é imperativo que haja um investimento significativo na proteção dos servidores
Hardening presentes na DMZ. Essa proteção de servidores é muitas vezes chamada de hardening, e
Processo de mudança envolve tanto configurações seguras quanto a instalação de software que aumente a segu-
na configuração de um rança do servidor. No capítulo 9, vimos como configurar um servidor seguro utilizando o
servidor, com o intuito
de torná-lo mais seguro. sistema operacional Microsoft Windows Server 2008. Neste capítulo, veremos como confi-
gurar um servidor utilizando o sistema operacional Linux. Durante a parte teórica, as informa-
ções apresentadas, na medida do possível, serão genéricas, de modo que a configuração seja
independente da distribuição Linux utilizada. Nas atividades práticas, será utilizada a distri-
buição Debian, pois é open source e bastante utilizada em servidores.
No decorrer deste capítulo, veremos uma série de técnicas para a configuração segura de
um servidor Linux, desde a sua instalação até a publicação do servidor na internet.
229
Exercício de nivelamento 1 e
Configuração segura de servidores Linux
Como que você entende que deve ser feita a configuração segura de servidores Linux?
Instalação do Linux
11 Realizar instalação com o mínimo indispensável q
22 Netinst (Debian).
22 Tecnologias de virtualização.
11 Qualquer árvore de diretórios em que um usuário puder escrever (como /home, /tmp)
deve estar em uma partição separada e usar quotas de disco. Isto reduz o risco de um
usuário encher seu sistema de arquivos e realizar um ataque de negação de serviço.
11 Diretórios de uso comum como /home e /tmp podem ser colocados em partições sepa-
radas e configurados para não permitir a execução de arquivos (atributo noexec).
Na mesma linha, o atributo nosuid ignorará o bit de SUID e vai tratá-lo como um arquivo
normal, impedindo que um script mal configurado seja executado com permissões de
outro usuário. Esses atributos são configurados no arquivo /etc/fstab.
11 Dados estáticos podem ser colocados em uma partição separada, somente como leitura.
Um exemplo seria a partição /etc/, que após a configuração do servidor, poderia ser
Segurança de Redes e Sistemas
É comum administradores utilizarem ferramentas de imagens de disco para criar uma imagem
de um sistema mínimo já instalado, com os recursos básicos para o bom funcionamento de
um servidor. Essa imagem pode tornar-se o padrão para a criação de um novo servidor e o
ponto de partida para a sua configuração. Recursos como NTP para sincronismo de tempo, NTP
SSH para acesso de administração e configurações como fuso horário, senhas de adminis- Network Time Protocol
é o protocolo de
tração e permissões de acesso devem ser consideradas nessa imagem. Uma vez definida
sincronização de tempo
a imagem, esta pode ser usada para futuras instalações, de modo a reduzir o trabalho de na internet.
implantar um novo servidor, além ter uma imagem com uma configuração mínima segura.
230
Virtualização Em tecnologias de virtualização, o uso de imagens pode facilitar e acelerar muito o pro-
Processo de conversão cesso de criação de novos servidores.
de servidores físicos em
servidores virtuais. Os
servidores virtuais têm Desabilitando serviços desnecessários
desempenho menor
que os servidores Tarefa complexa para um iniciante, que requer conhecimento sobre os serviços. q
físicos, porém vários A regra geral é desabilitar todos os serviços desnecessários que abram portas (TCP/UDP)
servidores podem com-
partilhar os mesmos Ferramentas/comandos:
recursos, de modo
11 netstat –an | more (netstat –anp | more)
que um servidor pode
disponibilizar os seus 11 lsof –i <protocolo>:<porta>
recursos ociosos para
outros servidores. 11 ps aux | more
11 man <serviço>
Passos:
11 netstat –an | more: mostra todas as portas abertas no sistema. As portas em estado
LISTEN são portas aguardando conexão. É importante registrar essas portas e poste-
riormente tentar descobrir o processo associado. Em algumas distribuições, o comando
231
tcp 0 0 127.0.0.1:53 0.0.0.0:*
LISTEN 1765/named
11 ps aux | more: lista todos os processos do sistema. Processos em execução que não
fazem parte dos serviços que se quer configurar no servidor devem ser registrados para
serem desabilitados. Alguns serviços podem ser importantes para o sistema, de modo que
desabilitá-los pode causar comportamento inesperado. Caso o aluno seja inexperiente
em Linux ou na distribuição em questão, recomendamos que seja instalado um servidor Runlevel
em laboratório e que sejam feitos experimentos até que seja desabilitado o máximo de Nível de execução que
corresponde a um
serviços e processos, mantendo os serviços que se deseja oferecer em funcionamento.
número que indica o
11 man <serviço>: obtém informações sobre um serviço a partir de suas páginas de manual modo de execução em
que se encontra um
(man pages). Observe que nem todo processo é necessariamente um serviço. Um serviço
sistema operacional
consiste em um ou mais processos, que executam continuamente no servidor com o Unix. Por exemplo, o
intuito de oferecer algum serviço para a máquina ou a rede. runlevel 1 corresponde a
um modo de execução
Para desabilitar um serviço, é necessário remover o link simbólico correspondente no onde só um usuário
diretório referente ao runlevel padrão do sistema. Ele pode ser determinado examinando o pode usar o sistema.
arquivo /etc/inittab, em uma linha como segue:
id:2:initdefault:
No exemplo acima, o runlevel padrão é 2, de forma que os serviços que devem ser desabili-
Segurança de Redes e Sistemas
LinServer:/etc/rc2.d# ls
232
S89cron S99rc.local S99stop-bootlogd
A letra S antes do nome do serviço indica que o serviço será iniciado (start). Para finalizar
o serviço, há a letra K (kill). O número a seguir indica a prioridade. Serviços com menor
número serão iniciados primeiro pelo sistema.
Outra forma de gerenciar serviços é com o comando rcconf. Ele pode ser instalado através
do comando apt-get install rcconf. Após instalado, basta executá-lo para ser apresentado a
um menu bastante prático, onde podemos habilitar e desabilitar os serviços desejados.
Figura 10.1
Tela do rconf.
Como já foi dito, o administrador não deve ter receio de desabilitar os serviços. Caso algum
serviço seja desabilitado e impeça o sistema de funcionar corretamente, ele pode ser
habilitado posteriormente (treine em um laboratório antes). Ao final, uma nova execução
do comando netstat pode confirmar que os serviços desnecessários foram desabilitados. Capítulo 10 - Configuração segura de servidores Linux
Alguns serviços utilizam o serviço inetd (Internet Super Server) e devem ser desabilitados no
arquivo /etc/inetd.conf.
Para mais informações sobre o inetd (ou xinetd em sistemas mais modernos), consulte as
páginas de manual correspondentes com o comando man (ex.: man inetd.conf).
Caso o inetd não seja necessário no seu servidor, ou seja, nenhum serviço esteja configurado
nele, ele pode ser desabilitado.
233
Exercício de fixação 1 e
Desabilitando serviços desnecessários
Por que devemos desabilitar os serviços desnecessários?
Pacotes e programas
Desabilitar os serviços de rede desnecessários reduz a superfície de ataque ao servidor, que
em combinação com regras de filtragem no firewall, proveem uma boa camada de proteção.
Apesar disso, um atacante pode ainda conseguir comprometer um serviço válido e conse-
quentemente obter acesso ao servidor comprometido. Esse acesso pode possibilitar ao
atacante obter acesso de administrador ou ainda comprometer outros servidores na rede.
Para procurar reduzir o que um atacante é capaz de fazer no servidor em caso de compro-
metimento, este deve possuir um conjunto mínimo de pacotes. Em especial, pacotes que
proveem ferramentas para o atacante tentar comprometer outros sistemas. A lista a seguir
sugere alguns pacotes para serem desabilitados.
Deixe para desabilitar pacotes ao final da configuração do servidor, pois você pode pre- q
cisar deles para alguma tarefa administrativa:
11 Ambiente gráfico (X11): devem ser utilizados os ambientes gráficos das estações para
realizar tarefas de configuração.
removidos pacotes temporários que porventura tenham sido instalados para a configuração
do servidor. Paciência, conhecimento e persistência são princípios fundamentais para essa
tarefa. No Debian, o comando tasksel pode ajudar, pois através dele é possível selecionar as
funcionalidades de que o servidor disporá, de modo que automaticamente os pacotes cor-
respondentes são adicionados ou removidos. Abaixo um exemplo de execução do comando.
234
Figura 10.2 Os pacotes podem ser desinstalados através de dois comandos:
Execução do
comando tasksel. apt-get remove <pacote>
dpkg –R <pacote>
Para remover um pacote, necessitamos primeiro saber o seu nome. Para tanto, podemos
usar algumas ferramentas para procurar o pacote desejado. Como exemplo, imagine que
queremos remover o pacote referente ao SSH:
dpkg –l *ssh*
Figura 10.3
Lista de pacotes ins-
talados no sistema.
No exemplo acima, os pacotes marcados com ii estão instalados no sistema. Dessa forma,
podemos remover os pacotes desejados:
dpkg –R openssh-client
dpkg –R openssh-server
235
Configuração segura de serviços
Princípios básicos: q
11 Usuários sem privilégios.
11 Chroot.
Acessos administrativos:
11 Acessos criptografados.
Chroot
Esse é um recurso presente em sistemas Unix, onde um determinado processo do sistema
enxerga apenas uma sub-árvore do sistema operacional. Dessa forma, o processo não será
capaz de ler, gravar ou executar arquivos fora desta sub-árvore. Assim como o usuário sem
privilégios, o chroot é utilizado por diversos serviços modernos. Normalmente a própria dis-
tribuição possui pacotes que instalam o serviço com o recurso. Configurar um serviço para
rodar com esse recurso pode ser uma tarefa complicada, pois deverão ser previstos todos
os recursos que o serviço necessita utilizar, de modo que eles devem estar em um diretório
acessível, dentro da árvore ao qual o processo foi “enjaulado”. No caso do Debian, podemos
procurar se existe versão chroot para o serviço que vamos instalar, como no exemplo abaixo
para um servidor web (Apache):
236
recurso que seja indesejado. Essa tarefa também não é simples e depende da experiência
do administrador em um determinado serviço. Quanto menos recursos o serviço oferecer,
mais seguro ele será. Um exemplo de funcionalidade desnecessária seria um servidor www
Apache instalado com suporte a PHP. Caso não existam scripts em PHP sendo utilizados,
eles podem perfeitamente ser desabilitados.
Exercício de fixação 2 e
Configuração segura de serviços
Quais os princípios básicos da configuração segura de serviços?
Acessos administrativos
É comum em servidores existir um acesso administrativo para que o administrador não
necessite se deslocar fisicamente até o equipamento para obter acesso. Normalmente se
utiliza uma emulação de terminal remoto, como o Secure Shell (SSH), ou um console web,
como o webmin. Apesar de ser um recurso prático, deve ser usado com muita cautela, pois
pode permitir a um atacante obter acesso privilegiado ao servidor. Alguns cuidados básicos
devem ser tomados ao tratar de acessos administrativos:
11 Utilizar sempre acessos criptografados para garantir que os dados não serão intercep-
tados em trânsito na rede. Protocolos como Telnet, RSH, RCP e Xwindows devem ser
substituídos por versões seguras, como SSH. Acessos remotos devem ser realizados
através de recurso VPN com criptografia. Consoles de administração web devem sempre
utilizar o HTTP seguro (HTTPS).
11 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.
237
Figura 10.4
Configuração
de sudo.
Atenção para o parâmetro PASSWD, pois caso seja NOPASSWD, o usuário poderá
executar tarefas como administrador sem a necessidade de entrar com a senha do
seu usuário.
11 Evite que um usuário possa realizar o primeiro login no sistema como root. Tal configu-
ração obriga o usuário a autenticar com um usuário comum e, depois, utilizar o sudo para
se tornar administrador do sistema. Para ativar esse recurso, basta apagar o conteúdo do
arquivo /etc/securetty. Observe que alguns sistemas não utilizam o PAM para autenticação
(ex.: OpenSSH), assim será necessário verificar se essa opção está disponível na aplicação.
11 Não permita que qualquer usuário possa se tornar root utilizando o sudo. O sistema de
autenticação do Linux (PAM) permite que você crie um grupo especial e que somente
membros desse grupo possam se tornar root. Essa configuração vai impedir que um
usuário comum, mesmo sabendo a senha do root, possa se promover como root do
sistema. Para evitar esse comportamento, você deverá criar um grupo chamado wheel
(# groupadd wheel) e modificar o arquivo /etc/pam.d/su (inserindo no final do arquivo a linha
“auth required pam_wheel.so group=wheel”), de forma a permitir que apenas os membros
desse grupo possam se tornar root do sistema. Não se esqueça de colocar um usuário como
membro do grupo wheel (# usermod –G wheel usuario) antes de realizar o logoff.
11 Proteja o sistema de inicialização do Linux (GRUB) com senha. Sem essa proteção, um ata-
cante que tenha acesso físico à máquina poderá reiniciar o sistema como root utilizando
Segurança de Redes e Sistemas
um modo conhecido como Single User Mode. Para desativar essa opção, edite o arquivo
/boot/grub/menu.lst e insira no final a linha “password mudeme”.
238
Ferramentas de segurança de servidores
Existe uma série de ferramentas que podem aumentar a segurança de um servidor.
As mais comuns são os HIDS, que foram tratados no capítulo 5. Existem ainda ferramentas
que realizam uma série de mudanças no sistema, com o intuito de torná-lo mais seguro.
Dentre estas, podemos destacar as ferramentas Bastille Linux e Security Enhanced Linux,
disponíveis na internet e gratuitas. Essas ferramentas não serão tratadas neste curso, por
serem ferramentas avançadas. Porém, se o aluno tiver interesse, existem diversos guias na
internet sobre como instalar essas ferramentas.
Exercício de fixação 3 e
Acessos administrativos
Quais são os cuidados básicos ao tratar de acessos administrativos?
11 Facilitar a remoção.
É fundamental em qualquer sistema operacional a instalação das correções fornecidas pelo fabri-
apt-get update
apt-get upgrade
239
Figura 10.5
Exemplo de uso
do comando
apt-get upgrade.
Veja que, em alguns casos, a quantidade de atualizações é grande. No exemplo acima, serão
baixados 61 MB de atualizações. Caso sua distribuição não seja Debian, verifique na documen-
tação disponível como fazer para atualizar os pacotes. O Debian permite ainda atualizar a
versão instalada, caso uma nova versão seja lançada. Para tal, normalmente usamos o
comando apt-get dist-upgrade, porém existem alguns passos que devem ser executados.
Pacotes compilados w
A página “Chapter 4.
Em alguns casos, a versão que desejamos de um determinado software não está disponível Upgrades from
na distribuição que usamos ou o software em si não foi empacotado pelo distribuidor. previous releases”
detalha o processo de
Nesses casos, é muito comum o administrador baixar o código-fonte do software e compilá-lo
atualização de versão
no próprio servidor. Alguns usuários mais avançados baixam inclusive o núcleo do sistema no Debian.
(kernel), para compilar e instalar um kernel customizado.
Deve-se tomar cuidado com a instalação de software compilado, pois eles podem se con-
fundir com os pacotes instalados no sistema, tornando difícil a desinstalação depois. Deve-se
sempre instalar software compilado em diretórios distintos, como o /usr/local ou /opt. Deve-se
ainda fazer um controle dos arquivos instalados pelo software, para facilitar a desinstalação.
As ferramentas de compilação (gcc, g++, etc.) podem ser usadas por um atacante para com-
pilar seu próprio software malicioso, então devem ser removidas após o uso.
Por fim, a instalação de um kernel customizado é uma tarefa complexa, mas que possui a van-
tagem de gerar um kernel mais leve e com menos recursos (princípio do menor privilégio), de
modo que uma vulnerabilidade encontrada em um recurso do kernel, que não esteja sendo uti-
lizado pelo seu servidor, pode não afetar um kernel customizado sem esse recurso. O problema
é que, a cada atualização do kernel, o administrador terá de recompilá-lo, o que leva tempo e
pode sobrecarregar a administração no caso de um ambiente com diversos servidores.
em ambiente de produção:
240
net.ipv4.conf.all.accept_source_route=0 Não aceite pacotes de fonte roteada. Atacantes
podem usar fontes roteadas para gerar tráfego,
fingindo vir de dentro de sua rede.
Pesquise na internet sobre esse assunto, pois existem inúmeros parâmetros que,
se alterados, podem aumentar o desempenho de uma aplicação. Uma última dica:
procure por “tunning tcp/ip” na web e boa sorte!
241
Segurança de Redes e Sistemas
242
Roteiro de Atividades 10
Atividade 1 – Configuração segura de servidor
Utilizando as técnicas estudadas, vamos modificar algumas configurações do servidor Linux
de modo a torná-lo mais seguro.
Passo 1 Acesse o servidor LinServer-G e configure uma senha para evitar que um usuário
reinicie e o servidor e consiga inicializá-lo em modo single, ou seja, como root
sem precisar inserir a senha de root. Essa configuração deve ser encarada como
obrigatória sempre que o servidor estiver localizado em uma sala insegura.
Executar o grub [LinServer-G:~]# grub e cifrar a senha utilizando o algoritmo
md5. Observe os passos abaixo:
[LinServer-G:~]#/sbin/grub
GRUB version 0.92 (640K lower / 3072K upper memory)
Minimal BASH-like line editing is supported. For the
first word, TAB lists possible
command completions. Anywhere else TAB lists the pos-
sible completions of a device/filename.
grub> md5crypt
Password: ********(Comentário: foi digitado rnpesr no
prompt)
Encrypted: $1$T7/dgdIJ$dJM.n2wZ8RG.oEiIOwJUs.
grub> quit
Agora, insira a linha abaixo no final do arquivo /boot/grub/menu.lst não esque-
cendo de colar a senha gerada no passo anterior:
password --md5 $1$T7/dgdIJ$dJM.n2wZ8RG.oEiIOwJUs.
Passo 2 Verifique todos os serviços que estão sendo inicializados junto com o ser-
vidor. Pesquise na internet o papel de todos os serviços. Atenção aos que
você não conheça. Verifique se é vital para o funcionamento do sistema. Para
essa verificação pode ser utilizado o comando:
# apt-get install rcconf
# rcconf
Isso removerá da inicialização conjunta com o sistema operacional quando
este for iniciado. Para verificar os serviços que estão ativos, podemos utilizar
os comandos:
# netstat –nap
Para mais detalhes sobre uma determinada porta que esteja aguardando por
conexão na rede, podemos utilizar o comando:
Capítulo 10 - Roteiro de Atividades
# lsof –i PROTOCOLO:PORTA -n
Ex.:
LinServer-G:~# lsof -i tcp:22 -n
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1786 root 3u IPv6 4829 TCP *:ssh (LISTEN)
sshd 1786 root 4u IPv4 4831 TCP *:ssh (LISTEN)
sshd 2440 root 3r IPv4 6338 TCP
172.16.1.10:ssh->172.16.1.1:39157 (ESTABLISHED)
LinServer-G:~#
243
Passo 3 Para pacotes que você pesquisou e sabe que não serão necessários ao seu
sistema, a recomendação é remover. Para remover os pacotes desnecessários
sem remover as configurações personalizadas, vamos utilizar o comando:
# apt-get remove nome_do_pacote
Para remover todos os históricos de um pacote, vamos utilizar o comando:
# apt-get purge nome_do_pacote
Para listar todos os pacotes instalados no sistema, podemos utilizar o
comando:
# dpkg –l
É recomendado o uso da ajuda do comando dpkg para verificar os possíveis
parâmetros:
# dpkg –help
244
Passo 6 Por padrão, através do comando su o Linux permite que qualquer usuário
possa se tornar o root do sistema. Para evitar esse comportamento o Linux
implementa um grupo especial chamado wheel e podemos configurar o
arquivo /etc/pam.d/su de forma a permitir que apenas os membros desse
grupo possam se tornar root do sistema.
Crie um usuário chamado “suporteloc”:
[root@localhost ~]# adduser suporteloc
Crie um grupo chamado “wheel”:
[root@localhost ~]# addgroup wheel
Faça com que o usuário “suporteloc” seja membro do grupo “wheel”:
[root@localhost ~]# usermod –G wheel suporteloc
Edite o arquivo /etc/pam.d/su e descomente a linha abaixo.
auth required pam_wheel.so
245
Passo 10 Agora vamos obrigar os usuários locais a utilizar senhas fortes. Para isso
vamos instalar e configurar a biblioteca craklib.
Para instalar, execute:
# apt-get install libpam-cracklib
Edite o arquivo /etc/pam.d/common-password, remova o comentário e
modifique a linha pam_cracklib conforme abaixo:
password required pam_cracklib.so retry=3 minlen=14
difok=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
password sufficient pam_unix.so md5 shadow nullok try_
first_pass use_authtok remember=12
Isso adicionará o cracklib, que vai obrigar todas as novas senhas de usuário a ter:
246
Passo 12 Vamos ativar um mecanismo interessante para fortalecer a política de senhas
locais implementando o processo de expiração para senhas antigas. Em
geral, não é recomendado que o sistema imponha a expiração da senha para
contas de serviço. Isso pode levar a interrupções de um serviço se a conta
de um aplicativo expirar. Uma política corporativa deve reger as alterações
de senha para contas de usuários individuais do sistema e deve expirar as
senhas automaticamente.
Os seguintes arquivos e parâmetros da tabela devem ser usados quando
uma nova conta é criada com o comando useradd. Essas configurações são
registradas para cada conta de usuário no arquivo /etc/shadow. Portanto,
certifique-se de configurar os seguintes parâmetros antes de criar qualquer
usuário contas utilizando o comando useradd:
igual a 99999.
247
Passo 14 As configurações abaixo são recomendadas para o serviço de terminal SSH.
Para alterá-las, vamos editar o arquivo de configuração do servidor Open SSH
/etc/ssh/sshd_config. Observe os comentários para decidir que parâmetros você
vai utilizar. Em nosso treinamento, configure todos os parâmetros abaixo:
#Não permitir o login do usuario root
PermitRootLogin no
#Prevenir que o SSH seja configurado para realizar
forwarding do serviço do X11
AllowTcpForwarding no
X11Forwarding no
# Configurar o Banner padrão
Banner /etc/issue
Reinicie o servidor SSH para aplicar as novas configurações:
# /etc/init.d/ssh restart
Verifique o funcionamento e tente acessar remotamente utilizando o usuário
“root”. A partir desse momento, você está convidado a utilizar sempre o
usuário aluno e/ou suporteloc com permissões básicas. Quando necessitar
realizar alguma atividade administrativa, utilize sudo ou su para obter os
privilégios necessários. Dessa forma, teremos registros do usuário que
realizou determinada atividade com privilégios administrativos.
Passo 15 Desabilite a permissão para que o usuário root acesse o sistema pelo console
físico. Para isso, edite o arquivo de configuração /etc/securetty. Vamos apagar
todo o conteúdo desse arquivo de configuração:
# cp /etc/securetty /etc/securetty.old
# echo “ “ > /etc/securetty
Para testar a configuração, acesse o console via Virtual Box e acesse o ser-
vidor com o usuário root. Se não for possível, acesse com o usuário aluno.
Passo 16 Para evitar que o servidor Linux seja reiniciado quando o seu teclado for
confundido com o de um servidor Windows, desabilite a combinação
Ctrl+Alt+Del editando o arquivo de configuração /etc/inittab e comente ou
apague a seguinte linha:
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Ficando assim:
# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Passo 17 O comando umask serve como uma máscara para ajustar a permissão de
arquivos e diretórios, assim, um umask mal configurado vai atribuir para
novos arquivos criados pelo root permissão de acesso para qualquer usuário.
Recomenda-se alterar o umask de todos os usuários para 177, ajustando o
arquivo /etc/profile.
Caso existam problemas na instalação de novos binários no servidor,
modifique o umask para a opção padrão utilizando o comando umask 022.
Segurança de Redes e Sistemas
248
Passo 18 Personalizar o kernel do Linux com o intuito de torná-lo mais eficaz não é
uma tarefa simples, pois depende muito do cenário e das aplicações que
serão utilizadas. De forma geral, os parâmetros abaixo podem ser inseridos
no final do arquivo /etc/sysctl.conf em diversos cenários sem comprometer o
funcionamento do servidor.
#TCP SYN Cookie Protection
net.ipv4.tcp_max_syn_backlog=1280
net.ipv4.tcp_syncookies = 1
#Disable IP Source Routing
net.ipv4.conf.all.accept_source_route = 0
#Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects=0
# Habilita proteção contra IP spoofing
net.ipv4.conf.all.rp_filter = 1
#Ignoring Broadcasts Request
net.ipv4.icmp_echo_ignore_broadcasts=1
#Bad Error Message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
#Desativa o forward de pacotes. Não deve ser configu-
rado em servidores que assumam serviço de gateway/roteador
net.ipv4.ip_forward = 0
# Habilita log de pacotes spoof. Obs. Esse recurso
gera muitas entradas no log e deve ser avaliado com
cuidado.
net.ipv4.conf.all.log_martians = 0
# Desativar o proxy_arp
net.ipv4.conf.all.proxy_arp=0
# Habilita o execshield
kernel.core_uses_pid = 1
Reinicie o sistema para que as configurações sejam aplicadas.
249
Atividade 2 – Auditoria
Execute uma auditoria no servidor Linux com o Nessus e compare o resultado com a
auditoria que foi feita no capítulo 8. Houve um aumento do nível de segurança? Analise o
resultado da auditoria e tente realizar mais modificações na configuração do servidor para
torná-lo ainda mais seguro.
Passo 4 Analise o novo relatório gerado pelo Nessus no menu Reports. Foi possível
encontrar os hosts da rede DMZ? Que serviços foram encontrados?
Compare esse último relatório gerado com o relatório do capítulo 8.
Quais as principais diferenças?
Durante este treinamento você teve contato com algumas ferramentas que implementam
os serviços acima citados. Pesquise na internet sobre ferramentas que poderiam atender
a essa necessidade, não se esquecendo de contribuir com os demais colegas de turma e o
instrutor sobre suas descobertas.
Para pensar
250
Bibliografia
11 OREBAUGH, Angela. Snort Cookbook. Estados Unidos: Editora O’Reilly Media, 2005.
251
O aluno aprenderá a implementar uma solução com- Segurança
ISBN 978-85-63630-13-1
9 788563 630131