Apresentação Hardening6

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 48

Hardening6

Uma abordagem Empírica


de segurança em IPv6 para
Sistemas Operacionais Linux
Sobre a BandTec

A BandTec é uma faculdade de tecnologia superior


Superior pela qualidade de seus professores. Superior
pelas tecnologias educacionais. Superior pela metodologia
que equilibra teoria e prática de forma exemplar. E superior,
acima de tudo, por crer que está formando não apenas
tecnólogos, mas líderes em suas áreas, o que exige uma
formação técnica e também humanística, ampla e profunda.
Grupo de Estudos

http://linkd.in/

1gq9Ho3 1KRlvw4 1Hi497J 1KRl2dk

[email protected]
Introdução e
conceitos de
Hardening
Introdução

Esta apresentação visa dar uma abordagem empírica ou seja


na prática sobre o que é hardening em IPv6, o que se ganha ao
fazê-lo e exemplos de configurações.
Conceitos Iniciais

Introdução
● Definição de Hardening
● Importância
Controles de Hardening
● Políticas de Controle de Acesso (SO e Rede)
● Construído um baseline
Sistema Operacional GNU/Linux
● Serviços;
● Kernel;
● Auditoria;
● Rastreabilidade/evidência;
● Manutenção dos controles;
Hardening

Definições:
● Segundo a ITSecurity.com
“Hardening é o processo de otimizar as configurações de
segurança de um sistema, um termo comumente aplicado
a sistemas operacionais.”
Hardening
Definições:
● Processo de fortificação do sistema operacional aplicando
técnicas específicas de controles.
● Efeito de blindagem do sistema
Exemplos:
− Patch do kernel ou configuração de parâmetros (sysctl);
− Remoção de pacotes e desabilitação de serviços
desnecessários.
Hardening - Importância
Adequação as Normas
− ISO 17799 e ISO 27002
● Guia de referência para boas práticas dos processos e
gestão da Segurança da Informação Corporativa;
● Controle de Acesso - Físico e Lógico
● Políticas
● Processos (gestão da continuidade de negócio)
É um processo da fase do Gerenciamento de Riscos
− Avaliação de tod-os os ativos
Hardening

A instalação padrão de qualquer sistema operacional não é


recomendável seja qual for a finalidade do servidor.

Administradores de sistema tem por obrigação melhorar a


segurança ativando controles nativos ou implementando-os.

Esse processo é classicamente denominado Hardening.

O Linux nos possibilita implementar vários “Controles


Técnicos”.
Onde fazer Hardening

HARDENING USERLAND
Controles de Autenticação,
Controles de Serviço de Redes,
Logs, Auditoria

HARDENING KERNEL SPACE


(Utilizando recursos como
GrSecurit/PAX, Selinux, LIDS)
Meu Linux precisa de Hardening ?

#:(){ :|:& };:


Configuração IPv6 e Gateway estático

Atribuir manualmente o endereço IPv6 Global

A atribuição manual de um endereço IP, bem como seu


gateway tem como objetivo a identificação da rede.
Para atribuir um endereço IP manualmente a uma interface
(por exemplo, eth0, eth1, etc.)
Configuração IPv6 e Gateway estático

1. Como administrador (root), edite o arquivo:


/etc/sysconfig/network/ifcfg-eth*

2. No Sistema Operacional Suse, este comando deve ser


inserido como : IPADDR = '2001: DB8: 1: 1 :: 1234:
5679/64'

3. Como administrador (root), reinicie serviço de rede, de modo


que as alterações tenham efeito:
service network restart
Configuração IPv6 Gateway estático

Atribuir manualmente o endereço IPv6 de Gateway, os


endereços devem ser configurados manualmente e não
aceitos por meio de qualquer configuração automática.

No Sistema Operacional Suse:


1. Edite o seguinte arquivo:
/etc/sysconfig/network/ifroute-eth*

2. Adicione a seguinte entrada:


default 2001:DB8:1:1:800:27ff:FE00:0-eth*
Desabilitar configurações automáticas

Depois de atribuir manualmente o endereço de IPv6 e


Gateway, desativar a aceitação de anúncios e
redirecionamento ICMPv6

1. Como administrador (root), edite o arquivo:


/etc/sysconfig/network

2. Adicione ou modifique a linha de modo correto:


IPV6_AUTOCONF=no
Desabilitar configurações automáticas

3. Como administrador (root), reinicie serviço de rede, de


modo que as alterações tenham efeito:

service network restart

Essa configuração (sysctl) tem como resultado assegurar


que os seguintes parâmetros do kernel estejam definidos da
seguinte forma:
Desabilitar configurações automáticas

1. Certifique-se (de corrigir, se necessário) que sysctl de o


seguinte resultado:

sysctl net.ipv6.conf.default.accept_redirects

O resultado terá que exibir esta saída:


net.ipv6.conf.default.accept_redirects=0

sysctl net.ipv6.conf.default.accept_ra

O resultado terá que exibir esta saída:


net.ipv6.conf.default.accept_ra=0
Desabilitar configurações automáticas

Se houver a necessidade, de alterar as entradas do sysctl


manualmente, faça o seguinte:

1. Como administrador (root), edite o arquivo:


/etc/sysctl.conf

2. Adicione as seguintes linhas:


net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.accept_redirects=0
Desabilitar configurações automáticas

O procedimento acima afetará as configurações padrões,


pode fazer o mesmo para as interfaces existentes.
1. Como administrador (root), edite o arquivo:
/etc/sysconfig/network-scripts/ifcfg-eth*

2. Adicione ou modifique a linha de modo correto:

IPV6_AUTOCONF=no

3. Como administrador (root), reinicie serviço de rede, de


modo que as alterações tenham efeito:
service network restart
Desabilitar configurações automáticas

Essa configuração (sysctl) tem como resultado assegurar


que os seguintes parâmetros do kernel estejam definidos da
seguinte forma:

1. Certifique-se (de corrigir, se necessário) que sysctl de o


seguinte resultado:

sysctl net.ipv6.conf.eth*.accept_redirects
net.ipv6.conf.eth*.accept_redirects=0
sysctl net.ipv6.conf.eth*.accept_ra
net.ipv6.conf.eth*.accept_ra=0
Desabilitar configurações automáticas

Se houver a necessidade, de alterar as entradas do sysctl


manualmente, faça o seguinte:

1. Como administrador (root), edite o arquivo:


/etc/sysctl.conf

2. Adicione ou modifique a linha de modo correto:


net.ipv6.conf.eth*.accept_ra=0
net.ipv6.conf.eth*.accept_redirects=0
Configurar Manual Servidor DNS IPv6

Para configurar manualmente o servidor DNS IPv6:


1. Como administrador (root), edite o arquivo:
/etc/resolv.conf

2. Adicione uma linha para cada servidor DNS:


nameserver 2001:DB8:1:1::fedc:abce
Atribuir Manualmente um link MTU

Adicione a seguinte linha (a MTU IPv6 não deve ser menor que
1280 bytes):

1. Como administrador (root), edite o arquivo:


/etc/sysconfig/network-scripts/ifcfg-<eth*>:

2. Adicione a seguinte linhapara o MTU:


IPV6_MTU="1280"
Definição manual de rotas estáticas

Editar o arquivo:

/etc/sysconfig/network-scripts/route6-<eth*>

Exemplo:

fec0:0:0:2::/64 via fec0:0:0:1:0:0:0:20 dev eth*


O uso de end. temporários e extensões de Privacidade IPv6

Para habilitar extensões de Privacidade IPv6:

1. Como administrador (root), edite o arquivo:

/etc/sysconfig/network-scripts/ifcfg-<eth*>:

2. Adicione a seguinte linha:

IPV6_PRIVACY=rfc3041
1. Como root, edite o seguinte arquivo e, em seguida, adicione
as linhas descritas a seguir:
/etc/sysctl.conf

2. Habilitar extensões da privacidade e preferem endereços


temporários sobre endereços públicos:
net.ipv6.conf.eth*.use_tempaddr = 2
3. Definir tempo de vida preferido (em segundos) para
endereços temporários (1 dia):
net.ipv6.conf.eth1.temp_prefered_lft = 43200

4. Definir vida útil válida (em segundos) para endereços


temporários (dia 1/2).
net.ipv6.conf.eth*.temp_valid_lft = 86400

5. Defina o número máximo de endereços de


auto-configurados por interface a 1:
net.ipv6.conf.eth*.max_addresses = 1
Mais
Hardening
de IPV6
Desabilitando DAD (Duplicate Address Detection)

É uma modificação de interoperabilidade existentes nos


processos IPV6 Neighborn Discovery (RFC 2461) e Stateless
Address Autoconfiguration (RFC 2462).
Uma vez que os endereços são configurados estaticamente e
para evitar quaisquer ataques com DAD-related, DAD também
deve ser desativado:
1. Como administrador (root), editar o arquivo a seguir e
adicionar as linhas descritas abaixo:
/etc/sysctl.conf
2. Configurar para não aceitar DAD:
net.ipv6.conf.all.accept_dad = 0
net.ipv6.conf.default.accept_dad = 0
net.ipv6.conf.enp0s8.accept_dad = 0
3. Configurar para não transmitir DAD:
net.ipv6.conf.all.dad_transmits = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.enp0s8.dad_transmits = 0
Normalmente não são necessários, uma vez que deveria ter
sido tomado cuidado pelos procedimentos descritos na secção
Eles são apresentados aqui por razões de completude.

1. Como administrador (root), editar o arquivo a seguir e


adicionar as linhas descritas abaixo:
/etc/sysctl.conf
2. Configurar o numero de solicitações do roteador para enviar :
net.ipv6.conf.all.accept_dad = 0
net.ipv6.conf.default.accept_dad = 0
net.ipv6.conf.enp0s8.accept_dad = 0
3. Configurar para não transmitir DAD:
net.ipv6.conf.all.dad_transmits = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.enp0s8.dad_transmits = 0
Políticas de
Firewall
Politicas de Firewall
Firewall

1. O que mudou do ICMP para ICMPv6

2. Funções Adicionadas ao Protocolo

3. Exemplos de configurações
O que mudou do ICMP para ICMPv6

Pacote ICMPv4

Pacote ICMPv6

Frame ARP
Funções Adicionadas ao Protocolo ICMPv6

Definido na RFC 4443


Mesmas funções do ICMPv4 (mas não são compatíveis):
Informar características da rede, realizar diagnósticos, relatar
erros no processamento de pacotes, assume as funcionalidades
de outros protocolos:
ARP/RARP
IGMP
Identificado pelo valor 58 no campo Próximo Cabeçalho. Deve
ser implementado em todos os nós.
Funções Adicionadas ao Protocolo ICMPv6

É precedido pelos cabeçalhos de extensão, se houver, e pelo


cabeçalho base do IPv6. IPv6 cadeia de cab. de extensão.
Protocolo chave da arquitetura IPv6, essencial em
funcionalidades do IPv6:
Gerenciamento de grupos multicast, Descoberta de
Vizinhança (Neighbor Discovery), Mobilidade IPv6, Descoberta do
Path MTU.
Funções Adicionadas ao Protocolo ICMPv6

Possui duas classes de mensagens:

Mensagens de Erro: Destination Unreachable, Packet Too Big,


Time Exceeded, Parameter Problem.

Mensagens de Informação: Echo Request e Echo Reply,


Multicast Listener Query, Multicast Listener Report, Multicast
Listener Done, Router Solicitation e Router Advertisement,
Neighbor Solicitation e Neighbor Advertisement.
Funções Adicionadas ao Protocolo ICMPv6

Neighbor Discovery – definido na RFC 4861


Assume as funções de protocolos ARP, ICMP, Router
Discovery e ICMP Redirect, do IPv4.
Adiciona novos métodos não existentes na versão anterior do
protocolo IP.
Exemplos de configurações

As configurações de firewall que serão mostradas abaixo


foram feitas no IPTables para IPv6:
Estes exemplos serão divididos em duas partes configurações
de entrada e configurações de saída:
Configurações de Entrada:
Habilitar recebimento de mensagens pacote muito grande
(packet too big):
ip6tables -A INPUT -p icmpv6 --icmpv6-type
packet-too-big -j ACCEPT
Exemplos: configurações de entrada
Habilitar recebimento de mensagens echo reply:
ip6tables -A INPUT -m state -p icmpv6 --state
ESTABLISHED,RELATED --icmpv6-type echo-reply -j ACCEPT

Habilitar recebimento de mensagens destino inalcançável


(unreachable):
ip6tables -A INPUT -m state -p icmpv6 --state
ESTABLISHED,RELATED --icmpv6-type destination-unreachable
-j ACCEPT
Exemplos: configurações de entrada

Habilitar recebimento de mensagens echo request:


for trusted_host in ${TRUSTED_HOSTS[@]}
do
for host_address in ${HOST_ADDRESSES[@]}
do
icmpv6-type echo-request -m limit --limit 900/min -j
ACCEPT
done
done
ip6tables -A INPUT -p icmpv6 -s $trusted_host -d
$host_address --
Exemplos: configurações de saída

Configurações de Saída:
Habilitar envio de mensagens pacote muito grande (packet too
big):
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type
packet-too-big -j ACCEPT

Habilitar envio de mensagens echo request:


for host_address in ${HOST_ADDRESSES[@]}
do
ip6tables -A OUTPUT -p icmpv6 -s $host_address --icmpv6-type
echo-request-j ACCEPT
Exemplos: configurações de saída

Habilitar envio de mensagens echo reply:


for host_address in ${HOST_ADDRESSES[@]}
do
ip6tables -A OUTPUT -p icmpv6 -s $host_address --icmpv6-type
echo-reply -j ACCEPT
done
Exemplos: configurações de vizinhança

Configuração Descoberta de Vizinhança e Advertisement


Messages:
Configurações para entrada e saída:
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -j
ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -j
ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbor-solicitation -j
ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbor-advertisement -j
ACCEPT
Dúvidas ?

Você também pode gostar