Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRenato Pinta Alterado mais de 10 anos atrás
1
Grsecurity and PAX rafaelsilva@rfdslabs.com.br
2
GrSecurity and PAX Curiosidades: Começou em Fevereiro 2001 Começou em Fevereiro 2001 Primeira versão para o kernel 2.4.1 Primeira versão para o kernel 2.4.1 Um port do Openwall 2.4.x Um port do Openwall 2.4.x
3
GrSecurity and PAX Grsecurity é um completo sistema de segurança para o Linux 2.4.x 2.6.x, possuindo como características: Proteção a buffer overflow, Proteção a buffer overflow, Auditoria de kernel, Auditoria de kernel, Controle de acesso (ACL) Controle de acesso (ACL) Proteção sobre qualquer forma de modificar bugs de endereço de memórias Proteção sobre qualquer forma de modificar bugs de endereço de memórias Suporta múltiplos processadores e plataformas. RISC, SPARC, INTEL, PPC. Suporta múltiplos processadores e plataformas. RISC, SPARC, INTEL, PPC.
4
GrSecurity and PAX Protege dos meios mais comuns de exploração na memória: Protege dos meios mais comuns de exploração na memória: Address space modification Address space modification Races Races Breaking a chroot(2) jail. Breaking a chroot(2) jail.
5
GrSecurity and PAX Suporta sysctl Suporta sysctl Netfilter Netfilter Varias features de randomizacao do OpenBSD Varias features de randomizacao do OpenBSD Implementação do TPE (Trusted Path Execution) Implementação do TPE (Trusted Path Execution)
6
GrSecurity and PAX Principais características: Proteção conta Stack overflow; Proteção conta Stack overflow; Proteção conta Heap overflow; Proteção conta Heap overflow; Proteção conta Return-into-lib; Proteção conta Return-into-lib; Proteção conta format strings; Proteção conta format strings;
7
GrSecurity and PAX 0x0012d00 – 0x00391000 Libraries 0x0fd6b000 – 0x0fefc000 Executable Executable 0x08048000 -0x08049000 Libraries 0x40000000 – 0x40168000 Stack 0xbfffe0000– 0xc0000000 0xbfff2000 – 0xbfffa000 Stack PaX with Full ASLRWithout PaX 0x40000000 – 0x50000000 0x08048000 – 0x0fd6b000 0x00fefc000 – 0x18048000 0xbfffa000 – 0xc0000000 0xbff00000 – bfff2000 256MB 1MB
8
GrSecurity and PAX O mais interessante do projeto PaX é a pesquisa de vários mecanismos para proteger o sistema de explorações que dêem ao atacante privilégios para ler/escrever em determinados segmentos da memória do address space. Essas classes de falhas são as mais exploradas por atacantes que visam elevar seu nível de atuação frente ao sistema, obtendo privilégios de root (uid=0), portanto o PaX vai ajudar e muito na prevenção de tais explorações, impedindo assim execuções arbitrárias de códigos para alocação de memória não permitida no sistema.
9
GrSecurity and PAX
11
Estamos frisando aqui que o que iremos fazer não é analisar e corrigir bugs no sistema, mas sim torná-los o menos acessíveis possível. O PaX para isso utiliza três níveis distintos para determinadas técnicas de exploração: Introdução e execução de códigos arbitrários. Execução de códigos fora da ordem original do programa. Execução de códigos dentro da ordem original do programa usando dados arbitrários.
12
GrSecurity and PAX Uma das principais modificações que o PaX irá causar em nosso sistema é a randomização do nosso buffer de saída, o return address. Poderíamos verificar isso com um simples código que nos retorne o valor do buffer:
13
GrSecurity and PAX
14
Em técnicas de exploração de memória como: Stack Heap overflow Sabe que para conseguir sobrescrever o return address você deve saber seu endereço na memória que este aloca. Com o PaX implementado esse endereço se tornará arbitrário e apenas o próprio programa que alocou a memória (com as devidas permissões que podem ser setadas pelo PaX) poderá controlar seu fluxo de execução.
15
GrSecurity and PAX Buffer Overflow
16
GrSecurity and PAX Buffer é uma variável automática, o espaço utilizado pelos 500 bytes é reservado logo que se entra na função main(). Ao Correr o programa vulnerable com um argumento superior a 500 caracteres, os dados excedem a capacidade do buffer e "invade" a pilha do processo. Como vimos anteriormente a pilha guarda o endereço da próxima instrução a ser executada (também conhecida como endereço de retorno). Para explorar este buraco de segurança basta substituir o endereço de retorno da função pelo endereço do código da shell a ser executado. Este código da shell é inserido no corpo do buffer seguido de um endereço de memória. Fácil não ?
17
GrSecurity and PAX Um pouco sobre as principais funções do PaX Vamos tratar das principais funções que o PaX utiliza para proteger nosso sistema: RandStack Randmmap Randexec
18
GrSecurity and PAX
21
Instalando o PAX
22
GrSecurity and PAX Instalando o PAX
23
GrSecurity and PAX Instalando o PAX
24
GrSecurity and PAX
25
GrSecurity Referencias: www.grsecurity.netwww.grsecurity.net www.vivaolinux.com.br www.google.com.br DUVIDAS ?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.