REDES DE COMPUTADORES 2.5 A CAMADA DE APLICAÇÃO ! A camada de aplicação fornece os serviços "reais" de rede para os usuários. Os níveis abaixo da aplicação fornecem serviços de transporte de dados para o nível de aplicação, mas não fazem nenhum trabalho real para os usuários. Considerações de Segurança ! "É fácil ter um sistema de computação seguro. Você meramente tem de desconectar seu sistema de qualquer rede externa, e permitir somente terminais ligados diretamente a ele. Pôr a máquina e seus terminais em uma sala fechada, e por um guarda na porta." F.T. Grampp e R.H. Morris ! Por que segurança é necessária? Para proteger o patrimônio físico (equipamentos, periféricos, meios de armazenamento) e lógico (informação, identidades). ! Quanto proteger? Depende do "valor" do que vai ser protegido. Depende de quanto custa a proteção e de qual é o custo das perdas em caso de ataque. ! Quem ataca? Diversos tipos de pessoas. A tabela a seguir mostra alguns [poucos] exemplos. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 1 REDES DE COMPUTADORES Adversário Estudante Hacker Representante vendas Empresário Ex-empregado Contador Corretor Espião Terrorista Objetivo Para obter uma informação engraçada do correio eletrônico de alguém Para testar a segurança de um sistema; para obter dados às escondidas de Para conseguir representar em Fortaleza ou Recife, e não em Areia e Bananeiras Para descobrir o plano estratégico de marketing de um concorrente Para se vingar da demissão Para desviar dinheiro da empresa Para não cumprir uma promessa feita à um cliente por e-mail Para descobrir uma estratégia militar do inimigo Para roubar segredos sobre guerra biológica ! Hacker: pessoa que sente prazer em aprender os detalhes dos sistemas de programação e sugar o máximo de suas capacidades ao aposto da maioria que prefere aprender o mínimo necessário. ! Cracker: quem usa seus conhecimentos computacionais para fins ilícitos. sobre sistemas © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 2 REDES DE COMPUTADORES ! Política de segurança: determina limites aceitáveis de comportamento e punições adequadas. Define o que é ou não permitido fazer com a rede (p.ex. tráfego ftp para fora). ! Idéia chave: (a) qualquer coisa que você não entende completamente é perigosa, até você entendê-la; (b) tudo que não for explicitamente permitido, é proibido. ! Segundo o Orange Book, existem 7 níveis de segurança definidos. Alguns mais conhecidos são: ! ♦ Nível D: proteção mínima; ♦ Nível C: controle de acesso discreto (UNIX, WinNT); ♦ Nível B: controle de acesso mandatário (VAX); ♦ Nível A1: projeto de segurança aprovado; ♦ Nível C2: identificação e autenticação obrigatória de usuários, senhas ocultas para recursos e serviços, etc. Diversas formas de ataque são usadas hoje em via. Algumas delas são mostradas na tabela a seguir. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 3 REDES DE COMPUTADORES Ataque Descrição Portas dos Pedaços de código escritos em aplicações ou sistemas fundos (Back operacionais, que realizam serviços não previstos em sua especificação; Ex. versões alteradas de login, Doors) telnet e ftp, que aceitam uma seqüência de teclas para abrir um acesso ao intruso Características ocultas em programas, que ficam Bombas lógicas (Logic dormentes por um longo período de tempo, tornandose ativas sob certas condições Bombs) Viroses seqüência de código inserida em um programa (Viruses) executável; Quando o programa é executado, o código do vírus também é executado, copiando a si mesmo para outros programas Vermes programas que executam de forma independente, (Worms) viajando de uma máquina para outra através da rede Cavalos de programas que assemelham-se com um programa que Tróia (Trojan o usuário deseja executar (um jogo, um editor, o programa de login); Enquanto aparente fazer o que o Horses) usuário quer, está fazendo algo diferente Bactéria programas cuja única proposta é a replicação; (Rabbits) Reproduzem-se exponencialmente, consumindo memória, CPU, disco, etc. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 4 REDES DE COMPUTADORES ! Origem: (a) externa (através da rede); (b) interna (através da rede interna e/ou por meio de acesso físico). ! Como tentar evitar ataques externos? ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ! Melhoras senhas; Atenção permanente do administrador; Configuração da rede visando a segurança do sistema; Usar ferramentas de monitoração; Implantar as correções (patches) do sistema; Bloquear conexões e origens indesejadas; Usar paredes corta-fogo (Firewalls); Usar modems com recurso de chamada reversa (call-back). Como tentar evitar ataques internos? ♦ ♦ ♦ ♦ Bloquear o acesso físico as instalações; Criar uma política de segurança; Usar criptografia; Não abusar de programas de domínio público (p.ex. FTP anônimo). © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 5 REDES DE COMPUTADORES Segurança de Senhas ! "Armado de um dicionário de 250.000 palavras, um cracker pode comparar todas as suas codificações de palavras com aquelas de um cadastro de senhas em pouco mais de 5 minutos, usando uma única estação de trabalho". ! Como elaborar senhas boas? A tabela a seguir dá uma idéia inicial. Item Descrição 1 Usar geradores automáticos de senhas (p.ex. PrKv-10b2) 2 Substituir letras por números em senhas fáceis de memorizar (p.ex. w1nd0ws) 3 Substituir letras por caracteres especiais em senhas fáceis de memorizar (p.ex. w!ndow$) 4 Usar algumas letras em maiúsculo na senha (p.ex. WinDowS) 5 Usar método simples de criptografia só conhecido por você (banana = edqdqd) 6 Usar combinações de letras e abreviaturas (p.ex. peter@DSC) 7 Usar iniciais de frases (p.ex. Esqueci da senha de novo! = edsdn! 8 Combinar todos os anteriores © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 6 REDES DE COMPUTADORES SERVIÇOS BÁSICOS DE REDE DNS – Domain Name Service Conceituação ! O esquema de endereçamento TCP/IP prevê que cada elemento da rede seja identificado de forma única através de um número – o endereço IP; ! Trabalhar com números é mais natural para as máquinas, mas as pessoas preferem trabalhar com nomes; é muito mais fácil lembrar, por exemplo, que informações sobre a Universidade Federal da Paraíba estão disponíveis na máquina www.ufpb.br ao invés da máquina 150.165.132.1. ! Guardar uma tabela com todos os nomes e números de máquinas da Internet em cada máquina conectada à rede é impossível (não só pelo tamanho, como pela velocidade de atualização da base para mantê-la consistente); © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 7 REDES DE COMPUTADORES ! Como resolver o problema? Criar um mecanismo (ou serviço) que permita que o mapeamento de nomes em números seja feito de forma distribuída, com muitos computadores (servidores) na rede “tomando conta” de quantidades mais manipuláveis de nomes; ! Idéia ! Organizar a Internet em Domínios Administrativos e criar um banco de dados hierárquico, distribuído, onde exista um ou mais servidores em cada nível da hierarquia, responsáveis por fornecer informações sobre nomes que se situam abaixo desse ponto da hierarquia (apenas um nível). ! A definição de domínios administrativos e a imposição de que não se cadastre equipamentos e subdomínios com o mesmo nome em um domínio, evita a utilização de um mesmo nome para mais de um equipamento na rede. ! O nome de todo equipamento na rede vai ser composto de um nome local (que pode se repetir em domínios diferentes), seguido por uma hierarquia de domínios; o nome completo do equipamento passa a ser seu ‘Nome de Domínio Totalmente Qualificado’ – “Fully Qualified Domain Name – FQDN”. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 8 REDES DE COMPUTADORES ! Domínios na Internet refletem uma organização institucional e/ou geográfica; nos Estados Unidos tem-se, por exemplo: Domínio .mil .edu .com .gov .org .net ! Tipo de Instituição Instituições com fins militares Instituições educacionais Instituições comerciais Instituições governamentais Instituições nãogovernamentais Instituições ligadas à rede Exemplo antiSaddan.mil berkeley.edu microsoft.com whitehouse.gov linux.org internic.net No Brasil, tem-se uma organização semelhante, acrescentando-se o sufixo .br aos domínios anteriores: Domínio .mil.br .edu.br .com.br .gov.br .org.br .net.br Tipo de Instituição Instituições com fins militares Instituições educacionais Instituições comerciais Instituições governamentais Instituições nãogovernamentais Instituições ligadas à rede Exemplo emfa.mil.br pioXI.edu.br varig.com.br mare.gov.br atecel.org.br embratel.net.br © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 9 REDES DE COMPUTADORES . mil gov net com org edu gov br net dee pt fr ... com ufpb ufal . . . dsc ... prai floquinho IP=150.165.2.33 floquinho . dsc . ufpb . br = Nome de Domínio Totalmente Qualificado (único na Internet) mingau bidu Figura 1. Hierarquia de nomes na Internet © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 10 REDES DE COMPUTADORES ! Toda vez que alguém (em geral, software de aplicação) precisa descobrir o endereço IP associado a algum nome na rede, faz uma consulta padrão (consulta ao DNS direto) começando na raiz da hierarquia, descendo pelos ramos até encontrar a informação procurada ou descobrir que a mesma não existe na rede (ou não está cadastrada nos servidores de nomes). Pergunto: Qual é o endereço IP da máquina bidu.dsc.ufpb.br? Servidor DNS raíz (.) 2 3 Servidor DNS Brasil ( .br ) 4 1 10 Responde: É 150.165.2.75! Servidor DNS do meu domínio 5 6 Servidor DNS UFPB ( ufpb.br) 7 8 9 Servidor DNS DSC ( dsc.ufpb.br) Figura 2. Consulta ao DNS direto © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 11 REDES DE COMPUTADORES ! De modo semelhante, alguém pode querer saber qual é o nome associado à algum endereço IP. Nesse caso, faz uma consulta padrão (consulta ao DNS reverso) também começando pela raiz da hierarquia. Servidor DNS raíz (.) Pergunto: Qual é nome da máquina cujo endereço IP é 200.129.69.1? 2 arpa 3 1 6 Servidor DNS do meu domínio in-addr ... 150 Resposta: É server.fapesq.rpp.br! ... 165 5 4 151 166 200 ... ... 129 130 69 ns.ufpb.br responde pelo DNS reverso da classe B 150.165 admin.fapesq.rpp.br responde pelo DNS reverso da classe C 200.129.69 Figura 3. Consulta ao DNS reverso © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 12 REDES DE COMPUTADORES SMTP – SIMPLE MAIL TRANSPORT PROTOCOL ≡ Correio Eletrônico Conceituação ! O serviço de correio eletrônico permite a troca de informação (mensagens, documentos, etc.) de forma rápida e conveniente entre dois ou mais usuários da Internet; ele provê comunicação entre dois pontos distintos na rede, mesmo que o destino não esteja ativo no momento do envio da informação. ! O serviço é bastante semelhante ao serviço de correio postal, podendo ser feitas, inclusive, várias analogias entre elementos atuantes no correio postal e no correio eletrônico; em ambos, temos: ♦ ♦ ♦ ♦ ♦ Nome e endereço do remetente; Nome e endereço do destinatário; Agente de coleta/exibição de correspondência; Agente de despacho e recepção de correspondência; Agente de entrega de correspondência. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 13 REDES DE COMPUTADORES conexão TCP para usuário envia agente de transporte (cliente) fila de saída mensagem mensagens saintes interface com o usuário conexão TCP para usuário recebe caixas postais agente de entrega mensagem fila de entrada agente de transporte (servidor) mensagens entrantes Figura 4. Esquema conceitual do serviço de correio eletrônico ! As interfaces com o usuário mais comuns no ambiente UNIX são: mail, elm, pine, mailtool. ! O agente de transporte mais comum no ambiente UNIX é o programa sendmail. ! agente de entrega varia de acordo (Internet, Uucp). com a origem da mensagens © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 14 REDES DE COMPUTADORES ! Basicamente, o sendmail é responsável por: ♦ ♦ ♦ ♦ ♦ Aceitar mensagens das interfaces (agentes) do usuário; Reescrever os endereços de acordo com o agente de entrega adequado; Encaminhar mensagens saíntes aos destinos; Receber mensagens entrantes das origens; Escolher o agente de entrega apropriado para as mensagens entrantes. Endereços Eletrônicos ! Para identificar usuários em um ambiente computacional, estabeleceu-se uma convenção que define um endereço eletrônico como sendo: usuário @ domínio ou usuário @ máquina . domínio ! A primeira forma é preferível porque abstrai o nome da máquina do endereço do usuário (a máquina pode deixar de existir que o endereço do usuário continua válido). © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 15 REDES DE COMPUTADORES Formato de Mensagens ! Mensagens enviadas/recebidas pelo correio eletrônico têm um formato padrão. cabeçalho corpo From xuxa @ xuxapark.com.br Mon Feb 7 10:05:30 2000 Delivery-Date: Sat, 07 Mon 2000 10:05:20 BSB Return-Path: [email protected] Received: from mail.xuxapark.com.br (201.202.203.254) by mail.sua_casa.com.br (8.8.5/8.8.5) id AA00123; Mon 7 feb 2000 10:05:10 BSB Received: from camarim.xuxapark.com.br (201.202.203.1) by mail.xuxapark.com.br (8.8.5/8.8.5) id AA00123; Mon 7 feb 2000 09:15:45 BSB Date: Mon, 7 feb 2000 09:15:10 BSB From: [email protected] (Xuxa Meneguel) Message-Id: <[email protected]> Subject: alo baixinho! To: seu_filho@sua_casa Ola baixinho! Como vai você? Figura 5. Formato de mensagens © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 16 REDES DE COMPUTADORES HTTP – Hiper Text Transfer Protocol / WWW – World Wide Web Conceituação ! O sistema WWW define um mecanismo de busca e recuperação de informação baseado no conceito de hipertexto/hipermídia; ! Através dele é possível a recuperação de informação na forma de texto, imagens (estáticas e animadas) e sons na rede, em uma estrutura cliente/servidor onde o servidor armazena um conjunto de arquivos de dados que são transferidos para o cliente (disponível em várias plataformas) sob demanda; ! Os arquivos de dados (texto) são armazenados no servidor na linguagem HTML (HyperText Makup Language); ! O sistema propõe uma forma de identificação de servidores, serviços e arquivos de modo universal através do localizador universal de recursos (Universal Resource Locator – URL); protocolo://servidor[:porta]/caminho/arquivo © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 17 REDES DE COMPUTADORES ! Protocolo indica o serviço desejado; pode ser: ♦ ♦ ♦ ♦ ♦ http: para Hypertext Transfer Protocol ftp: para File Transfer Protocol mailto: para correio eletrônico telnet: para terminal remoto file: para arquivo local ! Servidor[:porta] indica o endereço (FDQN ou IP) do servidor desejado (e a porta, opcionalmente; default é 80); ! Caminho: indica o caminho (“path”) dentro do sistema de arquivos do servidor; ! Arquivo: indica o arquivo desejado; ! Exemplos: ♦ ♦ ♦ http://www.dsc.ufpb.br http://www.copex.dsc.ufpb.br ftp://ftp.mcafee.com © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 18 REDES DE COMPUTADORES cliente WEB servidor WEB servidor HTTP depósito de arquivos Internet Figura 6. Esquema conceitual do HTTP/WEB ! O cliente WEB disponibiliza para o usuário, através de um navegador (browser), um mecanismo de busca, transferência e apresentação de dados contidos em servidores WEB; ! Diversos navegadores estão disponíveis: ♦ ♦ ♦ Mosaic; Netscape; Internet Explorer. © UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Aplicação * Pág. 19