• Nenhum resultado encontrado

Hardening Linux. Fábio Costa

N/A
N/A
Protected

Academic year: 2021

Share "Hardening Linux. Fábio Costa"

Copied!
31
0
0

Texto

(1)

Hardening Linux

Fábio Costa

(2)

AGENDA

Hardening 1:

Definição

Importante

Checklist

Hardening 2:

Serviços e Aplicações

Hardening 3:

(3)

DEFINIÇÕES

Processo de fortificação do sistema operacional aplicando

técnicas específicas de controles

Efeito de blindagem do sistema

Exemplos:

– Aplicar e manter patches atualizados, tanto do sistema

operacional quanto das aplicações.

– Revisar e modificar as permissões dos sistemas de

arquivos, em especial no que diz respeito a escrita e

execução.

(4)

IMPORTANTE

ISO 17799 e ISO 27002

– Controle de Acesso (Lógico e Físico)

– Políticas

– Gestão da continuidade de negócio

– Gerenciamento de Riscos

(5)

Instalação e 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.

(6)

Antes da Instalação

Planejamento:

Documentação

Quais serviços serão instalados?

Quantos Usuários?

Qual a média de acesso?

Senha segura para root/usuário principal

Pensar em redundância!!!

(7)

Hardening Físico: Instalação

Desabilitar a inicialização a partir de dispositivos como

disquete, cdrom, drive usb e rede

– Impedir que pessoas indesejadas tente iniciar o

sistema a partir de um disco especial de boot

– Proteger contra mudanças nas características da BIOS

Reinicializar a máquina e mudar a sequência de boot para Hard Drive ONLY

(8)

Particionamento: /boot /home /usr /var /var/log /tmp swap

Para evitar qualquer problema com tamanho de partições use LVM

(9)

Controle sobre Sistema de

Arquivos

Eis as principais opções

– defaults: permite alguns parâmetros (Depende da distribuição e do tipo de FS)

– noquota: não ajustar quotas para usuários – nosuid: não permitir SUID/SGID

– nodev: não permitir acesso a dispositivos especiais ou de caractere – noexec: não permitir a execução de nenhum binário

– quota: permitir uso de quotas por usuário – ro: permitir para somente-leitura

– rw: permitir para leitura-escrita

(10)

Controle sobre Sistema de

Arquivos

Ponto de Montagem

nosuid noexec noatime

/boot X ---- ----/ ---- ---- ----/home X X /usr X ---- ----/tmp X X ----/var X X ----/var/log X X X

(11)

Controle sobre Sistema de

Arquivos

$ sudo vim /etc/fstab

/dev/hda1 /boot

ext4 defaults,nosuid

/dev/hda3 /

ext4 defaults

/dev/hda4 /home ext4 defaults,nosuid,noexec

/dev/hda5 /usr

ext4 defaults,nosuid

/dev/hda6 /tmp

ext4 defaults,nosuid,noexec

/dev/hda7 /var

ext4 defaults,nosuid,noexec

(12)

Hardening no Sistema

Os pacotes precisam vir de uma fonte

segura:

# vim /etc/apt/sources.list

deb

http://ftp.br.debian.org/debian/

squeeze main

Para garantir que a fonte é segura:

(13)

Hardening no Sistema

Escolha cuidadosamente os pacotes que deverão ser

instalados e desinstalados

– Exemplo:

Lynx – cliente http/ftp que possibilita transferência de malwares Wget – cliente http/ftp que possibilita transferência de malwares Netcat (nc) – canivete suíço que possibilita transferência de malwares ou até mesmo criar backdoors

Hping – montador de pacotes – que possibilita criar backdoors via rawsocket

(14)

Remoção de Programas e

Serviços Desnecessários

Primeiramente, deve-se fazer uma pesquisa por todos

os pacotes e suas versões instalados no sistema,

fazendo uma lista para ser melhor analisado.

No Debian:

$ sudo dpkg -l | awk '{print $2, $3}' | sed '1,5d' > /root/pacotes

$ sudo cat /root/pacotes

No Red Hat:

rpm -qa

(15)

Protegendo o GRUB

Arquivo de Configuração do GRUB é /boot/grub/grub.cfg mas é aconselhável a sua modificação e compilação através de seus módulos.

Incluir/alterar a variável timeout=0 no arquivo /etc/default/grub , para não mostrar menu.

$ sudo vim /etc/default/grub

Gerar hash da senha SHA512 por meio do comando:

#grub-mkpasswd-pbkdf2 Enter password: Reenter password: Your PBKDF2 is grub.pbkdf2.sha512.10000.706A070CD168B759801D2790C6D48D5C3842 B9165CF08600918CD9A496B6BFF9CD9BB8F7C99DEC431DF3AD0D4667 09ECE041FC00C5C1B58F00A879E0322959B7.6FC5058001DFFC1CD6B35 F9A5DA66ED6C8745E4999E064E712C9BF302E8F2547CD0B591C33A34

(16)

Protegendo o GRUB

Adicionando o código de proteção abaixo no final do arquivo /etc/grub.d/00_header Código: cat << EOF set superusers="testuser" password_pbkdf2 testuser grub.pbkdf2.sha512.10000.706A070CD168B759801D2790C6D48D5C3842B9165 CF08600918CD9A496B6BFF9CD9BB8F7C99DEC431DF3AD0D466709ECE041FC 00C5C1B58F00A879E0322959B7.6FC5058001DFFC1CD6B35F9A5DA66ED6C87 45E4999E064E712C9BF302E8F2547CD0B591C33A340F229FD79D2252E23CF C41410C9A3300537E54C9CE6F7008100 EOF

Onde: testuser e o usuário que pode editar o arquivo e grub.pbkdf2.sha512... e a

senha do testuser;

Execute agora: $ sudo update-grub

(17)

Desabilitar Ctrl-Alt-Delete

Sabemos que pressionando Ctrl-Alt-Delete

reiniciamos o sistema então devemos prevenir que

a máquina seja reinicializada.

Abra e edite o seguinte arquivo:

$ sudo vim /etc/inittab

ca:12345:ctrlaltdel:/sbin/shutdown-t1-a-rnow

Comentar ou modificara ação:

(18)

Bloquear login do root nos

terminais de texto

Edite o arquivo /etc/securetty e procure a seção

Virtual consoles.

#tty1

#tty2

#tty3

#tty4

#tty5

...

(19)

Bloquear o Terminal

A variável TMOUT do ambiente BASH é que

controla em quanto tempo o terminal será

deslogado em caso de desuso. Não vem

definida por padrão em sistemas Linux.

Podemos setá-la provisoria e manualmente:

$ TMOUT=15

Ou, definitivamente, inserido-a ao final do

arquivo /etc/profile

(20)

Bloquear o Terminal

vlock é um programa para bloquear uma ou

mais sessões no console do Linux.

$ vlock

Bloquear todas os terminais

$ vlock -a

(21)

Controles de Sudo

Com o sudo, pode-se definir que comandos cada

usuário comum pode executar como se fosse root

# apt-get install sudo

O arquivo de configuração do sudo é /etc/sudoers

(readonly) utilize visudo para editar.

Exemplo de configuração:

teste ALL=/sbin/ifconfig, /sbin/iptables

Define que o usuário teste pode executar os comandos

(22)

Controles de Sudo

Exemplo de configuração:

teste ALL=NOPASSWD: /bin/reboot, /bin/halt

Define que o usuário teste pode executar os comandos

reboot e halt, sem que seja solicitada a senha de root

Exemplo de configuração:

teste ALL=/sbin/passwd [A-Z]*,!/usr/bin/passwd root

Define que o usuário teste pode alterar a senha de

qualquer usuário cujo login estiver no intervalo de A-Z,

exceto a senha de root

(23)

Controle de Sudo

Cuidado com o SUBSHELL

- less

- vim

- more

- etc

Exemplo:

$ sudo vim /etc/services

(tecle esc e digite)

(24)

Controle de Sudo

Edite o arquivo /etc/sudoers.d/teste

teste ALL = (root) NOPASSWD: sudoedit /etc/services

Tente fazer o subshell

$ sudoedit /etc/services

(tecle esc e digite novamente)

:!bash

(25)

Limite de Recursos

(26)

Limite de Recursos

Por padrão, qual o número máximo de processos que podem ser executados ao mesmo tempo?

$ sudo ulimit -u unlimited

Qual o tempo máximo de uso de cpu?

$ sudo ulimit-t unlimited

Qual o tamanho máximo de arquivo que os usuários podem criar?

$ sudo ulimit-f unlimited

(27)

Limite de Recursos

Limitando por usuário

$ sudo vim /etc/security/limits.conf

<usuario/grupo> <tipo_de_limite> <recurso> <valor_do_limite> * hard nproc 100 * soft nproc 70 * hard cpu 480 * hard fsize 100000 * hard maxlogins 2 * hard rss 100000

(28)

Bastille Hardening

É um programa de Hardening para S.O, que configura-o de forma proativa para aumentar a segurança e diminuir sua suscetibilidade à comprometimentos.

modo hardening padrão, questiona de forma interativa, explicando cada tópico questionado, construindo uma política baseada nas respostas do administrador.modo hardening padrão, questiona de forma interativa, explicando cada tópico questionado, construindo uma política baseada nas respostas do administrado.

Suporte para Linux, Mac OS X e HP-UX Modo automático ou manual

(29)

Bastille Hardening

Terminal:

$ sudo bastille -c

Grafico:

(30)
(31)

OBRIGADO!!!

Referências

Documentos relacionados

Excluindo as operações de Santos, os demais terminais da Ultracargo apresentaram EBITDA de R$ 15 milhões, redução de 30% e 40% em relação ao 4T14 e ao 3T15,

Após a queima, para os corpos com a presença do sienito observou-se que os valores de densidade diminuíram (comparados às respectivas densidades a seco), já

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Correlacionados, resultaram na delimitação das seguintes Unidades Geoambientais: Colinas altas, Colinas altas dissecadas, Colinas baixas, Colinas baixas dissecadas,

Pela estimativa dos parâmetros genéticos observa-se baixa magnitude dos valores genéticos entre os clones dos diferentes grupos de maturação, tendo o maior valor da

A prótese do joelho implica tensões de cedência no osso trabecular que dá apoio à parte distal do espigão na componente tibial, ou seja, para a carga de 700N as 3

Declarações de segurança: Em caso de contato com os olhos, lave imediatamente com água em abundância e consultar um médico. EUA classificação e texto