Sistemas de Detecção de Intrusão

Redes de Computadores 2 - UFRJ - 2022.2

Autores:

Guilherme Goldman da Silva

Raiano Martins Franco da Silva

Professor:

Luís Henrique Maciel Kosmalski Costa

Introdução

Ciberataques são atividades mal-intencionadas que buscam por vulnerabilidades em computadores causando mal funcionamentos ou interrupção no fluxo de dados, resultando por exemplo na interrupção de operações de empresas, instituições financeiras, instituições médicas e agências do governo. um ciberataque pode roubar, adulterar informações ou destruir um alvo especificado hackeando seu sistema além de causar grandes danos econômicos. Existem diferentes tipos de ciberataques como infecções por malware, exploração de vulnerabilidades, ataques de negação e phishing.

Tipos de ciberataques

Malware

Termo utilizado para especificar qualquer tipo de software desenvolvido para causar dano em algum dispositivo ou na rede, existem diversos tipos de malware como por exemplo vírus, worms, trojan e spywares.

Um vírus de computador é um programa que tem a capacidade de fazer uma cópia de si mesmo em um ou mais arquivos sem o conhecimento do usuário podendo executar alguma ação indesejada. Um vírus malicioso pode executar um programa incorretamente ou corromper a memória do computador já um vírus não malicioso pode se espalhar sem causar prejuízo.

No geral, a maioria dos vírus não infectam computadores sem a "permissão" do usuário, o malware que faz isso buscando ativamente suas vítimas é conhecido como worm. O worm é um programa que se propaga através da rede automaticamente explorando falhas de segurança em serviços amplamente utilizados. Worms podem causar os mais caros e abrangentes danos dentre todos os tipos de ataques devido a sua capacidade de se espalhar.

Existem alguns tipos de malware que não se auto replicam como o cavalo de Tróia, o cavalo de troia tem, como principal função facilitar o acesso indesejado e a entrada de outros malwares no computador. O tipo malware mais difícil de detectar é o Rootkit,este malware é desenvolvido para esconder a existência e garantir acesso privilegiado a processos maliciosos dificultando a sua detecção.

Por último, o Spyware é um tipo de malware que é instalado em um computador com objetivo de coletar informações sobre o usuário sem que ele saiba, informações sensíveis como endereços de email, senhas de cartões de crédito e dados bancários. A diferença entre o Spyware e o cavalo de Tróia é que o spyware tem como foco coletar informações e o cavalo de troia serve para facilitar o acesso a hackers a máquina infectada.

Exploração de vulnerabilidades

Uma vulnerabilidade de software é uma fraqueza em um programa de computador que pode ser explorada por um atacante para fornecer acesso não autorizado ou comprometer a performance do serviço, milhares de vulnerabilidades de softwares são descobertas e documentadas a cada ano.

Uma possível vulnerabilidade a ser explorada é composta por três elementos: uma falha no sistema, acesso a falha, e capacidade de se explorar aquela falha. Uma vulnerabilidade desconhecida ou descoberta recentemente e que ainda não foi corrigida pelos desenvolvedores do sistema é chamada de vulnerabilidade de dia zero, os ataques voltados a estas vulnerabilidades são chamados de ataques de dia zero.

Um exemplo típico de vulnerabilidade é a vulnerabilidade de buffer overflow onde os atacantes podem manipular um programa em execução para que se ultrapasse os limites do buffer e assim seja possível sobrescrever nas posições adjacentes de memória forçando o programa a utilizar o código do atacante.

Ataque de negação de serviço

Ataques de negação de serviço (DoS) é um tipo de ciberataque que tem o objetivo de interromper ou suspender serviços da internet de um hospedeiro, os atacantes inundam a vítima com um intenso tráfego sobrecarregando os recursos do hospedeiro ou de uma rede com conexões falsas assim novas não são aceitas e o serviço é interrompido.

Os recursos sobrecarregados podem ser banda da rede, capacidade de repasse de um roteador, servidores de nome, memória ou processamento em servidores ou estruturas de dados de sistemas operacionais, os ataques podem explorar vulnerabilidades ou sobrecarregar hospedeiros com um grande número de requisições de conexão.

Podemos classificar os ataques de negação de serviço quanto a organização do ataque de duas maneiras, ataques que tem origem em um hospedeiro ou um pequeno grupo de hospedeiros em uma mesma rede ou ataques com origem em grande grupos de hospedeiros distribuídos em redes diferentes, a estes damos o nome de ataques de negação de serviço distribuídos ou DDoS.

Os DDoS são bem mais difíceis de se detectar e os atacantes distribuem e propagam o script malicioso através múltiplos hospedeiros intermediários chamados de zumbis ou bots, a capacidade computacional destes zumbis e limitada porém com um grande número deles e uma estrutura bem organizada é possível sobrecarregar grandes servidores com conexões extremamente rápidas.

A maioria dos ataques de rede distribuídos exploraram a segurança, configuração ou falhas no software dos hospedeiros zumbis para garantir o controle sobre eles. Para organizar um ataque distribuído efetivo os atacantes recorrem a uma grande variedade de padrões de comunicação e estratégias de ataque baseadas em características como anonimato, facilidade de implantação e disponibilidade dos hospedeiros intermediários.

Ataques Baseados em Rede

Ataques baseados em rede são outro tipo de ciberataque que tem como alvo servidores web e aplicações baseadas em web, exemplos típicos de ataques baseados em rede são SQL-injection and cross-site-scripting.

SQL-injection:

Uma SQL-injection acontece quando dados maliciosos são inseridos em queries ou comandos em um servidor web, ataques de SQL-injection pode ser usados para vazar informações de serviços web comprometidos, informações como nomes, telefones, endereços e senhas de cartões de crédito de usuários. Uma das soluções para se reduzir o dano de um ataque de SQL-injection são: validação de dados, criptografia e redução de privilégios dos usuários do serviço web.

Cross-Site-Scripting:

Esse tipo de ataque tira vantagem de vulnerabilidades encontradas em aplicações como browsers web, o atacante faz com que scripts maliciosos sejam inseridos em páginas web retornando informações de usuários que se logaram ao site, possíveis soluções são inclui validação de dados na entrada e apagá-los para que não sejam recuperados(sanitização).

Ataque DNS (DNS spoofing)

Ataques DNS são ataques que têm como alvo o Banco de dados de cache de servidores Domain Name System (DNS), fazendo com que estes servidores retornem endereços de IP incorretos e desviem o tráfego para outro hospedeiro. atacantes podem utilizar este ataque para direcionar usuários a sites falsos e roubar seus dados.

AtaqueDNS

Ataques organizados e Botnets

Consiste em uma outra metodologia de ataque onde invasores controlam um grupo de hospedeiros infectados sendo capazes de realizar ataques distribuídos e hospedeiros infectados se comunicam com uma máquina mestre por meio de uma rede cliente/servidor ou peer-to-peer. Um grupo de hospedeiros infectados e seu mestre formam um botnet, os hospedeiros infectados são chamados de bot nodes e o mestre de bot master.

BotNode

Spam e Phishing

Spam

O termo Spam significa utilizar sistemas de mensagens eletrônicas para enviar um grande volume de mensagens não solicitadas pelo usuário indiscriminadamente, além das mensagens de email o termo também é usado para especificar a atividade em redes sociais e blogs. Spam e um método largamente utilizado para se espalhar malware por meio de entregando anúncios e links para phishing.

Phishing

Phishing é uma atividade criminosa que consiste em roubar dados pessoais e financeiros de um usuário para se passar por ele, o Phishing usa basicamente dois mecanismos de atuação, o primeiro é a engenharia social onde são enviados ao usuário e mails em que o atacante se passa por empresas ou agências sérias induzindo as vítimas a visitarem sites falsos e insiram dados pessoais, o segundo mecanismo insere malwares no hospedeiro da vítima como keyloggers inteligentes que enviam credenciais do usuário ao atacante ou navegadores infectados que redirecionam usuários para sites falsos que roubam seus dados.

Segurança de dispositivos móveis

Com o crescente aumento do uso de smartphones, tablets e etc.. os atacantes têm voltado sua atenção para esses dispositivos, uma infinita quantidade de aplicativos de terceiros em lojas de aplicativos e informações sensíveis como senhas, localização e fotos sendo acessados o tempo todo pelo dispositivo é evidente se torna cada vez mais necessário o desenvolvimento de mecanismos de segurança mais eficientes.

Crime Cibernético e Guerra Cibernética

Crimes cibernéticos são definidos como ofensas cometidas contra indivíduos ou grupos com algum motivo criminoso para intencionalmente agredir moralmente ou causar dano físico ou psicológico à vítima direta ou indiretamente usando redes de telecomunicações modernas como a internet.

Crimes cibernetivos comuns sao piraeamento de software, infração de direitos autorais, pornografia infantil, aliciamento infantil, invasão de privacidade ou intercpetação e divulgação de dados sigilosos.

Alguns crimes cibernéticos são tratados como questão de segurança nacional e tem como alvo segurança de países inteiros, onde nações travam uma guerra cibernética ou guerra de informações, o que evidencia a fundamental importância das redes de computadores para a segurança da nossa sociedade.

cyber_attakcs_taxonomy

Ferramentas de Defesa

Antivirus

Software desenvolvido para prevenir, detectar e eliminar programas maliciosos no computador do usuário.

Controle de acesso

São ferramentas que permitem controlar o tráfego de uma rede como por exemplo o firewall ao qual baseado em alguma política de segurança age como filtro sobre o tráfego de uma rede.

IDS/IPS

Sistemas IDS são sistemas de detecção de intrusão, cujo objetivo é identificar atividades suspeitas na rede a fim de prevenir e bloquear possíveis ataques. Essa prevenção é realizada através de uma monitoria e busca ativa na rede, tentando identificar padrões dos ataques mais conhecidos.

Para tomar decisões e conhecimento sobre possíveis ataques, os sistemas IDS precisam aplicar algum tipo de decisão algorítmica com base em dados e informações estatísticas obtidas através da monitoria da rede. Para isso é feito primeiro uma coleta dos dados para compor uma espécie de data lake para se aplicar técnicas de big data. Dentre os dados coletados, estão informações sobre os pacotes recebidos na rede, métricas do fluxo de conexão da camada de rede e transporte TCP/IP e até dados de componentes periféricos da máquina.

Os IDS podem ser do tipo ativo ou passivo. No caso de um IDS passivo ele apenas tem o objetivo e tarefa de detectar possíveis ataques de sistema maliciosos e avisar ao host do sistema, diferente do IDS ativo que permite tomar uma ação como resposta a partir da possível intrusão detectada. No caso dos IDS ativos eles podem ser classificados também como IPS, ou seja, sistemas de prevenção de intrusão.

Classificação dos IDS

IDSs podem ser classificados em categorias baseadas na tecnologia utilizada para a detecção, algumas das principais categorias são:

IDS baseados em assinatura

Estes IDSs comparam pacotes de dados no tráfego de uma rede com assinaturas ou atributos de invasões já conhecidas e decidem se o tráfego observado é malicioso ou não. Um IDS baseado em assinatura é eficiente em detectar ataques com assinatura monomórfica ou seja que tem um único formato.

IDS baseados em anomalia

São IDSs que detectam invasões identificando atividades que diferem dos padrões de utilização do usuário ou do comportamento normal do sistema observando atividades no computador ou o tráfego da rede. IDSs baseados em anomalias podem detectar invasões novas ou desconhecidas porém sofrem com o alto índice de alarmes falsos.

Sistema de detecção de intrusão de rede

Esses sistemas tem como objetivo e foco principal analisar o fluxo de tráfego na rede, ou seja, analisar dados dos pacotes na rede, conexões e hosts e a partir disso buscar alguma anomalia nos padrões dos dados. Geralmente os NIDS estão instalados junto na subrede junto ao firewall, pois a maioria dos ataques de rede tem como o alvo o firewall da rede. Uma vez que o ataque é identificado, o sistema alerta o administrador da rede.

Sistemas de detecção de intrusão de host

Nesta subclasse de sistemas de detecção de intrusão, o foco da análise dos dados coletados estão sobre dados do sistema hospedeiro, ou seja, arquivos em um geal, aplicações, memória RAM, uso de CPU, cookies e dados de navegação. Nesta classe geralmente ocorre uma comparação entre snapshots que são feitos do sistema de arquivos e caso arquivos críticos e arquivos do sistema estejam alterados sem razão, é emitido um alerta para o administrador do sistema.

Sistema de detecção de intrusão com base em protocolo

Para os sistemas PIDS, o objetivo é monitorar o servidor HTTP e a troca de mensagens entre as requisições e respostas para os usuários, a fim de detectar uma possível requisição maliciosa ou alguma resposta contendo algo fora do padrão. Sistema de detecção de intrusão com base em protocolo de aplicação

Similar aos PIDS, os APIDS se aplicam a um grupo de servidores, com o objetivo de interpretar a comunicação entre aplicações com o servidor a fim de detectar alguma anomalia por parte das aplicações consumidoras do servidor.

Sistemas de detecção híbridos

Os sistemas híbridos geralmente combinam mais de um tipo de IDS dos classificados anteriormente, ou seja, geralmente é um IDS que combina funcionalidades de NIDS com HIDS ou PIDS. Geralmente esses sistemas têm um desempenho mais custoso, porém com maior efetividade na detecção de ataques em mais de um canal.

Resposta a intrusão

Sistemas IDSs passivos geralmente trabalham offline analisando arquivos de log de sistema e registros do tráfego da rede, em alguns casos eles podem monitorar um hospedeiro ou o tráfego de uma rede passivamente. IDSs passivos podem enviar alarmes de intrusão ao administrador do sistema ou da rede caso detectem possíveis ataques já IDSs ativos podem reagir ou agir proativamente diretamente nas ameaças de ataque.

Sem respostas rápidas às ameaças detectadas, a proteção fornecida pelos IDSs se torna muito limitada, respostas manuais não conseguem proteger o sistema contra ataques rápidos, como DDoS altamente distribuído, sendo necessário o desenvolvimento de mecanismos de respostas automatizadas.

Resposta Manual e Alerta Passivo

IDSs passivos apenas detectam e notificam ataques em vez de propriamente impedi-los, depois de notificado é o administrador quem decide quais medidas serão tomadas em relação ao comportamento suspeito encontrado. Apesar de uma reposta Manuel ser capaz de interromper uma invasão, o vão entre a detecção da invasão e a resposta pode durar de minutos a horas permitindo que o ataque seja bem sucedido.

Resposta Ativa

IDSs ativos monitoram hospedeiros e analisam tráfego de rede em tempo real , uma vez detectado uma invasão o IDS envia um alerta ao administrador do sistema/rede e inicia a sua resposta reativa ou proativa ao ataque, durante o ataque a resposta acontece sem nenhuma intervenção humana. A maioria das respostas automáticas baseiam suas ações em tabelas de decisão simples que associam diferentes respostas a determinados ataques. O principal efeito colateral destas ações é que o IDS não leva em conta o efeito sobre o usuário legítimo, atacantes podem utilizar esta resposta para prejudicar o próprio sistema como por exemplo causando uma sobrecarga de respostas ao enviar uma grande quantidade de endereços com origens falsas(IP spoofing). Tradicionalmente as respostas ativas são divididas em duas categorias: respostas reativas e respostas proativas, a eficiência da proatividade da resposta depende da habilidade do sistema em prever ataques e violações.

Abordagens das respostas

Analise de decisão

Esta abordagem procura aplicar teoria da tomada de decisão na deliberação da resposta à intrusão criando deste modo um raciocínio automatizado. Um dos critérios mais importantes para uma resposta efetiva baseia-se no custo-benefício para se executar a resposta. Dois sistemas típicos de resposta à intrusão baseados em análise de decisão são: Emerald e Cooperating Security Managers (CSM) aos quais utilizam as métricas gravidade e confiabilidade para minimizar a interferência de respostas inapropriadas a atividades legítimas. A métrica de confiabilidade mede o grau de credibilidade de um alarme ser uma ameaça real e a métrica gravidade estima os potenciais efeitos negativos de cada resposta em operações legítimas na rede.

Teoria de Controle

Esta é uma abordagem que aplica teoria de controle realimentado na resolução das repostas as invasões detectadas um exemplo seria um protótipo de sistema desenvolvido por dois pesquisadores conhecido como Automatic Defense System (ADS) que consiste em um hospedeiro ao qual se quer proteger, um conjunto de sensores para reportar atividades suspeitas, um conjunto de atuadores que implementam as respostas e um controlador para coordenar todos os sensores e atuadores maximizando a proteção ao hospedeiro. O controlador incluiria dois principais componentes: um estimador recursivo e um seletor de resposta, o estimador recursivo processaria um fluxo de observações dos sensores para atualizar seu estado e guiar a resposta do seletor. Apesar de suas características promissoras, os sensores e as respostas dos atuadores não são 100% previsíveis, o que faz com que estimativas de modelos estatísticos sejam necessárias antes que cada decisão de controle seja tomada.

Teoria dos Jogos

Teoria dos jogos vem sendo aplicadas recentemente na solução de problemas de invasão e crimes cibernéticos, Apesar das técnicas baseadas em teoria dos jogos poderem ser potencialmente utilizadas para detecção de invasão e respostas a invasão a complexidade presente nos casos mais simples torna esta uma tarefa nada fácil.

Lógica Fuzzy

A técnica de fuzzy consiste em analisar e testar sistemas que a princípio se apresentam como caixa preta, para que a partir de testes com inputs de dados os mais aleatórios possíveis, possa se extrair informações e resultados dentro ou não do esperado. Com isso, os mais diversos cenários possíveis podem ser observados, como a observação de falhas no sistema, vulnerabilidades, bugs, comportamentos não esperados e validação de cenários mapeados.

Com isso, existem diversas técnicas de ataques que buscam vulnerabilidades nos sistemas a partir da geração de inputs de dados dos mais diversos e aleatórios possíveis para mapear os pontos fracos do sistema. A vantagem de utilizar a técnica de fuzzy consiste em conseguir capturar cenários em que seriam difíceis para que um input humano fosse possível de ser gerado.

Redes de detecção de intrusão colaborativas

As Redes de detecção de intrusão colaborativa ou collaborative intrusion detection network (CIDN ou IDN) são redes de sobreposição que conectam diferentes IDSs , estes IDSs podem trocar informações como alertas de invasão, listas negras de atacantes, assinaturas, arquivos suspeitos e regras de detecção de invasão , em uma IDN, IDSs coletam dados de outros na mesma rede IDSs e utilizam essas informações para alcançar uma melhor eficiência de detecção de invasão, por exemplo quando um IDS detecta um novo ataque ele pode enviar alertas aos seus colaboradores ao qual podem então identificar ataques semelhantes .

Desafios de IDN colaborativas

Apesar dos evidentes benefícios outras diversas questões podem ser levantadas quando se diz respeito a aplicabilidade de colaboração entre IDSs como por exemplo: colaboração entre IDS pode gerar sobrecarga na rede, IDSs com poucos recursos podem ter sua colaboração limitada, IDSs podem se tornar alvo de atacantes onde IDSs infectados enviam informações falsas para seus colaboradores reduzindo a eficiência da rede sendo necessário detectar e isolar nós infectados.

Outras dificuldades que podemos citar são, realizar avaliações sobre a eficiência das colaborações, manter a privacidade durante a troca de informações entre os IDSs e desenvolver mecanismos que incentivam a troca justa de informações entre os IDSs o que evitaria de nós se aproveitarem de informações compartilhadas de outros nós sem compartilhar as suas próprias.

Conclusões

À medida que novas vulnerabilidades e tipos de ataque se tornam conhecidos, os IDSs evoluem e se tornam cada vez mais sofisticados. IDSs estão melhorando continuamente e são capazes de detectar um número cada vez maior de ataques, incluindo cada vez mais assinaturas e modelos de ataque.

Apesar de muitos IDSs comerciais serem bastante eficazes na identificação de novos ataques, é difícil para os IDSs detectar todos os ataques potenciais. Os invasores precisam apenas escapar do IDS uma vez para comprometer o sistema com sucesso, enquanto os IDSs precisam conhecer todos os ataques possíveis para garantir uma defesa bem-sucedida.

Uma limitação dos IDSs é seu controle de sensibilidade. Um IDS sensível gera muitos alertas de intrusão (a maioria deles são alertas falsos), o que dificulta o manuseio pelos administradores, entretanto, quando um IDS é pouco sensível, pode perder ataques críticos (falsos negativos) e, portanto, falhar na proteção de redes e hosts. Determinar a sensibilidade ótima dos IDSs ainda é um problema difícil.

Perguntas:

1)O que é um ataque de Cross-Site Scripting e em qual classificação de ataque ele se enquadra?

Tipo de Ataque baseado em rede que tira vantagem de vulnerabilidades em aplicações web como browsers web, o atacante insere scripts maliciosos em páginas web roubando informações de usuários que se logaram ao site.

2) Como funciona um ataque de vulnerabilidade de buffer overflow?

O atacante manipula um programa em execução para que se ultrapasse os limites do buffer, sobrescrevendo o conteúdo de posições adjacentes de memória forçando o programa a utilizar o código do atacante.

3) Cite 3 problemas de redes IDN colaborativas.

Sobrecarga da rede, iDS com poucos recursos e colabora ao limitada e IDS infectados.

4) O que é Phishing?

Phishing é uma atividade criminosa que consiste em roubar dados pessoais de um usuário para se passar por ele.

5)Qual a diferença entre um IDS baseado em assinatura de um IDS baseado em anomalia?

Um IDS baseado em assinatura detecta invasão identificando padrões de ataque conhecidos, o IDS baseado em anomalia detecta invasões reconhecendo atividades diferentes do comportamento normal do usuário/sistema.

Referências

1) Carol Fung, Raouf Boutaba. Intrusion Detection Networks A Key to Collaborative Security. CRC Press 2014.

2) Ali A. Ghorbani, Wei Lu, Mahbod Tavallaee. Network Intrusion Detection and Prevention Concepts and Techniques. Springer New York 2010.

3) Ahmed Patel, Qais Qassim, Christopher Wills. A survey of intrusion detection and prevention systems. Information Management & Computer Security Vol. 18 No. 4, 2010, pp. 277-290. Emerald Group Publishing Limited.