A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Grsecurity and PAX GrSecurity and PAX Curiosidades: Começou em Fevereiro 2001 Começou em Fevereiro 2001 Primeira versão para.

Apresentações semelhantes


Apresentação em tema: "Grsecurity and PAX GrSecurity and PAX Curiosidades: Começou em Fevereiro 2001 Começou em Fevereiro 2001 Primeira versão para."— Transcrição da apresentação:

1 Grsecurity and PAX

2 GrSecurity and PAX Curiosidades: Começou em Fevereiro 2001 Começou em Fevereiro 2001 Primeira versão para o kernel Primeira versão para o kernel 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 – 0x Libraries 0x0fd6b000 – 0x0fefc000 Executable Executable 0x x Libraries 0x – 0x Stack 0xbfffe0000– 0xc xbfff2000 – 0xbfffa000 Stack PaX with Full ASLRWithout PaX 0x – 0x x – 0x0fd6b000 0x00fefc000 – 0x xbfffa000 – 0xc xbff00000 – bfff MB 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

10

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

19

20

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: DUVIDAS ?


Carregar ppt "Grsecurity and PAX GrSecurity and PAX Curiosidades: Começou em Fevereiro 2001 Começou em Fevereiro 2001 Primeira versão para."

Apresentações semelhantes


Anúncios Google