CENTRO UNIVERSITÁRIO UNIVATES CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO SEGURANÇA DE TI NA PREFEITURA MUNICIPAL DE LAJEADO: A CAMADA DE ENLACE DE DADOS DA REDE LOCAL Cristiano André Lenz Lajeado, junho de 2017 Cristiano André Lenz SEGURANÇA DE TI NA PREFEITURA MUNICIPAL DE LAJEADO: A CAMADA DE ENLACE DE DADOS DA REDE LOCAL Trabalho de Conclusão de Curso apresentado ao Centro de Ciências Exatas e Tecnológicas do Centro Universitário UNIVATES, como parte dos requisitos para a obtenção do título de bacharel em Engenharia da Computação. Orientador: Luis Antônio Schneiders Lajeado, junho de 2017 RESUMO O desenvolvimento e abrangência das redes de computadores atualmente refletem na imprescindibilidade da segurança destas para evitar as mais variadas formas de ameaças e ataques que podem causar grandes prejuízos nas organizações. A presente proposta consiste na avaliação das ameaças associadas às redes de acesso local, considerando a camada de enlace de dados do modelo de referência RM-OSI/ISO. Com base nesta avaliação inicial, são produzidos ataques na infraestrutura de rede da Prefeitura Municipal de Lajeado, visando a identificação das principais vulnerabilidades de cada ameaça e também as possíveis alternativas de mitigação. Para esse propósito são considerados ataques de falsificação de endereço MAC (MAC spoofing), MAC address table overflow, ataques ao serviço DHCP (dentre eles o DHCP starvation e o rogue DHCP server), ataque ao protocolo ARP (ARP spoofing), ataque ao spanning tree, tempestade de broadcast e ataque de VLAN hopping utilizando switch spoofing e double tagging. São propostas e aplicadas soluções eficazes de contramedida para cada ataque realizado com sucesso. Por fim, é realizada uma análise de eficiência das contramedidas, apresentando os resultados dessa implementação e comprovando que ocorreu um aumento na segurança da rede. Palavras-chaves: Segurança em redes. Redes de computadores. Camada de enlace de dados. Ameaças. Ataques. ABSTRACT The development and coverage of the currently computer networks reflects the indispensability of these security to prevent the several forms of threats and attacks which can cause huge losses in organizations. The present proposal consists of the evaluation of the threats associated to local access networks, considering the data link layer of the RM-OSI/ISO reference model. Based on this initial evaluation, attacks are generated on the Lajeado City Hall network infrastructure, aiming to identify the main vulnerabilities of each threat and also possible mitigation alternatives. For this purpose are considered MAC spoofing attacks, MAC address table overflow, DHCP service attacks (including DHCP starvation and rogue DHCP server), attack on the ARP protocol (ARP spoofing), spanning tree attack, broadcast storm and VLAN hopping attack using switch spoofing and double tagging. Effective countermeasure solutions are proposed and applied for each successful attack. Finally, an analysis of the efficiency of the countermeasures is carried out, presenting the results of this implementation and proving that there has been an increase in the security of the network. Keywords: Network security. Computer networks. Data link layer. Threats. Attacks. LISTA DE FIGURAS Figura 1 - Pirâmide ou tríade da segurança da informação ...................................................... 24 Figura 2 - Incidentes reportados ao CAIS por ano ................................................................... 30 Figura 3 - Total de incidentes reportados ao CERT.br por ano ................................................ 31 Figura 4 - Incidentes reportados em 2015 (tipos de ataque acumulados) ................................ 31 Figura 5 - Incidentes reportados ao CERT.br de janeiro a dezembro de 2015......................... 31 Figura 6 - Exemplo de tabela CAM.......................................................................................... 39 Figura 7 - Visualização do esquema unicast ............................................................................ 40 Figura 8 - Visualização do esquema broadcast ........................................................................ 41 Figura 9 - Visualização do esquema multicast ......................................................................... 42 Figura 10 - As quatro camadas conceituais do TCP/IP relacionadas às do RM-OSI/ISO ....... 45 Figura 11 - Momento do ataque MAC spoofing em que o atacante lança na rede um pacote .. 52 Figura 12 - Momento do ataque MAC spoofing em que a tabela CAM é atualizada ............... 53 Figura 13 - Broadcast na rede em busca da estação MAC B ................................................... 55 Figura 14 - Atualização da CAM table ..................................................................................... 55 Figura 15 - Operação normal de uma CAM table ..................................................................... 55 Figura 16 - Envio de múltiplos pacotes com endereços MAC aleatórios ................................ 56 Figura 17 - Switch realizando inundação (flooding) ................................................................. 56 Figura 18 - Ataque de DHCP Starvation sendo executado ...................................................... 59 Figura 19 - Supressão de broadcast realizado pelo storm control ........................................... 65 Figura 20 - Spanning tree sendo executado.............................................................................. 66 Figura 21 - Ataque de VLAN hopping com DTP falso ............................................................. 69 Figura 22 - Ataque de VLAN hopping usando double tagging ................................................. 70 Figura 23 - Diagrama da rede da Prefeitura Municipal abordada como cenário ...................... 77 Figura 24 - Cenário de testes para aplicação do MAC spoofing no Cisco Packet Tracer ........ 80 Figura 25 - Tabela CAM do switch 3Com antes da execução do MAC spoofing .................... 80 Figura 26 - Execução de MAC spoofing no PC “A”................................................................. 82 Figura 27- Endereço MAC do PC “A” antes e depois da execução do MAC spoofing............ 82 Figura 28 - Tabela CAM do switch 3Com após a execução do MAC spoofing ....................... 82 Figura 29 - PC “A” recebendo ping do PC “C” após a execução do MAC spoofing ............... 83 Figura 30 - Requisição de ping sendo enviado ao PC “A” após o MAC spoofing ................... 83 Figura 31 - Resposta de ping sendo enviado pelo PC “A” após o MAC spoofing ................... 83 Figura 32 - Lock-learning aplicado na porta 2 do switch core ................................................. 85 Figura 33 - Alterando o MAC para execução do MAC spoofing no switch core ..................... 85 Figura 34 - MAC falsificado aplicado na interface do notebook ............................................. 86 Figura 35 - MAC spoofing não funcionando no switch core .................................................... 86 Figura 36 - Cenário de testes para MAC address table overflow no Cisco Packet Tracer ...... 87 Figura 37 - Tabela de endereços MAC no switch 3Com antes do MAC table overflow .......... 88 Figura 38 - Saída do comando “macof” para execução do MAC address table overflow ........ 88 Figura 39 - Pacotes criados pelo “macof” para execução do MAC address table overflow ..... 88 Figura 40 - Tabela CAM do switch 3Com inundada ................................................................ 89 Figura 41 - Switch TP-Link TL-SF1024 funcionando como hub após ataque ......................... 89 Figura 42 - FDB do switch core com os endereços MAC falsos em blackhole ....................... 91 Figura 43 - Ambiente de testes para DHCP starvation feito no Cisco Packet Tracer ............. 92 Figura 44 - Tabela de clientes DHCP antes da execução do DHCP starvation ....................... 93 Figura 45 - Execução do ataque de DHCP starvation no PC “B” ........................................... 93 Figura 46 - Pacotes de DHCP discover do ataque de DHCP starvation .................................. 93 Figura 47 - Pacotes de DHCP offer no ataque de DHCP starvation ........................................ 94 Figura 48 - Parte da tabela de clientes DHCP após ataque de DHCP starvation..................... 94 Figura 49 - Switch core bloqueando os endereços MAC falsos do DHCP starvation ............. 95 Figura 50 - DHCP offer sendo enviado pelo rogue DHCP server ........................................... 96 Figura 51 - Computador na lista de clientes do rogue DHCP server ....................................... 97 Figura 52 - ACLs de filtro de pacotes DHCP nas portas 67 e 68 ............................................. 98 Figura 53 - DHCP snooping aplicado na VLAN “SAUDE” do switch core ........................... 99 Figura 54 - Violação de servidor DHCP na porta 15 do switch core ..................................... 100 Figura 55 - Execução do ARP spoofing no PC “C” ................................................................ 101 Figura 56 - Pacote ARP de falsificação enviado pelo PC “C” ............................................... 102 Figura 57 - Tabela ARP do PC “A” antes e depois do ataque de ARP spoofing .................... 102 Figura 58 - Pacote de requisição de ping do PC “A” sendo recebido pelo PC “C” ............... 103 Figura 59 - Pacote de requisição sendo enviado pelo PC “C” para o PC “B”........................ 103 Figura 60 - Pacote de resposta de ping do PC “B” sendo recebido pelo PC “C” ................... 103 Figura 61 - Parte da tela que mostra a aplicação do ARP validation ..................................... 105 Figura 62 - Logs de violação de ARP ao aplicar o ARP spoofing .......................................... 105 Figura 63 - Cenário de testes para aplicação do Broadcast Storm no Cisco Packet Tracer .. 107 Figura 64 - Pacotes de broadcast de ping inundando a rede .................................................. 107 Figura 65 - Pacotes de broadcast de ARP inundando a rede ................................................. 108 Figura 66 - STP habilitado no switch core ............................................................................. 110 Figura 67 - Quantidade de pacotes de Flood Rate Exceeded na porta 15 .............................. 111 Figura 68 - Log de ativação de rate-limit flood na porta 15 ................................................... 111 Figura 69 - Cenário de testes para ataque ao spanning tree no Cisco Packet Tracer ............ 112 Figura 70 - STP funcionando com o switch “A” de root bridge ............................................ 113 Figura 71 - Pacote do tipo BPDU com o STP funcionando com o root bridge correto ......... 113 Figura 72 - Execução do ataque ao spanning tree no PC “A” ............................................... 114 Figura 73 - Pacotes de BPDU com o root bridge falso .......................................................... 114 Figura 74 - Root bridge falso aplicado ao STP do switch “A” ............................................... 114 Figura 75 - ACL criada para bloqueio de BPDU ................................................................... 115 Figura 76 - Log da aplicação da ACL na porta 23 do switch core ......................................... 116 Figura 77 - Contagem de pacotes BPDU negados pela ACL na porta 23 .............................. 116 Figura 78 - Log de evento de acionamento da ACL ............................................................... 116 LISTA DE TABELAS Tabela 1 - Listas de VLANs existentes no cenário de implementação .................................... 78 LISTA DE ABREVIATURAS E SIGLAS ACL Access Control List ARP Address Resolution Protocol BPDU Bridge Protocol Data Unit CAIS Centro de Atendimento a Incidentes de Segurança CAM Content Addressable Memory CERT.br Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil CETIC.br Centro de Estudos sobre as Tecnologias da Informação e da Comunicação DAI Dynamic ARP Inspection DHCP Dynamic Host Configuration Protocol DMZ DeMilitarized Zone DoS Denial of Service FDB Forwarding Database ICMP Internet Control Message Protocol ID Número Identificador IEEE Instituto de Engenheiros Eletricistas e Eletrônicos IP Internet Protocol IPv4 Internet Protocol version 4 IPv6 Internet Protocol version 6 ISO International Organization for Standardization LAN Local Area Network MAC Media Access Control MAN Metropolitan Area Network NIC.br Núcleo de Informação e Coordenação do Ponto BR OSI Open Systems Interconnection PC Personal Computer PPS Packets Per Second RM-OSI/ISO Reference Model - Open Systems Interconnection / International Organization for Standardization RSTP Rapid Spanning Tree Protocol STP Spanning Tree Protocol TCP Transmission Control Protocol TCP/IP Transmission Control Protocol / Internet Protocol UDP User Datagram Protocol VLAN Virtual Local Area Network WAN Wide Area Network SUMÁRIO 1 INTRODUÇÃO ................................................................................................................... 13 1.1 Tema .................................................................................................................................. 15 1.2 Problema de pesquisa ....................................................................................................... 15 1.3 Hipótese ............................................................................................................................. 15 1.4 Objetivo geral .................................................................................................................... 16 1.5 Objetivos específicos ......................................................................................................... 16 1.6 Justificativa e relevância do trabalho ............................................................................. 16 1.7 Delimitação do trabalho ................................................................................................... 18 1.8 Estrutura do trabalho ...................................................................................................... 18 2 REVISÃO BIBLIOGRÁFICA ........................................................................................... 20 2.1 Segurança em redes de computadores ............................................................................ 20 2.1.1 Segurança física, lógica e operacional.......................................................................... 22 2.1.2 Política de segurança ..................................................................................................... 23 2.1.3 Aspectos e serviços básicos de segurança .................................................................... 24 2.1.4 Ameaças .......................................................................................................................... 26 2.1.5 Riscos .............................................................................................................................. 27 2.1.6 Vulnerabilidades ............................................................................................................ 28 2.1.7 Ataques ........................................................................................................................... 28 2.1.8 Cenário nacional de incidentes de segurança em redes ............................................. 29 2.2 Redes de computadores .................................................................................................... 32 2.2.1 Endereçamento de hardware na rede ........................................................................... 33 2.2.2 LAN ................................................................................................................................. 35 2.2.2.1 Ethernet ........................................................................................................................ 35 2.2.2.1.1 Ethernet comutada e o switch .................................................................................. 36 2.2.2.1.2 Tipos de transmissão de dados ............................................................................... 40 2.2.3 VLANs como proposta de organização dos fluxos internos ...................................... 42 2.2.4 Modelo de referência em camadas TCP/IP ................................................................. 44 2.2.4.1 Camada de acesso à rede............................................................................................ 47 2.2.4.2 Camada de inter-redes ............................................................................................... 48 2.2.4.2.1 IP ............................................................................................................................... 49 2.2.4.3 Camada de transporte ................................................................................................ 50 2.2.4.4 Camada de aplicação .................................................................................................. 51 2.3 Ameaças existentes na camada de enlace de dados ....................................................... 51 2.3.1 Falsificação de endereço MAC (MAC spoofing) ......................................................... 52 2.3.1.1 Métodos de prevenção para a falsificação de endereço MAC (MAC spoofing) .... 54 2.3.2 MAC address table overflow ........................................................................................... 54 2.3.2.1 Métodos de prevenção de MAC address table overflow ........................................... 57 2.3.3 Ataques ao serviço DHCP ............................................................................................. 57 2.3.3.1 DHCP starvation .......................................................................................................... 59 2.3.3.2 Rogue DHCP server .................................................................................................... 60 2.3.3.3 Métodos de prevenção para ataques ao serviço DHCP ........................................... 61 2.3.4 Ataque ao protocolo ARP (ARP spoofing) ................................................................... 62 2.3.4.1 Métodos de prevenção para o ARP spoofing ............................................................ 63 2.3.5 Tempestade de broadcast (broadcast storm)................................................................. 64 2.3.5.1 Métodos de prevenção para a tempestade de broadcast (broadcast storm) ............ 64 2.3.6 Ataque ao spanning tree ................................................................................................ 65 2.3.6.1 Métodos de prevenção para ataque ao spanning tree .............................................. 67 2.3.7 Ataque de VLAN hopping.............................................................................................. 68 2.3.7.1 VLAN hopping com switch spoofing .......................................................................... 68 2.3.7.2 VLAN hopping com double tagging ........................................................................... 70 2.3.7.3 Métodos de prevenção para VLAN hopping ............................................................. 71 3 MATERIAIS E MÉTODOS ............................................................................................... 72 4 CENÁRIO ............................................................................................................................ 76 4.1 switch core .......................................................................................................................... 76 4.2 VLANs ............................................................................................................................... 77 5 IMPLEMENTAÇÃO DAS TÉCNICAS DE ATAQUE E DEFESA E ANÁLISE DOS RESULTADOS ....................................................................................................................... 79 5.1 Falsificação de endereço MAC (MAC spoofing) ............................................................ 79 5.1.1 Aplicando defesa ao MAC spoofing na infraestrutura operacional da Prefeitura .. 84 5.1.2 Análise dos resultados de prevenção ao MAC spoofing.............................................. 86 5.2 MAC address table overflow .............................................................................................. 87 5.2.1 Aplicando defesa ao MAC address table overflow na estrutura operacional da Prefeitura ................................................................................................................................. 89 5.2.2 Análise dos resultados de prevenção ao MAC address table overflow ....................... 91 5.3 DHCP starvation ................................................................................................................ 92 5.3.1 Aplicando defesa ao DHCP starvation na infraestrutura operacional da Prefeitura .................................................................................................................................................. 94 5.3.2 Análise dos resultados de prevenção ao DHCP starvation ......................................... 95 5.4 Rogue DHCP server .......................................................................................................... 96 5.4.1 Aplicando defesa ao rogue DHCP server na infraestrutura operacional da Prefeitura ................................................................................................................................. 97 5.4.2 Análise dos resultados de prevenção ao rogue DHCP server ................................... 100 5.5 Ataque ao protocolo ARP (ARP spoofing) .................................................................... 100 5.5.1 Aplicando defesa ao ARP spoofing na infraestrutura operacional da Prefeitura.. 103 5.5.2 Análise dos resultados de prevenção ao ARP spoofing ............................................. 105 5.6 Tempestade de broadcast (broadcast storm).................................................................. 106 5.6.1 Aplicando defesa ao broadcast storm na estrutura operacional da Prefeitura ....... 108 5.6.2 Análise dos resultados de prevenção ao broadcast storm ......................................... 111 5.7 Ataque ao spanning tree ................................................................................................. 112 5.7.1 Aplicando defesa ao ataque ao spanning tree na infraestrutura operacional da Prefeitura ............................................................................................................................... 115 5.7.2 Análise dos resultados de prevenção ao ataque ao spanning tree ........................... 117 6 CONCLUSÃO .................................................................................................................... 118 REFERÊNCIAS.................................................................................................................... 120 13 1 INTRODUÇÃO Conforme é exposto por Comer (2007), as redes de computadores têm crescido explosivamente e a comunicação via computador transformou-se em uma parte essencial da infraestrutura de todos. Portanto, conforme reportado por Tanenbaum e Wetherall (2011), como milhões de cidadãos comuns usam as redes para os mais variados fins, surge um ponto fraco atrás de outro, tornando a segurança um problema de grandes proporções e, segundo Júnior, Suavé, Moura e Teixeira (1999), um dos aspectos mais importantes dos ambientes de serviços em redes. É corroborado por Tanenbaum e Wetherall (2011) que, para que uma rede torne-se mais segura, com frequência é necessário lidar com adversários inteligentes, dedicados, e às vezes, muito bem subsidiados, além do fato de que, segundo Nakamura e Geus (2007), quanto maior a evolução nos avanços tecnológicos, maiores são as vulnerabilidades que aparecem e que devem ser tratadas com a sua devida atenção. Isto leva Campbell (1997) a afirmar que a segurança em uma rede de computadores é uma necessidade que, conforme exposto por Nakamura e Geus (2007), vem transcendendo o limite da produtividade e da funcionalidade pois, enquanto a velocidade e a eficiência em todos os processos de negócios significam uma vantagem competitiva, a falta de segurança pode resultar em grandes prejuízos e na falta de novas oportunidades de negócios. Portanto, a segurança de uma estrutura de rede é essencial para o bom andamento das organizações, fazendo com que elas precisem ser protegidas. No que tange essa segurança, Nakamura e Geus (2007) exemplificam que, de tempos em tempos, os noticiários são compostos por alguns crimes “da moda”, que vêm e vão. Como 14 resposta, o policiamento é incrementado, o que resulta na inibição daquele tipo de delito. Os criminosos passam então a praticar um novo tipo de crime, que acaba virando notícia, de tal forma que faz com que o ciclo continue. Não diferente, esse mesmo comportamento pode ser observado no mundo da informação, de modo que também se deve ter em mente que a segurança deve ser contínua e evolutiva, já que o “arsenal” de defesa usado pela organização pode funcionar contra determinados tipos de ataques, porém, ser falho contra novas técnicas desenvolvidas para driblar esse “arsenal” de defesa. É observado por Nakamura e Geus (2007) que o crescimento da importância e até mesmo da dependência do papel da tecnologia nos negócios, somado ao aumento da facilidade de acesso e ao avanço das técnicas usadas para ataques e fraudes eletrônicos, resultam no aumento do número de incidentes de segurança. Porém, é interessantemente também demonstrado por Nakamura e Geus (2007) que os ataques que vêm causando os maiores problemas para as organizações são aqueles que acontecem justamente a partir de sua própria rede, ou seja, os ataques internos. Este fato faz com que a complexidade da segurança na rede aumente, pois a proteção deve ocorrer não somente contra os ataques vindos de rede externa, mas também contra aqueles que podem ser considerados internos. Em 2007 foi apontado por Nakamura e Geus (2007) que, apesar de as pesquisas mostrarem que o número de ataques partindo da Internet era maior do que os ataques internos, os maiores prejuízos são causados por esses. Quanto aos incidentes internos, Ribeiro (2006) cita que existe pouca preocupação no que diz respeito aos recursos de segurança dos equipamentos de conectividade das redes locais. Esta situação é uma das principais causas desse problema, pois faz com que, não só a quantidade de ataques provenientes da rede local seja maior, como também seja maior o seu poder de destruição, já que o atacante muitas vezes vai dispor de informações privilegiadas que um invasor externo normalmente não possui. Portanto, neste trabalho é proposto a realização de um projeto de segurança em rede de computadores que abranja a camada de enlace de dados, também conhecida como ligação de dados, link de dados ou nível 2, do modelo de referência Reference Model - Open Systems Interconnection / International Organization for Standardization (RM-OSI/ISO), também conhecido apenas como modelo Open Systems Interconnection (OSI). Durante o trabalho é abordada esta camada estudada, elencando as principais ameaças e ataques que utilizam as vulnerabilidades de segurança dos equipamentos no nível de enlace de dados para prejudicar 15 uma rede de computadores. Posteriormente estas ameaças são executadas com sucesso em um ambiente de testes vulnerável. São buscadas soluções de contramedida para evitar ou mitigar cada um destes ataques e ameaças. E finalmente, utilizando o ambiente real de rede de computadores da Prefeitura Municipal de Lajeado, são aplicadas as defesas encontradas e então é realizada uma análise de eficiência delas, buscando os resultados dessa implementação e verificando se ocorreu um aumento na segurança da rede. 1.1 Tema O tema do trabalho consiste na análise das principais ameaças e ataques à segurança de rede de computadores existentes na camada de enlace de dados (nível 2) do modelo de referência RM-OSI/ISO, buscando defesas para cada uma destas. 1.2 Problema de pesquisa Quais são as ameaças e os ataques existentes na camada de enlace (nível 2) do modelo de referência RM-OSI/ISO em uma rede local e como mitigar estes no ambiente operacional da sede administrativa da Prefeitura Municipal de Lajeado, para se obter um ambiente de rede de computadores mais seguro? 1.3 Hipótese Acredita-se que as principais ameaças, vulnerabilidades e ataques existentes na camada de enlace de dados (nível 2) do modelo de referência RM-OSI/ISO podem ser definidas e compreendidas. Devido a rede local estudada possuir como nó central um switch gerenciável, também supõem-se que é possível mitigar, ao menos parcialmente, as principais ameaças encontradas. Desta forma, presume-se que é possível alcançar um ambiente de rede local mais seguro na sede administrativa da Prefeitura Municipal de Lajeado através deste trabalho. 16 1.4 Objetivo geral Objetiva-se propor e implementar um ambiente de redes de computadores mais seguro em relação a ameaças da camada de enlace de dados (nível 2) do modelo de referência RM- OSI/ISO, mitigando ao máximo o risco de concretização de uma ameaça a partir da exploração das vulnerabilidades inerentes aos elementos, protocolos, serviços e hardware desta camada. 1.5 Objetivos específicos Como objetivos específicos do trabalho podem ser citados: a) Pesquisar bibliografias que abordem este assunto, a fim de ressaltar a importância deste trabalho na área de segurança em redes de computadores. b) Identificar as principais ameaças e ataques existentes na camada de enlace de dados (nível 2) de uma rede de computadores. c) Buscar soluções efetivas para eliminar ou mitigar os riscos provenientes destas ameaças e vulnerabilidades, reduzindo ou eliminando o sucesso em ataques à rede de acesso local. d) Analisar o resultado das ações de segurança realizadas na rede de computadores da Prefeitura Municipal de Lajeado, apresentando os resultados obtidos no processo. 1.6 Justificativa e relevância do trabalho Os dados estatísticos levantados pelo Centro de Estudos sobre as Tecnologias da Informação e da Comunicação (CETIC.br) (2010) entre 2006 e 2010 mostram que, quanto maior for a empresa (ou maior for o cenário de funcionários conectados à rede nesta empresa), maior é a chance de ocorrer um acesso interno não autorizado e menor é o porcentual de acesso externo não autorizado. Porém, estas categorias de problemas de segurança encontrados em empresas, não foram mais listadas nas estatísticas do CETIC.br a partir de 2010, o que expõe uma carência de dados quanto aos tipos de ataques mais empregados atualmente. 17 Conforme dados fornecidos pelo Centro de Atendimento a Incidentes de Segurança (CAIS) (2016), os incidentes de segurança reportados, de forma geral, vêm aumentando em grande quantidade nos últimos anos. Entretanto, apesar do Núcleo de Informação e Coordenação do Ponto BR (NIC.br) (2016) destacar, com base nos dados do Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil (CERT.br) (2016), que os incidentes de segurança reportados em 2015 diminuíram em aproximadamente 31% em relação a 2014, neste mesmo intervalo de período houve um crescimento em determinadas modalidades de ataques. De maneira geral, o CERT.br (2016) cita que os números de cada categoria de ataque relacionados também atestam que há uma redução nos relatos de tentativas com sucesso de ataques tradicionais, que tem como propósito a infiltração em uma organização passando por “brechas no firewall”. Em contrapartida houve um crescimento, de 2014 a 2015, de 47% nas notificações de ataques que se encaixam na categoria de “outros”, o que demonstra que a forma de execução de ataques está migrando para formas alternativas, onde a segurança em redes é mais negligenciada. Porém estas entidades referidas, que mensuram e tratam dos incidentes de segurança existentes no Brasil, não oferecem dados de incidentes e ataques relacionados especificamente ao nível 2 (camada de enlace de dados) de uma rede de computadores ou de ataques recentes que sejam oriundos da rede local interna. Este fator, somado aos dados já mencionados anteriormente, acabam por demonstrar a relevância da proposta deste trabalho. A implementação deste trabalho se justifica, pois, considerando os vários projetos de segurança em redes de computadores, eles se concentram em tratar de outros aspectos da área de segurança em redes em sua maioria, como os projetos que abordam especificamente a segurança em redes wireless (sem fio), como por exemplo os de Neto (2004), Andrade, Soares, Coutinho e Abelém (2004), Duarte (2003), Peres e Weber (2003), Gimenes (2005), Amaral e Maestrelli (2004), Bof (2010), Schweitzer, Sakuragui, Carvalho e Venturini (2005), Verissimo (2002), ou Silva e Souza (2003). Além destes, um grande número de trabalhos que abordam a segurança de redes trata especificamente de firewall, podendo ser citados os artigos de Hunt (1998), Ioannidis, Keromytis, Bellovin e Smith (2000), Al-Shaer, Hamed, Boutaba e Hasan (2005), Al-Shaer e Hamed (2004), Lyu e Lau (2000), Wool (2004), Fernandes e Zanona (2010), Alécio e Pereira (2014), Sampaio (2011), Baqui (2012) e Gheorghe (2006). 18 Quanto ao objetivo específico da investigação deste trabalho, cita-se apenas o trabalho de Ribeiro (2006), que descreve as vulnerabilidades dos protocolos e equipamentos da camada 2, citando os ataques clássicos nesta camada, porém sem apresentar defesas específicas para cada um dos ataques citados, tampouco trazendo a implementação destas em um ambiente operacional. Considerando estes fatores, os elementos apresentados nesta seção justificam e apontam a necessidade de novos estudos quanto aos problemas de segurança da camada de enlace de dados (nível 2) do modelo de referência RM-OSI/ISO, bem como aos métodos de prevenção. 1.7 Delimitação do trabalho São abordadas ameaças, ataques, vulnerabilidades e defesas de segurança somente relacionados ao nível 2 do modelo de referência RM-OSI/ISO (camada de enlace de dados) de uma rede local, consequentemente limitando-se aos equipamentos que sejam relevantes apenas a este nível. Também, para implementação deste trabalho é considerada apenas a infraestrutura de rede da sede administrativa da Prefeitura Municipal de Lajeado e o seu ponto central, composto pelo switch core. 1.8 Estrutura do trabalho O presente trabalho é composto por sete capítulos, conforme descritos a seguir: O primeiro capítulo aborda a apresentação do trabalho em linhas gerais, introduzindo o mesmo, relatando o seu tema, problema de pesquisa, hipótese, objetivos gerais e específicos. Também é apresentada a justificativa que destaca a relevância do estudo para o campo científico. No segundo capítulo é realizada uma revisão bibliográfica sobre os fundamentos da segurança em redes de computadores, abordando as características que lhe dizem respeito, os termos que fazem parte dela e o cenário nacional de incidentes. Após é fundamentado o conceito teórico geral do que é uma rede de computadores e os principais aspectos que a compõe, além de demonstrar o modelo de referência em camadas. Esta revisão também 19 aborda as principais ameaças existentes relacionadas a camada de enlace de dados e os métodos de prevenção possíveis para mitigar cada uma destas ameaças. O capítulo três explica a metodologia de pesquisa empregada na elaboração do trabalho, classificando-a de acordo com cada aspecto do projeto proposto. Também são apresentados os equipamentos e as ferramentas utilizados no trabalho. O quarto capítulo é utilizado para descrever o atual cenário operacional da Prefeitura Municipal de Lajeado em que é implementado o projeto. No capítulo cinco são relacionadas as implementações das técnicas de ataque e defesa para cada uma das ameaças, e depois é analisado o resultado dessas implementações. No sexto capítulo são apresentadas as conclusões e considerações finais deste trabalho, relatando os resultados obtidos através da execução deste. O capítulo sete se destina a relacionar as referências bibliográficas utilizadas na elaboração deste documento. 20 2 REVISÃO BIBLIOGRÁFICA Nesta seção são abordados os fundamentos da segurança em Tecnologia da Informação, das redes de computadores e os ataques mais comuns, associados às redes locais, considerando a camada de enlace de dados do modelo OSI, além dos métodos de prevenção ou mitigação relacionados. 2.1 Segurança em redes de computadores De acordo com Soares, Lemos e Colcher (1995), o termo segurança é utilizado com o significado de minimizar a vulnerabilidade de bens (qualquer coisa de valor) e recursos, e, sendo assim, a segurança acaba sendo relacionada à necessidade de proteção contra o acesso ou a manipulação, intencional ou não, de informações confidenciais por elementos não autorizados, e a utilização não autorizada do computador ou de seus dispositivos periféricos. Além disso, Nakamura e Geus (2007) informam que seguir a concepção de que a segurança e o ambiente cooperativo devem andar juntos trará, além de bons negócios, grandes benefícios à economia global e também a garantia de sobrevivência. Segundo Tanenbaum e Wetherall (2011) a segurança é um assunto abrangente e contém inúmeros tipos de problemas. Já Comer (1998) destaca que a segurança em um ambiente de interligação em redes é, ao mesmo tempo, importante e difícil: importante devido a informação ter importância significativa e difícil porque requer um entendimento da ocasião e do modo como os participantes podem confiar um no outros, assim como uma compreensão dos detalhes técnicos do hardware da rede e dos protocolos. 21 Ainda se cita que a segurança é marcada pela evolução contínua, em concordância com Nakamura e Geus (2007), cujos novos ataques têm como resposta novas formas de proteção, que levam ao desenvolvimento de novas técnicas de ataques, de tal forma que se cria um ciclo. A segurança também deve ser contínua e evolutiva, já que o “arsenal” de defesa usado em uma organização pode funcionar contra determinados ataques, mas ser falho contra novas técnicas desenvolvidas para driblar esse “arsenal” de defesa. Comer (2007) ressalta que as redes não podem ser simplesmente classificadas como seguras ou não seguras, pois o termo não é absoluto, cabendo a cada organização definir o nível de acesso que é permitido ou negado. Isto se enfatiza pela afirmação de Ramos (2006) de que não existe segurança absoluta, já que, por mais medidas e precauções que sejam tomadas, jamais será possível endereçar todas as possíveis situações de prejuízo. Assim, Nakamura e Geus (2007) estipulam que afirmar que uma organização está 100% segura é, na realidade, um grande erro. Apesar disto, Comer (1998) destaca que, embora uma organização não possa impedir totalmente um crime, medidas básicas de segurança podem desencorajar ele, tornando-o significativamente mais difícil de ser impetrado. Conforme mencionado por Tanenbaum e Wetherall (2011), em sua forma mais simples, a segurança preocupa-se em impedir que pessoas mal intencionadas leiam ou, pior ainda, modifiquem secretamente mensagens enviadas a outros destinatários. Também ela possui a preocupação que as pessoas tentem ter acesso a serviços remotos que não estão autorizadas a usar. Além disso, a segurança lida com meios para saber se uma mensagem supostamente verdadeira é falsa. Finalmente, a segurança ainda trata de situações em que mensagens legítimas são capturadas e reproduzidas, além de lidar com pessoas que tentam negar o fato de ter enviado certas mensagens. Dessa maneira, Comer (1998) clarifica que segurança implica inclusive garantia da integridade de dados e proteção contra acesso não autorizado dos recursos do computador, contra pessoas investigando ou enviando mensagens falsas na rede e contra a interrupção de serviços. Assim, de acordo com Tanenbaum e Wetherall (2011), tornar uma rede segura envolve muito mais que apenas mantê-la livre de erros de programação, sendo necessário lidar com adversários inteligentes, dedicados e, às vezes, muito bem subsidiados, considerando o fato que a maior parte dos problemas de segurança é causada de forma proposital por pessoas mal intencionadas, que procuram obter algum benefício, chamar atenção ou prejudicar alguém. Isto converge para fomentar a condição de que, em conformidade com Tanenbaum e 22 Wetherall (2011), para manter uma rede segura, é necessário ter em mente que as medidas utilizadas para interromper a atividade de adversários eventuais terão pouco impacto sobre os adversários “mais espertos”. Concomitantemente, Comer (1998) traz à tona que a ideia de que um sistema de segurança só é tão fraco quanto seu ponto mais fraco é bastante conhecida e, conforme explicado por Ramos (2006) e por Nakamura e Geus (2007), não é por acaso que é no elo mais fraco da corrente que os ataques acontecem, ou ainda, citando diretamente, Ramos (2006, p. 24) declara que “a força de uma corrente é igual à força de seu elo mais fraco”. 2.1.1 Segurança física, lógica e operacional A fim de classificar a segurança, Comer (1998) introduz que fornecer segurança de informações requer proteção não apenas dos recursos físicos, como também dos recursos abstratos, o que entra em sincronia com o fato que a segurança pode ser dividida entre física e lógica. No que tange a segurança física, Soares, Lemos e Colcher (1995) explicam que medidas que garantem a integridade física dos recursos de um sistema são indispensáveis para assegurar a segurança de um sistema como um todo. Já Gil (2000) expõe que a segurança física corresponde à constatação de bom estado operacional dos recursos materiais (instalações, hardware, suprimentos) que compõem e dão sustentação aos sistemas de informações computadorizadas, enquanto Comer (1998) nota que, desta forma, a segurança física estende-se a cabos, pontes e roteadores que constituem a infraestrutura de uma rede. Portanto, conforme proposto por Comer (1998), embora a segurança física seja raramente mencionada, ela desempenha, na maioria das vezes, um papel preponderante no plano de segurança geral. No que se refere a segurança lógica, Gil (2000) orienta que ela diz respeito a alterações, modificações ou erros dos recursos tecnológicos (processos e resultados) componentes de certo sistema de informação computadorizado, sendo assim, de acordo com Campbell (1997), uma defesa em nível de software. Fazendo uma analogia entre ambas, Comer (1998) explica que, enquanto a segurança física geralmente classifica pessoas e recursos em categorias amplas, a segurança lógica geralmente precisa ser mais restritiva. 23 Alguns autores ainda trazem um terceiro tipo de segurança, a segurança operacional. Já que, conforme citado por Behringer (2016), os problemas operacionais são uma diferente categoria de segurança. Segundo Rigo e Oliveira (2010) a segurança operacional, ou humana, visa estipular normas de utilização a serem obedecidas pelas pessoas envolvidas em todo o processo tecnológico corporativo, sejam elas usuários leigos ou profissionais de TI. Complementando, para Behringer (2016) existem dois tipos de problemas de segurança operacional: o primeiro é o de erros de configuração acidentais, onde as falhas cometidas são acidentais por natureza, sendo, de longe, o tipo mais frequente de problemas operacionais. O segundo tipo de problemas de segurança operacional são os erros de configuração deliberados, sendo estes, portanto, deliberados por natureza, mas variando em seu grau de malignidade, sendo estes mais propensos a resultar em uma violação, uma vez que existe a intenção maliciosa com o objetivo de quebrar a política de segurança. 2.1.2 Política de segurança Quanto a necessidade de proteção, Soares, Lemos e Colcher (1995) atentam que ela deve ser estabelecida em termos das possíveis ameaças e riscos e dos objetivos de uma organização, formalizados nos termos de uma política de segurança, tal qual também é explicitado por Comer (1998), que cita que antes que uma organização possa reforçar a segurança da rede, ela deve assessorar os riscos e desenvolver uma política clara em relação ao acesso à proteção das informações. Conforme Nakamura e Geus (2007), a política de segurança trata do documento que norteará todas as ações relacionadas à segurança, sendo que esta consiste, de acordo com Júnior, Suavé, Moura e Teixeira (1999), em uma série de decisões que irão em conjunto determinar a postura de uma organização com relação à segurança. Soares, Lemos e Colcher (1995) ainda definem que uma política de segurança é um conjunto de leis, regras e práticas que regulam como uma organização gerencia, protege e distribui suas informações e recursos. Cabe ressaltar que Comer (1998) cita que essa política deverá explicitar quem terá acesso a cada setor da informação, as regras que alguém deve observar ao difundir a informação entre terceiros e uma declaração de como a organização vai reagir às violações, ou seja, em concordância com o que é dito por Júnior, Suavé, Moura e Teixeira (1999), essa política de segurança deve determinar os limites de tolerância e os níveis de respostas às violações que possam ocorrer. 24 2.1.3 Aspectos e serviços básicos de segurança Ramos (2006) informa que os principais aspectos da segurança da informação são basicamente três: confidencialidade, integridade e disponibilidade. Estes três aspectos formam o que é conhecido como pirâmide ou tríade da segurança da informação, que pode ser observada na Figura 1. Da mesma forma, Nakamura e Geus (2007) dividem as propriedades mais importantes para a segurança entre sigilo, integridade e disponibilidade. Figura 1 - Pirâmide ou tríade da segurança da informação Fonte: Comer (1998, p. 21). Ramos (2006) cita que, quando falamos de confidencialidade estamos, basicamente, falando de sigilo. Portanto, a confidencialidade, segundo Tanenbaum e Wetherall (2011), está relacionada ao fato de manter as informações longe de usuários não autorizados. Assim, conforme Comer (2007), a confidencialidade de dados se refere à proteção contra acesso não autorizado a dados, questionando se os dados estão protegidos contra acesso sem autorização, o que ainda é evidenciado por Ramos (2006), que reitera que preservar a confidencialidade de uma informação significa garantir que apenas as pessoas que devem ter conhecimento a seu respeito poderão acessá-la, sendo que essa afirmação se reforça ainda mais quando Soares, Lemos e Colcher (1995) citam que o serviço de confidencialidade fornece proteção aos dados intercambiados contra revelação não autorizada da informação neles transportada e Gil (2000) explica que, consequentemente, a ausência de confidencialidade compreende na quebra de sigilo do sistema computadorizado, seu processo e informações. A segunda propriedade, a da integridade de dados, é descrita por Comer (1998) como sendo a proteção contra mudanças não autorizadas, já de acordo com Júnior, Suavé, Moura e Teixeira (1999), a integridade de dados é o serviço que permite determinar se uma parte da informação não foi alterada enquanto atravessava o sistema de informação, enquanto que para 25 Comer (2007) a integridade de dados se refere à proteção contra mudança, indagando se os dados que chegam ao receptor são exatamente os mesmos que foram enviados, ao passo que, para Soares, Lemos e Colcher (1995), o serviço de integridade de dados atua no sentido de proteger os dados intercambiados contra ataques ativos que implicam na modificação, remoção ou injeção não autorizada de unidade de dados. O terceiro aspecto, que se trata da disponibilidade de dados, segundo Comer (1998), é a garantia de que pessoas de fora não tenham a capacidade de impedir o acesso legítimo aos dados através da saturação do tráfego de uma rede, sendo assim, como é elucidado por Comer (2007), a disponibilidade de dados se refere à proteção contra a interrupção de serviço, ou seja, se os dados permanecem acessíveis para uso legítimo. Neste contexto, Ramos (2006) destaca que uma informação disponível é aquela que pode ser acessada por aqueles que dela necessitam, no momento em que precisam. Comer (2007) cita estes mesmos três aspectos como sendo os de proteção de uma rede, adicionando um quarto item, que seria a privacidade. Ela se refere à habilidade de um remetente se manter anônimo, interrogando se a identidade do remetente é revelada. Seguindo o argumento de Júnior, Suavé, Moura e Teixeira (1999), os serviços de segurança fornecem cinco tipos de serviços básicos para a construção de aplicações distribuídas altamente seguras: identificação, autenticação, autorização, criptografia e auditoria. Ainda sobre os autores, a identificação se relaciona ao conceito de identificar o usuário na rede, sendo esta uma entidade que existe em uma única ou em várias localizações, posto isto que as identidades e suas características são usadas para determinar a que recursos na rede esse usuário tem acesso liberado. A autenticação, em uma forma geral descrita por Tanenbaum e Wetherall (2011) cuida do processo de definir com quem você está se comunicando antes de revelar informações sigilosas ou ingressar em uma transação comercial, ou seja, conforme explanado por Júnior, Suavé, Moura e Teixeira (1999), a autenticação procura provar que um cliente é, de fato, quem ele está afirmando ser, através da determinação de quem está executando um pedido, certificando-se que o pedido originou-se de uma pessoa em particular e que este é um pedido autêntico, consequentemente, de acordo com Kaufman, Perlman e Speciner (2002), provando quem você é. 26 O terceiro tipo de serviço básico é a autorização, que Júnior, Suavé, Moura e Teixeira (1999) clarificam que também é chamada de controle de acesso. Comer (2007) desvenda que a autorização se refere à responsabilidade sobre cada item de informações e como tal responsabilidade é delegada a outros, enquanto que Soares, Lemos e Colcher (1995) informam que, este também intitulado controle de acesso possui mecanismos que são usados para garantir que o acesso a um recurso é limitado aos usuários devidamente autorizados, consequentemente, de acordo com Kaufman, Perlman e Speciner (2002), a autorização define o que você está autorizado a fazer. O próximo tipo de serviço básico abordado é a criptografia, que Soares, Lemos e Colcher (1995) divulgam ter surgido da necessidade de se enviar informações sensíveis através de meios de comunicação não confiáveis, ou seja, em meios onde não é possível garantir que um intruso não irá interceptar o fluxo de dados para leitura ou para modificá-lo. Dessa forma, de acordo com Júnior, Suavé, Moura e Teixeira (1999), os serviços de criptografia permitem que informações sejam enviadas por meio de um hardware não confiável e sejam entregues a um destinatário de modo que possa ser detectado, dependendo do mecanismo de criptografia aplicado, se a informação foi ou não distorcida ou espionada em sua jornada. Comer (2007) ainda reforça que a criptografia assegura que o conteúdo de uma mensagem permaneça confidencial apesar do seu grampeamento, realizando tal feito através do embaralhamento de bits das mensagens de tal modo que somente o receptor pretendido possa recompor a mensagem. Desta forma, alguém que intercepte uma cópia da mensagem cifrada não poderá extrair informações. O último serviço básico de segurança é o de auditoria. Júnior, Suavé, Moura e Teixeira (1999) descrevem a auditoria como sendo o processo que mantém registros detalhados sobre quem fez o que com qual objeto, para que se possa determinar como um ataque foi efetuado e que informação ficou comprometida, implicando, segundo Gil (2000), na validação e avaliação do controle interno de sistemas de informações em processamento eletrônico de dados. 2.1.4 Ameaças Em se tratando da definição do que é uma ameaça, Stallings (2008) informa que ela é nada mais que um possível risco que pode explorar uma vulnerabilidade, ou seja, conforme descrito por Soares, Lemos e Colcher (1995), uma ameaça consiste em uma possível violação 27 da segurança de um sistema, ou ainda, como foi definido por Júnior, Suavé, Moura e Teixeira (1999) ela se constitui em uma pessoa ou uma organização que pode querer atentar contra a segurança desse sistema, e, por fim, Ramos (2006) especifica que ela é um evento que tem potencial em si próprio para comprometer os objetivos da organização, seja trazendo danos diretos ou prejuízos decorrentes de situações inesperadas. Desenvolvendo um pouco mais a explicação, Stallings (2008) inteira que uma ameaça à segurança é um potencial para violação da segurança, que existe quando há uma circunstância, capacidade, ação ou evento que pode quebrar a segurança e causar danos aos ativos. Aqui se faz necessário explicar primeiramente que, conforme Ramos (2006), o termo ativo se refere a tudo aquilo que possua valor e que necessita de algum tipo de proteção ou cuidado por conta disso. A fim de classificar as formas de ameaças, Soares, Lemos e Colcher (1995) citam que elas podem ser consideradas passivas ou ativas. Ameaças passivas são as que, quando realizadas, não resultam em qualquer modificação nas informações contidas em um sistema, em sua operação ou em seu estado. Enquanto que as ameaças ativas são as que envolvem a alteração da informação contida no sistema, ou modificações em seu estado ou operação. Não obstante, Soares, Lemos e Colcher (1995) também classificam as ameaças entre acidentais, que são as que não estão associadas à intenção premeditada, ou intencionais, que são as que variam desde a observação dos dados com ferramentas simples de monitoramento das redes, a ataques sofisticados baseados no conhecimento do funcionamento de um sistema. 2.1.5 Riscos Quando se trata de risco em segurança, Ramos (2006) afirma que o risco nada mais é que a medida que indica a probabilidade de uma deliberada ameaça se concretizar, combinada com os impactos (tamanho do prejuízo que a concretização de uma determinada ameaça causará) que ela trará. Conforme Nakamura e Geus (2007), serão contra estes riscos que as organizações têm de lutar, por meio das técnicas, tecnologias e conceitos de segurança. Segundo, Ramos (2006) estes riscos não podem ser completamente eliminados, mas sim trazidos para dentro de patamares aceitáveis. Ramos (2006) informa que o risco é a principal métrica gerencial de segurança da informação, adicionando que, quanto maior a probabilidade de uma determinada ameaça acontecer e o impacto que ela trará, maior será o risco agregado a este incidente. É também citado por Ramos (2006) que escala de um risco é dada por meio da combinação de dois 28 fatores, onde o primeiro fator é a probabilidade de ocorrência da ameaça medida através da combinação da sua frequência com a avaliação de vulnerabilidades e o segundo fator são as consequências trazidas pela ocorrência do incidente. 2.1.6 Vulnerabilidades Em termos de segurança, uma vulnerabilidade, para Ramos (2006), é a ausência de um mecanismo de proteção ou uma falha existente em um mecanismo de proteção, ou ainda, conforme descrito por Júnior, Suavé, Moura e Teixeira (1999), é um ponto fraco de projeto de sistema que pode ser explorado com más intenções, enquanto que, para Soares, Lemos e Colcher (1995), ela é qualquer fraqueza que pode ser explorada para se violar um sistema ou as informações contidas nele, segundo Ramos (2006), criando situações que podem ser exploradas por uma ameaça, acarretando em prejuízos. Stallings (2008) ainda atenta para o fato que, uma vez que for descoberta, esta vulnerabilidade será rapidamente difundida entre uma comunidade de atacantes e poderá ser explorada regularmente até ser corrigida. Portanto, segundo Ramos (2006), serão as vulnerabilidades que permitirão que as ameaças se concretizem, o que faz com que ele conclua que uma vulnerabilidade por si só não causa prejuízos, sendo a sua exploração por uma determinada ameaça o que realmente causa prejuízos. 2.1.7 Ataques Quanto ao o que configura um ataque, Soares, Lemos e Colcher (1995) afirmam que ele configura na realização de uma ameaça intencional. Júnior, Suavé, Moura e Teixeira (1999) definem um ataque como sendo o que ocorre quando uma ameaça tenta levar vantagem sobre uma vulnerabilidade, enquanto que para Stallings (2008), um ataque à segurança é um ato inteligente que é uma tentativa deliberada para escapar dos serviços de segurança e violar a política de segurança de um sistema. Júnior, Suavé, Moura e Teixeira (1999) ainda informam que os ataques podem ser enquadrados em duas categorias: ataques ativos e ataques passivos. Segundo os próprios Júnior, Suavé, Moura e Teixeira (1999), nos ataques passivos, as ameaças apenas observam a informação que trafega no sistema, ou ainda um ataque passivo pode ser determinado, 29 conforme Kaufman, Perlman e Speciner (2002), como aquele em que o intruso examina, mas não modifica, o fluxo de mensagens. Stallings (2008) enfatiza que o objetivo de um ataque passivo é obter informações que estão sendo transmitidas, desta forma, descobrindo ou utilizando estas informações do sistema, mas não afetando os seus recursos. Como consequência, e ainda em concordância com Stallings (2008), ataques passivos incluem acesso não autorizado ao tráfego de rede entre navegador e servidor e obtenção de acesso a informações que deveriam ser restritas, através de análise de tráfego e leitura não autorizada de uma mensagem de arquivo. Realizando uma ligação com o próximo tipo de ataque, Júnior, Suavé, Moura e Teixeira (1999) evocam que um intruso passivo pode operar por meios ativos para facilitar um ataque passivo. Adentrando na elucidação dos aspectos de um ataque ativo, Júnior, Suavé, Moura e Teixeira (1999) esclarecem que ele altera o sistema na tentativa de levar vantagem sobre as vulnerabilidades. Quanto a sua extensão, Kaufman, Perlman e Speciner (2002) informam que um ataque ativo é aquele em que o intruso pode transmitir mensagens, reproduzir mensagens antigas, modificar mensagens em trânsito ou excluir mensagens selecionadas, ou seja, tal qual dito por Stallings (2008), ataques ativos incluem simulação de outro usuário, alteração de mensagens em trânsito entre cliente e servidor e alteração de informações, envolvendo, ainda segundo Stallings (2008), alguma modificação do fluxo de dados ou a criação de um fluxo falso. 2.1.8 Cenário nacional de incidentes de segurança em redes Dados estatísticos levantados pelo CETIC.br (2010) no período de 2006 até 2010, mostram uma relação entre os problemas de segurança de acessos externo e interno não autorizados encontrados em empresas, onde, de forma resumida, se pode extrair que em empresas de pequeno porte (de 10 a 49 funcionários) o número de acessos não autorizados externos é maior que o de internos, porém a situação se inverte conforme o número de funcionários vai crescendo, tornando o percentual de acessos internos não autorizados maior do que os acessos externos não autorizados. Essa diferença de percentual ainda vai aumentando para os casos de acessos não autorizados internos conforme aumenta o número de funcionários, demonstrando que, quanto maior for a empresa (ou maior for o cenário de funcionários conectados à rede nesta empresa), maior é a chance de ocorrer um acesso interno não autorizado e menor é porcentual de acesso externo não autorizado. Porém, estas 30 categorias de problemas de segurança encontrados em empresas não foram mais relacionadas nas estatísticas do CETIC.br dos anos a partir de 2010. Conforme dados fornecidos pelo CAIS (2016), que podem ser conferidos na Figura 2, os incidentes de segurança reportados, de forma geral, vêm crescendo vertiginosamente nos últimos anos. Figura 2 - Incidentes reportados ao CAIS por ano Fonte: CAIS (2016). Por outro lado, apesar do NIC.br (2016) ressaltar, com base nos dados do CERT.br (2016), que os incidentes de segurança reportados em 2015 diminuíram em cerca de 31% em relação a 2014, conforme demonstrado pela Figura 3, no mesmo intervalo de período houve um crescimento em determinadas modalidades de ataques, como o de varreduras, técnica que tem o objetivo de identificar computadores ativos e coletar informações sobre eles, que teve um aumento de 48% nos incidentes relatados. Já os dados de incidentes de segurança obtidos pelo CERT.br (2016), quando classificados por tipos de ataques durante o ano resultam nos gráficos da Figura 4 e da Figura 5. 31 Figura 3 - Total de incidentes reportados ao CERT.br por ano Fonte: CERT.br (2016). Figura 4 - Incidentes reportados em 2015 (tipos de ataque acumulados) Fonte: CERT.br (2016). Figura 5 - Incidentes reportados ao CERT.br de janeiro a dezembro de 2015 Fonte: CERT.br (2016). 32 Generalizando, o CERT.br (2016) cita que os números de cada categoria de ataque relacionados também demonstram que existe uma diminuição nos relatos de tentativas com sucesso de ataques tradicionais, que tem como objetivo entrar em uma organização passando por “brechas no firewall”, e um aumento em 2015 de 47% com relação a 2014 de notificações de ataques que se enquadram na categoria de “outros”, o que demonstra que a forma de realização de ataques está migrando para meios alternativos onde a segurança em redes é mais negligenciada. 2.2 Redes de computadores Tanenbaum e Wetherall (2011) recordam que o velho modelo de um único computador atendendo a todas as necessidades computacionais da organização foi substituído por outro em que os trabalhos são realizados por um grande número de computadores separados, porém interconectados. Esses sistemas são chamados redes de computadores, termo que serve para indicar, de acordo com Tanenbaum e Wetherall (2011), um conjunto de computadores autônomos interconectados por uma única tecnologia, sendo que eles informam que dois computadores estão interconectados quando podem trocar informações. Já nas palavras de Soares, Lemos e Colcher (1995) uma rede de computadores é formada por um conjunto de módulos processadores (sendo estes qualquer dispositivo capaz de se comunicar através do sistema de comunicação por troca de mensagens) capazes de trocar informações e compartilhar recursos, interligados por um sistema de comunicação, ao passo que este sistema de comunicação vai se constituir de um arranjo topológico interligando vários módulos processadores através de enlaces físicos (meios de transmissão) e de um conjunto de regras com a finalidade de organizar a comunicação (protocolos). Forouzan (2010), por sua vez, explica que uma rede é um conjunto de dispositivos (normalmente conhecido como nós) conectados por links de comunicaçaõ, sendo que um nó pode ser um computador, uma impressora ou outro dispositivo de envio e/ou recepçaõ de dados, que estejam conectados a outros nós da rede. Comer (2007, p. 598) explica que protocolo é “um projeto que especifica os detalhes de como os computadores interagem, incluindo o formato das mensagens que trocam e como erros são tratados”, já para Toledo (2005), protocolos são basicamente a parte do sistema operacional da rede que é encarregada de ditar as normas para a comunicação entre os dispositivos, enquanto que, para Kurose e Ross (2010, p. 6) “um protocolo define o formato e 33 a ordem das mensagens trocadas entre duas ou mais entidades comunicantes, bem como as ações realizadas na transmissão e/ou recebimento de uma mensagem ou outro evento”. No nível mais baixo, Comer (2007) explica que toda a comunicação entre computadores envolve codificar dados em uma forma de energia e enviar essa energia ao longo de um meio de transmissão. Ele também ressalta que, uma vez que os dispositivos de hardware conectados a um computador executam a codificação e a decodificação dos dados, os programadores e os usuários não precisam entender os pormenores da transmissão. Campbell (1997), Comer (2007), Kurose e Ross (2010), Soares, Lemos e Colcher (1995), Tanenbaum e Wetherall (2011) e Toledo (2005) informam que esta conexão pode ser feita por fios de cobre (que são compostos por cabos como o coaxial e o cabo par trançado), fibras de vidro (conhecidas como fibra óptica), ou ainda através de redes sem fio, como micro-ondas, ondas de infravermelho, ondas de rádio eletromagnéticas, transmitidas por enlaces de satélites de comunicações ou luz de laser, o que leva todos essas formas de transmissão a demonstrar a citação de Soares, Lemos e Colcher (1995) de que qualquer meio físico capaz de transportar informações eletromagnéticas é passível de ser usado em redes de computadores. 2.2.1 Endereçamento de hardware na rede Como já é possível ser constatado, e é relatado por Soares, Lemos e Colcher (1995), todas as estações devem ser capazes de reconhecer se uma mensagem ou pacote entregue deve ser passado a uma outra estação, ou se tem como destino a própria estação. Para que realize tal feito, Soares, Lemos e Colcher (1995) explicam que qualquer rede eficiente tem a necessidade de definir mecanismos de endereçamento que permitam as suas estações decidir que atitude devem tomar ao receber uma mensagem ou pacote. Tendo em vista esta situação, é citado por Comer (2007) que, fisicamente, qualquer sinal enviado através de uma rede compartilhada alcança todas as estações acopladas, deste modo, quando um conjunto de bits for transferido através de uma rede local, os sinais elétricos transportando estes bits alcançam todas as estações. Para resolver que dois computadores possam se comunicar diretamente através de um meio compartilhado neste cenário, Comer (2007) expõe que a maioria das tecnologias de rede usa um esquema de endereçamento para fornecer comunicação direta. 34 Soares, Lemos e Colcher (1995) descrevem que este endereço irá consistir em uma maneira de reconhecer univocamente cada uma das estações conectadas à rede. Para este fim, Comer (1998) explica que a todos os computadores conectados a uma rede é atribuído apenas um único endereço numérico. Comer (2007) informa que este valor numérico único designado a cada estação de rede é chamado de endereço físico, endereço de hardware, endereço de acesso de meios ou endereço Media Access Control (MAC). Para compreender as particularidades do endereço MAC, primeiramente cabe trazer que Chowdhury (2002) informa que o sistema binário é representado com zero (0) ou um (1), e cada um desses valores é conhecido como bit. É explicado por Campbell (1997) e Comer (1998) que os endereços MAC possuem 48 bits, onde, segundo Corrêa (2009), os primeiros 24 bits são aplicados para determinar o fabricante da placa de rede, ao passo que os últimos 24 bits são atribuídos pelo fabricante da placa, além do fato corroborado por Campbell (1997) e Comer (1998) de que os endereços MAC devem ser únicos dentro de uma rede, para que não haja conflito. A partir da definição desses endereços, é necessário explicar que, seguindo Comer (1998), um pacote enviado através de uma rede tem um campo de endereço de destino que possui o endereço do destinatário, sendo que Comer (2007) amplia essa explicação informando que, além dessa especificação do receptor pretendido, cada pacote transmitido através de uma rede também possui um endereço que especifica o remetente. É importante citar que, segundo Comer (1998, p. 22) “o endereço de destino aparece na mesma localização em todos os pacotes, possibilitado ao hardware da rede identificar o endereço de destino facilmente”. Portanto, de acordo com Comer (2007), quando um remetente transmite um pacote pela rede, ele inclui este endereço de hardware do receptor desejado. Com isso em mente, antes de encaminhar um pacote, Comer (2007) e Comer (1998) relatam que um transmissor, ou remetente, deve saber o endereço do destinatário e o deve inserir no campo de endereço de destino deste pacote. É acrescentado por Comer (2007) que, além do remetente ter que colocar o endereço do receptor no campo de endereço de destino, ele deve também colocar o seu próprio endereço no campo de endereço de origem do pacote. Sendo que essa inclusão do endereço do remetente torna mais fácil a geração de uma resposta pelo receptor. Seguindo a explanação de Comer (1998) e Comer (2007), é importante citar que o hardware de interface de rede é projetado para examinar os campos de endereço em pacotes 35 que passam através da rede e, assim, para aceitar somente aqueles em que o endereço de destino combina com o endereço da estação, ou seja, somente as designadas a um dos endereços especificados, sendo que Comer (1998) acrescenta que, sempre que o sistema operacional é inicializado, ele inicializa também essa interface que oferecerá um conjunto de endereços a serem reconhecidos. 2.2.2 LAN Campbell (1997) descreve uma Local Area Network (LAN) ou rede local, como sendo um grupo de computadores que são conectados entre si dentro de uma certa área, enquanto que, para Soares, Lemos e Colcher (1995), pode-se caracterizar uma rede local como sendo uma rede que permite a interconexão de equipamentos de comunicação de dados numa pequena região. Já para Comer (1998), Comer (2007), Forouzan (2010), Kurose e Ross (2010), Soares, Lemos e Colcher (1995) e Tanenbaum e Wetherall (2011), a LAN é uma rede particular que se concentrada na abrangência de uma pequena área geográfica tal como um único edifício, uma residência, campus universitário ou escritório. Soares, Lemos e Colcher (1995) flexibilizam um pouco a descrição de faixa de abrangência ao informar que as redes locais de computadores são sistemas cujas distâncias entre os módulos processadores (hosts) se enquadram na faixa de alguns poucos metros a alguns poucos quilômetros. Entretanto, para Campbell (1997), no mundo real, as LANs geralmente são definidas mais por sua função do que por suas características físicas, portanto, para ele, uma rede local é um sistema em que computadores e dispositivos periféricos conectados podem compartilhar informações, programas, impressoras, serviços, dentre outros elementos. Não obstante, segundo Campbell (1997), as LANs variam grandemente em tamanho, sendo possível formar uma a partir de apenas dois computadores colocados um ao lado do outro na mesma sala, ou com milhares em um mesmo edifício. 2.2.2.1 Ethernet De acordo com Tanenbaum e Wetherall (2011), muitos projetos para redes pessoais, locais e metropolitanas foram padronizados com o nome IEEE 802. Entre os sobreviventes destes padrões, um dos mais importantes é o padrão IEEE 802.3, ou Ethernet. 36 Não apenas a Ethernet é o padrão empregado no ambiente em que é aplicado este trabalho, como também ela, segundo Comer (2007) é uma tecnologia de rede bem conhecida e extensamente utilizada. Embora Comer (2007) informe que outras tecnologias tenham sido inventadas, a Ethernet domina todas as LANs, se tornando, conforme Campbell (1997) o tipo mais popular de rede local, ou ainda, em conformidade com Tanenbaum e Wetherall (2011) sendo provavelmente o tipo de rede de computação mais utilizado no mundo. No que refere a sua história de criação, Comer (1998), Comer (2007), Tanenbaum e Wetherall (2011) explicam que Ethernet é o nome dado a uma tecnologia de rede local popular, de comutação de pacotes, criada pelo Centro de Pesquisa da Corporação Xerox em Palo Alto (Xerox Palo Alto Research Center) no início da década de 1970 por Bob Metcalfe e David Boggs, quando estes implementaram a primeira rede local utilizando um único cabo coaxial. Mais tarde, em 1978, segundo Comer (1998), Comer (2007) e Tanenbaum e Wetherall (2011), devido ao sucesso da rede Ethernet da Xerox as empresas Digital Equipament Corporation, Intel Corporation e Xerox cooperaram, para desenvolver um padrão de produção da Ethernet. O Instituto de Engenheiros Eletricistas e Eletrônicos (IEEE), que conforme Júnior, Suavé, Moura e Teixeira (1999) é um dos órgão públicos responsáveis pela padronização da tecnologia da informação, seguindo as colocações de Comer (1998), Comer (2007) e Tanenbaum e Wetherall (2011) criou uma versão compatível do padrão, com uma pequena mudança, fazendo com que este padrão de produção da Ethernet se torna-se o padrão IEEE 802.3 em 1983, e, conforme Comer (2007), levando o IEEE a controlar os padrões Ethernet a partir de então. Complementando, Soares, Lemos e Colcher (1995) informam que a IEEE 802, a qual pertence o padrão IEEE 802.3, é uma iniciativa do IEEE que define os padrões para os níveis físico e enlace de redes locais de computadores. Por fim, Tanenbaum e Wetherall (2011) explicam que, como a Ethernet e o padrão IEEE 802.3 são praticamente idênticos, muitas pessoas usam os termos “Ethernet” e “IEEE 802.3” para indicar a mesma coisa. 2.2.2.1.1 Ethernet comutada e o switch É importante ressaltar que em uma rede de comutação de pacotes, conforme Comer (1998), as mensagens são divididas em pequenas unidades, nomeadas de pacotes, que são 37 multiplexados por meio de conexões entre máquinas de alta capacidade. Soares, Lemos e Colcher (1995) reforçam que os sistemas por comutação de pacotes se caracterizam justamente pelo fato da mensagem ser quebrada em quadros ou pacotes antes da transmissão ser efetuada. Seguindo o raciocínio de Comer (1998), um pacote, que geralmente contém apenas pequenas unidades de informações, transporta uma identificação que capacita o hardware da rede a enviar as informações a determinado destino. Assim, o hardware da rede envia os pacotes aos seus respectivos destinos, onde o software junta-os novamente em um arquivo único. Ainda cabe ressaltar que, de acordo com Comer (2007), para ajudar a distinguir entre a ideia geral de transmissão de pacotes e a definição específica de pacotes para uma dada tecnologia de hardware, alguns utilizam o termo quadro para denotar a definição de um pacote utilizado com um tipo específico de rede. Seguindo o assunto da Ethernet, Comer (1998), Comer (2007) e Tanenbaum e Wetherall (2011) informam que a versão original da Ethernet, também chamada de Ethernet clássica, logo começou a evoluir para longe da arquitetura primária de um cabo longo único, devido aos problemas associados a encontrar interrupções ou conexões partidas. Isto levou a um tipo diferente de padrão de fiação em que cada estação tem um cabo dedicado esticado até um hub central (equipamento que simplesmente conecta todos os fios eletricamente, como se eles fossem únicos). É necessário explicar que, de acordo com Comer (1998), Forouzan (2010) e Soares, Lemos e Colcher (1995), o hub, também chamado de concentrador, é dispositivo eletrônico central que fornece interconexaõ entre os nós de uma rede local, estimulando os sinais num cabo Ethernet. Porém os hubs possuem vários inconvenientes, como o citado por Tanenbaum e Wetherall (2011) de que eles não aumentam a capacidade, assim, conforme mais e mais estações forem sendo acrescentadas, cada estação recebe uma fatia cada vez menor da capacidade fixa, o que leva, por fim, a LAN a ficar saturada. As demandas sufocantes citadas por Chowdhury (2002), por largura de banda, segurança, administração, complexidade e microssegmentação, somadas as demandas citadas por Soares, Lemos e Colcher (1995) de maiores taxas de transmissão e melhor usabilidade dos meios físicos, aliados à evolução contínua da microeletrônica, começaram a alterar a construção desses equipamentos concentradores (hubs). Conforme Tanenbaum e Wetherall (2011), isto levou a uma solução para lidar com o aumento da carga denominada de Ethernet 38 comutada ou switched Ethernet. Forouzan (2010), Kurose e Ross (2010) e Tanenbaum e Wetherall (2011) citam que a Ethernet comutada, se caracteriza por ser uma rede em que os hubs centrais foram substituídos por dispositivos chamados switches, ou comutadores, que por sua vez são usados para conectar diferentes computadores e encaminhar as mensagens ao seu destino. Forouzan (2010), Kurose e Ross (2010) e Soares, Lemos e Colcher (1995) definem que esse tipo de elemento central denominado switch, ou comutador, é um dispositivo que interliga várias linhas de comunicaçaõ, tendo a função de receber quadros da camada de enlace e encaminhá-los para enlaces de saída. Tanenbaum e Wetherall (2011) ressalta que por fora, um switch se parece com um hub, inclusive mantendo as mesmas vantagens de um hub, que seriam a facilidade em acrescentar ou remover uma nova estação conectando ou desconectando um fio, e a facilidade em encontrar a maioria das falhas, pois um cabo ou porta com defeito normalmente afetará apenas uma estação. Porém, Tanenbaum e Wetherall (2011) enaltecem que internamente o switch é muito diferente. Os switches só enviam quadros às portas para as quais esses quadros são destinados e quando uma porta do switch recebe um quadro Ethernet de uma estação, o switch verifica os endereços Ethernet para saber para qual porta o quadro se destina. Depois, o switch encaminha o quadro por sua placa interna de alta velocidade até a porta de destino, que transmite o quadro no fio para que ele alcance a estação intencionada, o que faz com que Tanenbaum e Wetherall (2011) esclareçam que nenhuma das outras portas sequer saberá que o quadro existe. Com isso, Kurose e Ross (2010) afirmam que o comutador em si é transparente até aos hosts, ou seja, um host endereça um quadro a outro host (em vez de endereçar o quadro ao switch) que prontamente envia o quadro à LAN, inconsciente de que um switch irá receber o quadro e encaminhá-lo a outros hosts. Do ponto de vista de Soares, Lemos e Colcher (1995), o modo de operação usual dos switches dita que primeiramente eles recebem e armazenam os quadros, depois eles processam o endereço de destino e estabelecem um circuito entre as portas de origem e de destino, enquanto durar a transmissão do quadro. Apesar de as camadas de uma rede ainda não terem sido abordadas, cabe citar que Kurose e Ross (2010) informam que os switches encaminham pacotes baseados em endereços MAC, ao invés de endereços de Internet Protocol (IP), atuando assim na camada de enlace de dados do modelo RM-OSI/ISO. 39 Em concordância com Tanenbaum e Wetherall (2011), em um hub, todas as estações estão no mesmo domínio de colisão. Já em um switch, cada porta é seu próprio domínio de colisão independente, o que leva Forouzan (2010) a reforçar que, em um switch, o domínio de colisaõ é dividido em N domínios, sendo N o número de portas deste, fazendo com que Soares, Lemos e Colcher (1995) especifiquem que a ideia utilizada pelos switches é justamente segmentar a rede, para aprimorar o seu desempenho, fornecendo a cada uma de suas portas, que podem estar ligadas a uma ou mais estações, uma taxa de transmissão na rede igual à do seu enlace de entrada/saída. Cabe destacar que Kurose e Ross (2010) informam que o switch tem a maravilhosa propriedade de montar sua tabela de endereços MAC correspondentes a cada porta de forma automática, dinâmica e autônoma, ou seja, sem nenhuma intervenção de um administrador de rede ou de um protocolo de configuração, sendo que essas tabelas são denominadas de tabelas Content Addressable Memory (CAM). Em alguns modelos de switch, como explicado por Extreme Networks (2011), temos uma Forwarding Database (FDB), que é uma base de dados de encaminhamento mantida pelo switch com todos os endereços MAC recebidos em todas as suas portas. Assim o switch usará a informação desta base de dados FDB para decidir se um quadro deve ser encaminhado ou filtrado. Segundo Kurose e Ross (2010, p. 352), “em outras palavras, comutadores são autodidatas”. Corrêa (2009) conclui que a tabela CAM, ou FDB, de um switch é a responsável por armazenar e relacionar endereços MAC, portas e parâmetros de Virtual Local Area Network (VLAN), tornando possível que ele encaminhe de forma correta os quadros que passam por ele. A Figura 6 ilustra essa tabela CAM descrita. Figura 6 - Exemplo de tabela CAM Fonte: Ortega (2012). 40 No que trata da segurança na rede, Tanenbaum e Wetherall (2011) informam que a mudança nas portas em que os quadros são enviados também tem benefícios nessa área. Como a maioria das interfaces de LAN possui um modo promíscuo, em que todos os quadros são dados a cada computador, não apenas os endereçados a ele, com um hub, cada computador conectado pode ver o tráfego enviado entre todos os outros computadores, gerando uma grande falha de segurança, mas com um switch, o tráfego é encaminhado apenas para as portas às quais ele é destinado. Essa restrição acaba oferecendo melhor isolamento, de modo que o tráfego não escapará com facilidade nem cairá em mãos erradas. Considerando todos esses fatores Kurose e Ross (2010, p. 352) concluem que “o comutador é “mais esperto” do que um hub”. Assim Kurose e Ross (2010) podem dizer que os switches têm como vantagens, em relação aos hubs, a eliminação de colisões, os enlaces heterogêneos e a facilidade na gestão da rede, além da afirmação de Soares, Lemos e Colcher (1995), de que eles possuem taxas efetivas de transmissão bem maiores, o que faz com que Tanenbaum e Wetherall (2011) afirmem que os hubs são espécies em extinção. 2.2.2.1.2 Tipos de transmissão de dados No que se refere a tecnologia de transmissão de dados em uma rede de computadores, autores como Chowdhury (2002), Comer (1998), Comer (2007), Forouzan (2010) e Kurose e Ross (2010) informam que ela pode ser dividida entre unicast, broadcast e multicast. A comunicação unicast, segundo Kurose e Ross (2010), ocorre onde um único nó de fonte envia um pacote a um único nó de destino, ou seja, seguindo Forouzan (2010), existem apenas uma origem e um destino, logo, a relação entre a origem e o destino é um-para-um, mesmo que, de acordo com Tanenbaum e Wetherall (2011), os pacotes tenham que percorrer máquinas intermediárias no percurso deste caminho. A Figura 7 ajuda a exemplificar estas definições de unicast, ilustrando um nó (círculo vermelho) enviando um pacote para apenas um outro nó (círculo verde) em uma rede com vários nós (círculos amarelos). Figura 7 - Visualização do esquema unicast Fonte: Cobbaut (2015). 41 Conforme Comer (2007), muitos aplicativos que usam uma rede se baseiam em uma outra técnica, conhecida como broadcasting (ou difusão). Para Tanenbaum e Wetherall (2011), os pacotes de broadcast enviados por qualquer máquina são recebidos por todas as outras. Portanto, Comer (2007) explica que o broadcast se trata de uma forma de transmissão em que uma cópia de um pacote é entregue a cada computador em uma rede, já na visão de Kurose e Ross (2010), no broadcast a rede provê um serviço de entrega de um pacote enviado de um nó de fonte a todos os outros nós da rede, enquanto que Forouzan (2010) define que na comunicaçaõ broadcast, a relaçaõ entre a origem e o destino é um-para-todos, assim existindo apenas uma origem, mas possuindo todos os demais hosts (Comer (2007) e Kurose e Ross (2010) explicam que os hosts são dispositivos finais conectados a uma rede) como destinos. A Figura 8 ajuda a elucidar o funcionamento do broadcast, ilustrando um nó (círculo vermelho) enviando um pacote para todos os demais nós na rede (círculos verdes). Figura 8 - Visualização do esquema broadcast Fonte: Cobbaut (2015). Para tornar o uso de broadcast eficiente, Comer (2007) informa que a maioria das tecnologias de redes estende o esquema de endereçamento, de modo que, além de designar a cada computador um endereço, os projetistas de rede definem um endereço especial reservado especificamente para broadcast. Comer (1998) delibera que, por convenção, esse endereço de difusão (broadcast) para envio simultâneo a todas as estações da rede tem todos os bits ajustados ao 1. Assim, seguindo Chowdhury (2002) e Corrêa (2009), um broadcast enviado para um endereço físico (MAC) tem o endereço de destino como sendo o 0xFFFFFF, ou FF- FF-FF-FF-FF-FF. Enquanto que, no nível lógico, Kurose e Ross (2010) trazem à tona que o endereço de broadcast de um protocolo IP é usualmente o 255.255.255.255, e, mesmo em uma sub-rede onde esse IP de broadcast varia, ele será sempre o último endereço existente em qualquer rede. Apesar da viabilidade aparente demonstrada em usar broadcast, Comer (2007) adverte que, em alguns casos, enviar por broadcast é ineficiente, já que, embora cada estação possa ser configurada para descartar os pacotes desnecessários, o processamento e o descarte de um pacote consome recursos computacionais. Paralelamente, Forouzan (2010) explica que 42 o broadcast pode provocar uma quantidade enorme de tráfego e necessitar de uma grande quantidade de largura de banda na rede. Visto estas desvantagens relacionadas ao broadcast, Comer (2007) conta que, para se aproveitar da capacidade de broadcast sem desperdiçar recursos de processamento em outros computadores, a resposta foi encontrar uma forma restrita de broadcasting conhecida como multicasting. O que é reforçado por Tanenbaum e Wetherall (2011) quando estes citam que alguns sistemas de broadcasting também admitem a transmissão para um subconjunto de máquinas, o que se conhece como multicasting. Conforme descrito por Comer (2007), no nível mais baixo o multicast opera de forma muito semelhante ao broadcast, porém, segundo Kurose e Ross (2010), o multicast habilita um único nó de fonte a enviar cópia de um pacote a um subconjunto de nós das outras redes. A fim de descrever ainda mais o que é um multicast, Forouzan (2010) informa que na comunicaçaõ multicast, existe apenas uma origem e um grupo de destinos, portanto, a relaçaõ é um-para-vários. Ele ainda faz um paralelo de que, nesse tipo de comunicaçaõ, o endereço de origem é um endereço unicast, mas o endereço de destino é um endereço de grupo, que define um ou mais destinos, sendo que o endereço de grupo identifica seus membros. A Figura 9 ajuda a visualizar o funcionamento do multicast, ilustrando um nó (círculo vermelho) enviando um pacote para um grupo de outros nós (círculos verdes) em uma rede com vários nós (círculos amarelos). Figura 9 - Visualização do esquema multicast Fonte: Cobbaut (2015). 2.2.3 VLANs como proposta de organização dos fluxos internos Recordando através da citação de Forouzan (2010), uma estaçaõ é considerada parte de uma LAN se pertencer fisicamente a ela, sendo que o critério desta participaçaõ é geográfico. Porém Forouzan (2010) questiona, o que acontece se precisarmos de uma conexaõ virtual entre duas estações pertencentes a duas LANs físicas distintas. Tanenbaum e Wetherall (2011) replicam que, em resposta à esta solicitação e também a de usuários que, de forma geral, desejam maior flexibilidade, os fornecedores de redes começaram a buscar um meio de 43 recompor a fiação dos prédios inteiramente via software. Sendo que Kurose e Ross (2010) explicam que as dificuldades geradas pela falta de isolamento do tráfego, uso ineficiente de comutadores e o gerenciamento de usuários, foram o que motivaram esta busca, e podem ser resolvidas com um switch que suporte uma rede local virtual. Seguindo a colocação de Forouzan (2010) e Tanenbaum e Wetherall (2011), esse conceito resultante chamado de rede local virtual, LAN virtual, ou Virtual Local Area Network (VLAN), foi padronizado pelo comitê IEEE 802 sendo denominado de padrão 802.1Q, que define o formato para identificação de quadros deste. Para determinar do que se trata uma VLAN, Tanenbaum e Wetherall (2011) explicam que as VLANs permitem que a topologia física seja segmentada em diferentes topologias lógicas, sendo que Forouzan (2010) define uma VLAN como uma rede local configurada por software em vez de fiaçaõ física. Forouzan (2010) ainda informa que as VLANs agrupam estações pertencentes a uma ou mais LANs físicas em domínios de broadcast, portanto, as estações em uma VLAN se comunicam entre si como se pertencessem a um mesmo segmento físico. O que é consolidado por Forouzan (2010, p. 460) ao citar que "as VLANs criam domínios de broadcast". Para explicar como funcionam os quadros dentro desse padrão, Tanenbaum e Wetherall (2011) informam que este novo formato contém uma tag de número identificador (ID) da VLAN, alterando o cabeçalho do padrão Ethernet. Segundo Tanenbaum e Wetherall (2011), mudar o cabeçalho do padrão Ethernet só é possível pois os campos VLANs só são realmente usados por equipamentos como os switches, e não pelas máquinas dos usuários. De acordo com Tanenbaum e Wetherall (2011), quando um quadro marcado chega a um switch que reconhece VLANs, o switch utiliza a ID da VLAN como um índice em uma tabela, para descobrir por meio de que portas deve enviar o quadro. Porém, Tanenbaum e Wetherall (2011) avisa que, como pode haver switches que não reconhecem a VLAN, o primeiro switch no caminho que a reconhece e toca em um quadro acrescenta os campos de VLAN, enquanto que o último neste caminho os remove. Como vantagem relacionada a segurança em redes em se utilizar uma VLAN, Forouzan (2010) cita que as VLANs fornecem uma medida extra de segurança, já que pessoas pertencentes ao mesmo grupo podem enviar mensagens de broadcast com absoluta garantia de que os usuários nos demais grupos naõ receberaõ essas mensagens. Apesar dessa afirmação, Nakamura e Geus (2007) reiteram que as VLANs não podem ser consideradas 44 como mecanismos de segurança, devido a possibilidade de exploração das suas vulnerabilidades, as quais serão abordadas posteriormente no ataque de VLAN hopping, na seção 2.3.7. Portanto, segundo eles, elas podem ser consideradas apenas como uma segmentação de redes para otimizar a utilização de broadcasts e multicasts, além de reduzir o número de colisões. 2.2.4 Modelo de referência em camadas TCP/IP Segundo Comer (2007), foram desenvolvidas várias ferramentas para ajudar os projetistas de protocolos a compreender as subpartes do problema de comunicação e planejar todo um conjunto de protocolos. Sendo que, de acordo com Soares, Lemos e Colcher (1995), dentre os princípios obtidos pela experiência adquirida no projeto de redes se destaca a ideia de estruturar a rede como um conjunto de camadas hierárquicas, cada uma sendo construída utilizando as funções e serviços oferecidos pelas camadas inferiores, o que se tornaria, em conformidade com Comer (2007), uma das ferramentas mais importantes, sendo chamada de modelo em camadas ou layering model. No que tange a segurança em redes, Tanenbaum e Wetherall (2011) relatam que a segurança não se ajusta nitidamente a nenhuma camada, mas sim todas as camadas da rede contribuem de alguma forma para a segurança. Antes de abordar o modelo de referência Transmission Control Protocol / Internet Protocol (TCP/IP) em si, cabe uma breve explicação de que, conforme informado por Comer (1998), Comer (2007), Júnior, Suavé, Moura e Teixeira (1999) e Kaufman, Perlman e Speciner (2002), a organização conhecida como Organização Internacional para a Normalização (International Organization for Standardization, ISO) criou o modelo de referência Open Systems Interconnection (OSI), ou, de forma mais completa, modelo de referência Reference Model - Open Systems Interconnection / International Organization for Standardization (RM-OSI/ISO). Segundo Tanenbaum e Wetherall (2011), esse modelo se baseia em uma proposta desenvolvida pela ISO como um começo em direção à padronização internacional dos protocolos usados nas várias camadas. De acordo com Campbell (1997), Comer (1998), Comer (2007), Kaufman, Perlman e Speciner (2002) e Tanenbaum e Wetherall (2011), a ISO escolheu dividir o seu modelo de referência em sete camadas conceituais distintas. Sendo que, na Figura 10, é possível visualizar cada uma delas, comparando com as camadas do modelo TCP/IP, que será abordado posteriormente nesta seção. 45 Figura 10 - As quatro camadas conceituais do TCP/IP relacionadas às do RM-OSI/ISO Fonte: Adaptado pelo autor com base em Kozierok (2005). Porém, cabe informar que Comer (2007) destaca que as ideias sobre o projeto de protocolos tem mudado desde que o RM-OSI/ISO foi desenvolvido, fazendo com que muitos protocolos modernos não se encaixem no modelo. Isso é evidenciado por Kaufman, Perlman e Speciner (2002) e Tanenbaum e Wetherall (2011), ao observarem que as redes reais raramente se encaixam perfeitamente no modelo de sete camadas e que protocolos associados a esse modelo raramente são usados atualmente. Fazendo um comparativo com o próximo modelo a ser abordado, Comer (1998) conta que o modelo RM-OSI/ISO, criado para descrever protocolos para uma única rede, não contém um nível específico de roteamento de interligação em redes igual ao dos protocolos do modelo TCP/IP. Comer (2007) justifica que o modelo de referência RM-OSI/ISO de sete camadas foi criado antes de a ligação inter-redes ser inventada, o que leva, por consequência, a este modelo RM-OSI/ISO não conter uma camada para protocolos para este fim. Além disso, o modelo de referência de sete camadas dedica uma camada inteira a protocolos de sessão, que se tornaram muito menos significativos à medida que os sistemas de computadores mudaram de grandes sistemas de tempo compartilhado para estações de trabalho pessoais. Com estes problemas em mente, Campbell (1997) e Comer (2007) relatam que os pesquisadores do Department of Defense (Ministério da Defesa dos Estados Unidos) desenvolveram o TCP/IP, um novo modelo em camadas para tratar precisamente do problema 46 de conexão de redes com hardwares diferentes. Júnior, Suavé, Moura e Teixeira (1999) ainda informam que esse modelo evoluiu a partir de trabalhos iniciados no Massachusetts Institute of Technology, contando com a cooperação de várias empresas, e, de acordo com Soares, Lemos e Colcher (1995) sendo patrocinado pela Defense Advanced Research Projects Agency. Como Comer (1998) defende que esse modelo não surgiu através de uma comissão normatizada, e sim de pesquisas, Soares, Lemos e Colcher (1995) trazem à tona que os padrões da arquitetura TCP/IP não são elaborados por órgãos internacionais de padronização, como a ISO ou o IEEE. Seguindo o que é dito por Júnior, Suavé, Moura e Teixeira (1999) e Tanenbaum e Wetherall (2011), este modelo ficou assim conhecido graças a seus dois principais protocolos, o Transmission Control Protocol (TCP) na camada de transporte e o Internet Protocol (IP) na camada de redes. Porém Júnior, Suavé, Moura e Teixeira (1999) informam que ele também é conhecido por pilha de protocolos internet e Comer (2007) diz que pode ser chamado de modelo inter-redes. De acordo com Colcher (1995), Júnior, Suavé, Moura e Teixeira (1999), Soares, Lemos e Tanenbaum e Wetherall (2011) o modelo TCP/IP é composto por quatro camadas, apesar de Tanenbaum e Wetherall (2011) adotarem, para explicação dos protocolos, um modelo híbrido de 5 camadas. O que também é realizado por Comer (2007), ao citar que o modelo contém cinco camadas. No caso dos que abordam ele como tendo cinco camadas, é adicionada uma camada física anterior a camada de acesso à rede. Comer (1998) clarifica essa divergência ao explicar que, em tese, o software TCP/IP é organizado em quatro camadas conceituais construídas em uma quinta camada de hardware. A Figura 10 demonstra a estrutura dessas quatro camadas do modelo TCP/IP, relacionando-as com as sete camadas do modelo RM-OSI/ISO e fazendo um paralelo com uma possível quinta camada. Comparando com o modelo RM-OSI/ISO, Tanenbaum e Wetherall (2011) explanam que ambos os modelos se baseiam no conceito de uma pilha de protocolos independentes e, além disso, as camadas deles tem praticamente as mesmas funcionalidades. Paralelamente, Soares, Lemos e Colcher (1995) trazem uma abordagem interessante ao citarem que os protocolos da arquitetura TCP/IP fornecem uma solução simples, porém bastante funcional, para o problema da interconexão de sistemas abertos, sendo que o fato de implementações de seus protocolos terem sido a primeira opção de solução não proprietária para a interconexão de sistemas fez com que essa arquitetura se tornasse um padrão de facto. Por outro lado, a estrutura organizacional da ISO, com membros representando vários países, se por um lado 47 aumenta o tempo de desenvolvimento dos padrões, por outro confere aos mesmos uma representatividade bem maior, tornando os padrões da ISO, por serem elaborados por uma instituição legalmente constituída para tal, padrões de jure. Tendo como base todos estes aspectos acima relatados, a fim de especificar as funcionalidades de cada camada, será utilizado o modelo de referência TCP/IP. 2.2.4.1 Camada de acesso à rede Serão tratadas aqui cada uma das camadas do protocolo TCP/IP individualmente, sendo que, conforme já abordado, para alguns autores existem cinco, para outros quatro. Os que abordam como sendo quatro tratam a camada física e de acesso à rede como fazendo parte da mesma camada, ou então