Boas práticas de defesa (Linux)

De Area31 Hackerspace
Autor: 
* Raphael Bastos

Defesa, do latim defensa, é o ato de proteção do próprio corpo ou grupo, significa auxílio, proteção, resistência; é o emprego dos meios necessários para proteção de alguém ou de algo.

  • Defesa - No caso das guerras a defesa é a ação contrária ao ataque;
  • Defesa - Nos Estados, são as forças armadas;
  • Defesa - Nos esportes coletivos, como na guerra a linha de defesa é na retaguarda;
  • Defesa - Na jurisprudência, defesa é alegar em favor próprio;
  • Defesa - Uma abertura de xadrez jogada pelas pretas;
  • Defesa - Defensivo Agrícola - Uso de produtos e de técnicas na agricultura para proteger de pragas.




Utilize criptografia pra tudo

Rootfs over encrypted lvm

É obrigatório o uso de criptografia de disco, principalmente do rootfs e da SWAP via LVM + cryptoLUKS.

http://www.funtoo.org/Rootfs_over_encrypted_lvm

EX: # cryptsetup --cipher twofish-xts-plain64 --hash sha512 --key-size 256 luksFormat /dev/sda3


Utilize módulo do kernel assinado

Ao ativar a funcionalidade "Signed kernel module support" no seu Linux, permitrá que você tenha mais uma camada de proteção em seu sistema (hardening), não permitindo o carregamento de módulos do kernel não assinados (via modprobe), ou módulos do kernel assinados com a chave errada. Módulos do kernel maliciosos são métodos comuns para uso de rootkits em um sistema Linux.

Em sistemas Funtoo/Gentoo:

https://wiki.gentoo.org/wiki/Signed_kernel_module_support


Assinando módulos manualmente

https://wiki.hackstore.com.br/Assinando_m%C3%B3dulos_do_kernel


Utilize profile Hardened/Grsecurity2

Para aumentar sua defesa, adicione patches em seu kernel (hardened) para monitorar mudanças em tempo de compilação, proteção da pilha, alterações de tempo de execução mais invasivos, controle de acesso obrigatório, dentre outras camadas. Hardened em si não é uma correção a qualquer questão específica. Não é uma "'correção de bug'". Hardened basicamente fornece um meio para mitigar uma ameaça de um exploit que utilizou com sucesso determinada vulnerabilidade. Hardened é melhor usado em forma de camadas, sem depender de qualquer técnica, já que podem haver falhas em quaisquer técnicas.

http://www.funtoo.org/Hardening_Concepts
https://wiki.gentoo.org/wiki/Hardened/Grsecurity2_Quickstart
http://grsecurity.net/gracldoc.htm
https://en.wikibooks.org/wiki/Grsecurity

OBS: Em algumas distribuições conhecidas, temos soluções semelhantes como o SELINUX (RHEL/CentOS) ou APPARMOR (SELS/OpenSUSE)


Utilize PaX

PaX é um patch para o kernel Linux que fornece hardening de três maneiras:

  • Judicious enforcement of non-executable memory
  • Address Space Layout Randomization (ASLR)
  • Miscellaneous hardening on stack- and memory handling

Mais infos:

https://wiki.gentoo.org/wiki/Hardened/PaX_Quickstart
http://grsecurity.net/PaX-presentation_files/frame.htm


Utilize RBAC

Increasing Performance and Granularity in Role-Based Access Control Systems

http://grsecurity.net/researchpaper.pdf


Firewall

NFtables

Já que não temos no Linux um firewall de verdade como o PF (FreeBSD), recomendamos abandonarem o iptables e utilizarem o NFtables:

http://www.funtoo.org/Package:Nftables


Dicas

Retire o SSHD da porta padrão (22)

Altere para porta 666 ou 2424, mas por favor retire o servidor SSH da porta 22. Experimente abrir um TCPDUMP na escuta da porta 22 de qualquer IP no mundo pra ver o motivo.

# echo -e "Port 666\nPort 2424" >> /etc/ssh/sshd_config



Docs

Hardened Gentoo http://www.gentoo.org/proj/en/hardened/

Security-Enhanced Linux http://en.wikipedia.org/wiki/Security-Enhanced_Linux

RSBAC http://en.wikipedia.org/wiki/RSBAC

Hardened/Toolchain https://wiki.gentoo.org/wiki/Hardened/Toolchain#RELRO

Hardened/PaX Quickstart https://wiki.gentoo.org/wiki/Project:Hardened/PaX_Quickstart

checksec.sh http://www.trapkit.de/tools/checksec.html

Advanced Portage Features http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=3&chap=6

Elfix http://dev.gentoo.org/~blueness/elfix/

Avfs: An On-Access Anti-Virus File System http://www.fsl.cs.sunysb.edu/docs/avfs-security04/

Eicar Download, http://www.eicar.org/85-0-Download.html

Gentoo Security Handbook, https://gentoo-handbook.lugons.org/doc/en/security/