Faculdade de Engenharia da Computação Disciplina: Segurança Aplicada à Computação Ataque em Sistemas Distribuídos Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis Wagner Santos C. de Jesus 1
DDos (Distributed Denial Of Service) Negação de serviço distribuída 2
A Intrusão Distribuída (ID) 3
Conceito de Intrusão Distribuída Neste contexto os ataques não são baseados no uso de um único computador para iniciar um ataque, no lugar são utilizados centenas ou até milhares de computadores desprotegidos e ligados em uma rede para lançar coordenadamente o ataque. 4
Atuação Explorar vulnerabilidade dos protocolos TCP/IP. Este sistema é composto por dois programas: MASTER ZUMBI 5
Ataque ID Hacker Zumbi MASTER Zumbi Zumbi 6
Defesa Tentar descobrir alguma característica nos pacotes recebidos que possam permitir separar os pacotes de ataque dos pacotes de acesso legítimo. 7
Connection Flooder (Inundação) 8
Flood É um programa que tenta abrir o máximo de conexões com uma máquinaalvo a fim de esgotar todo o limite disponível de conexões da máquina visando impedir, outros usuários de acessarem o serviço. 9
Inundação na porta 21 Host: 138.36.95.240 Porta Conhecida 21 Host: 138.37.58.250 Processo Servidor Processo Cliente Porta qualquer 10
Algoritmo Flood (Inundação) Conectar Porta N Conectado S N Erro:(Colapso) 11
Defesa (Flood) Para se defender de um Connection Flood a maneira mais adequada é alterar as configurações padrão do servidor. 12
Configuração Servidor Colocar número máximo anônimos; Número máximo de clientes; Habilitando o número de conexões simultâneas fixo (Valor pequeno); Permitir assim uma única conexão FTP por IP. 13
Força Bruta 14
Definição Consiste basicamente em uma técnica que, através do método de tentativa e erro, procurando obter sucesso em uma determinada sessão de autenticação do usuário. 15
Troca da senha Vanda ********** Observação: Técnica perigosa por deixar rastros. 16
Implementação Força Bruta em Java 17
Conceito de Arquivo de Acesso Aleatório 18
Arquivo de Acesso Aleatório São arquivos organizados em unidades (maiores que 1 byte) de tamanho sempre igual, chamadas registros. Registros têm a mesma filosofia que as structs em C ou records em Pascal. São conjuntos de dados com tamanho fixo, mesmo que uma parte não seja aproveitada. Técnicas de Gerência de Arquivos são voltadas aos Arquivos de Registros. 19
Classe RandomAccessFile Cria um Arquivo de acesso aleatório. Grava no arquivo em formato binário. 6 5 7 4 3 0 1 2 Byte 20
Sintaxe: ObjArq = new RandomAccessFile(<ObjFile,<ExpS); Sintaxe: ObjArq => Objeto da classe RamdomAcessFile(); <ExpS> => w ou r determina se o arquivo será aberto para leitura ou Gravação. 21
Exemplo: try { arquivo = new RandomAccessFile(new File("arquivo.txt"),"r"); } catch (FileNotFoundException e) { System.out.println("Arquivo Inexistente"); System.exit(0); } 22
close() Para finalizar qualquer tipo de comunicação com o buffer do arquivo RandomAccessFile basta usar o método close(). Sintaxe: <objeto>.close(); 23
Gravação Arquivo Binário Método Descrição writeint() Efetua gravação de um dado do tipo inteiro no arquivo. writedouble() writeutf() Efetua gravação de ponto flutuante no arquivo. Efetua gravação de uma String no arquivo em formato do tipo Unicode. 24
Leitura Arquivo Binário readint() Método Descrição Efetua Leitura de um dado do tipo inteiro no arquivo. readdouble() Efetua Leitura do ponto flutuante do arquivo. readutf() Efetua leitura de uma String do arquivo no formato do tipo Unicode. 25
Avaliar quantidade de registros x = size 16 1 Onde x é uma variável do tipo long e size o comprimento do arquivo em bytes. 26