Eduardo Mazza Max José Lins Timóteo

Slides:



Advertisements
Apresentações semelhantes
Prevenção Software de detecção de intrusos – detectam NOP Proteção de pilha – detecta os ataques mais comuns Randomização do endereço de espaço (muitos.
Advertisements

Rafael C. Marques Orientador - André Moraes TCC 11/09/12 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS.
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 19.
PHP: Uma linguagem de programação WEB 1. Everson Santos Araujo 2. Teylo Laundos Aguiar PHP Hypertext Preprocessor.
Banco de Dados I Banco de Dados I Professora: Sílvia C. Matos Soares Análise de Sistemas.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Variáveis e Atribuições.
MONITORAMENTO DE EVENTOS DE CADEIAS DE PROCESSOS PRODUTIVOS AUTOMOTIVOS UTILIZANDO WEB SERVICES ECON Acadêmico: Leonardo Broilo Junior Orientador: Francisco.
Administração e serviços de redes
Introdução à Computação para Engenharia MAC2166
UD 1 - CONCEITOS DE INFORMÁTICA
Sistemas Operacionais de Rede
Projeto Integrador II Seminário final
Computação de Alto Desempenho Utilizando Placas Gráficas
Projeto Integrador II 2° Seminário de Andamento
UML – Diagramas de componentes
Fundamentos de Programação 1
Protocolos de Segurança IP IPSec
Aula 05 Pilha TCP/IP.
Linguagem C Para programadores Python
Sistema Automatizado de Hospedagem de Sites
Sistemas Baseados no Conhecimento
Capítulo 8 - Caracteres e Strings
Tema 5 – Arquitetura de Banco de Dados
Introdução à Programação BCC 201 Aula
DESENVOLVIMENTO DE PROGRAMAS
Prof. Wellington Franco Manipulação de Arquivos em C
Ambiente para desenvolvimento de sistemas baseado no conceito MBUIDE
UML – Diagramas de Componentes e Modelação da Arquitectura Física
__________________________________________
SISTEMAS OPERACIONAIS
Arquitetura de Computadores
Programação para Internet Rica- CCT0081
UNIDADE 7 Tipos estruturados
Redes e Comunicação de Dados Topologia de Redes
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Apresentação Conceitual
Tema do Seminário: Frameworks para desenvolvimento Web Linguagem e Técnicas de Programação II – LTP2 Professor: Uedson Reis.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Instruções para administradores
AULA 3.
Capacitação para professores
ALGORITMOS Dilvan Moreira.
Programação.
Firewalls UFRJ – UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
INSTRUMENTAÇÃO VIRTUAL
Sistema de Abertura de Chamados
Remote Method Invocation
Software.
Curso Técnico em Informática
Arquitetura de Redes de Computadores
TÉCNICO EM EDIFICAÇÕES
Sistemas Operacionais
TCP vs UDP CRD Filipe Pacheco.
Linguagem PASCAL Tipos Estruturados
Sistemas Distribuídos
Avaliação do Site Trend Shop
Linguagem de Programação
Marco André Lopes Mendes
MEMORIAS RAUL DIAZ ROSAS.
Lógica de Programação Apresentada por:.
GRUPO DE TRABALHO XXXXXXXX
Arrays de caracteres: strings
Programação em assembly
Prof. Fábio Rafael Segundo
TÍTULO DO TRABALHO AQUI, NESSA FORMATAÇÃO,
Avaliação de sites A presença online de um site é cada vez mais requisitado pelos consumidores, que aumentam consideravelmente a procura por produtos e.
Nome do autor – Instituição a que se vincula
Programação de Computadores LINGUAGEM C – AULA 02 – PROF. WELLINGTON TELLES.
Programação de Computadores LINGUAGEM C – AULA 03 – PROF. WELLINGTON TELLES.
Apresentando o Equipamento REP Fábio Rocha
Transcrição da apresentação:

Eduardo Mazza Max José Lins Timóteo Buffer overflow Eduardo Mazza Max José Lins Timóteo

Ameaças digitais Vírus SQL Injection Autenticação falsa Vírus tradicional Trojan [Worm] SQL Injection Autenticação falsa Senha de fácil acesso Setup sem senha E-Mail que engana

Definição O que é buffer overflow Tipos mais comuns Ultrapassa o tamanho do buffer Tipos mais comuns [Stack] Heap Necessita de bons conhecimentos

Aplicações Worms Derrubar um servidor Derrubar uma máquina comum Controle da máquina

Worms Sem uma ação do usuário Potencial alto (uma falha, várias máquinas) N para 1 e 1 para N

Derrubar um servidor Não precisa esgotar recursos Derruba vários de uma vez só

Controle da máquina Controlar X derrubar Nível de controle pode ser alto Até maior que o do usuário Garantir controle melhor ao invadir

Vantagens dessa técnica Anti-vírus Firewall Erro do programador Complexidade do sistema operacional

Anti-vírus Objetivos diferentes Geralmente analisa código de um arquivo

Firewall Computador servidor Computador cliente É necessário manter portas abertas Buffer overflow despercebido Computador cliente Para que aguardar conexões? Alguma utilidade contra buffer overflow Porém: HTTP

Erro do programador Exemplo void teste( char *s ) { char nome[200]; strcpy(nome,s); printf("Nome eh %s\n",nome); }

Erro do programador Linguagens de programação Alto nível x C++ Alto nível (Java, Visual basic, C#,...) Alto nível, mas não tão alto (C++) Alto nível x C++

SO complexo Má configuração de serviços Serviços habilitados por padrão Netstat –na

Dificuldades da técnica Organização da memória Onde existe a falha? Valor do ponteiro ASSEMBLY

Funcionamento buffer NOP NOP NOP NOP retorno XXXXXXXX NOP NOP instrução instrução

Exemplo void testar(char *codigo){ char texto[8]; strcpy(texto,codigo); return; }

Exemplo int main(int argc, char* argv[]) { const int N = 160000; char b[N]; for(int i = 0;i < N-1;i=i+2){ b[i] = '\x90'; b[i+1] = '\x90'; }

Exemplo b[12] = '\x9a'; b[13] = '\x8e'; b[14] = '\x10'; b[30] = '\xea '; b[31] = '\x9a'; b[32] = '\x8e'; b[33] = '\x10'; b[34] = '\x00'; b[35] = '\x1b'; b[36] = '\x00';

Prevenção Atualizações Escolha da linguagem Alto nível Nível não tão alto Utilização de funções mais seguras Filtrar os dados NOPs ADD AX,1, SUB AX,1

Conclusão Atacante Vítima É uma técnica difícil, mas muito eficiente quando se consegue implementar Não se limita a um único tipo de falha Várias possibilidades Vítima É uma dor de cabeça Basta estar conectado

Referências http://www.infosecwriters.com/text_resources/pdf/common_program_vul.pdf (135 págs.) http://www.blackhat.com/presentations/bh-usa-00/Greg-Hoglund/Hoglund-Buffer-Overflow.ppt http://www.cs.virginia.edu/~evans/crab/injection.ppt