Você está na página 1de 20

Ameaças

Inserir Título
as Aqui
Inserir Tecnologias
Novas Título Aqui
Simulação de Ataques para as Novas Tecnologias

Responsável pelo Conteúdo:


Prof.ª Me. Estefânia Angelico Pianoski Arata

Revisão Textual:
Prof.ª Dr.ª Luciene Oliveira da Costa Granadeiro
Simulação de Ataques
para as Novas Tecnologias

Fonte: Getty Images


Nesta unidade, trabalharemos os seguintes tópicos:
• Simulação de Ataques para as Novas Tecnologias.

Objetivo
• Ampliar o conhecimento sobre novas ferramentas, sistemas e programas, para simular
novos cenários e ataques, proporcionados pelas novas tecnologias, entre elas, objetos
inteligentes, cidades inteligentes, carros autônomos e outros.

Caro Aluno(a)!

Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl-
timo momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.

Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.

No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões


de materiais complementares, elementos didáticos que ampliarão sua interpretação e
auxiliarão o pleno entendimento dos temas abordados.

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.

Bons Estudos!
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Contextualização
Com o desenvolvimento de novos cenários de negócios, outras tecnologias surgem,
e prometem grandes avanços. Assim, para o desenvolvimento dessas tecnologias, algu-
mas necessidades precisam ser supridas, entre elas, segurança da informação. Com isso,
é preciso desenvolver análises e testes para propor segurança. E, portanto, novos siste-
mas são necessários, inclusive a simulação desses ataques, que é de suma importância
para uma análise mais próxima da realidade.

6
Simulação de Ataques
para as Novas Tecnologias
É provável que, em 2020, tenhamos em média 50 bilhões de dispositivos conectados
à Internet. Trata-se de Internet das Coisas, uma tendência, segundo Gartnier, da qual
surgiram grandes oportunidades. IoT – Internet of Things – é a conexão de objetos,
animais e dispositivos, capazes de se comunicarem entre si e compartilhar informações.
Entretanto, com o avanço de IoT e Inteligência Artificial, novas tecnologias relacionadas
a sistemas operacionais e protocolos precisam surgir, também (MIORANDI, 2012).

Embora alguns gargalos precisem de atenção, afinal, IoT tem a conexão entre dispo-
sitivos heterogêneos, que necessitam de tecnologias com pouca capacidade de hardware
e baixo consumo de energia. A conexão desses dispositivos pode ocorrer com redes de
sensores, RFID, M2M, smartphones, atuadores, computadores, entre outros. Com isso,
os dispositivos precisaram de sistemas capazes de trabalhar com capacidade inferior, as
quais são utilizadas em tecnologias tradicionais. Muitos desses sensores não têm cone-
xão direta com energia, assim como outros dispositivos.

Figura 1 – Carros Autônomos


Fonte: Getty Images

Carros autônomos são uma realidade para esse novo cenário da conexão de objetos.
Quando o assunto é IoT, segurança da informação não foi implementada devido às limi-
tações citadas anteriormente. Isso deixou a rede extremamente vulnerável, permitindo
diversos novos ataques, de acordo com as implementações dos sistemas e protocolos.
Outra questão que está em discussão sobre o desenvolvimento de objetos inteligentes
é sobre a mobilidade, pois os sensores precisam se comunicar mesmo em movimento.
Além disso, o fato de um nó entrar e sair da rede quando os sensores saem da área de
cobertura e o fato de o objeto estar em movimento prejudicam a segurança e a energia
do nó. Afinal, para um nó se comunicar com outro, em longa escala, eles precisam de
liberdade para acessar a rede, e as medidas de segurança de uma rede comum não pro-
porcionam essa liberdade. Assim como o fato de o nó se conectar em todo instante, ou
em intervalos pequenos de tempo, com outros sensores, faz com que eles consumam
mais energia, o que atualmente é uma limitação de recurso, para esse novo cenário.

7
7
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Devido a todas essas características


de cenários inteligentes, existem alguns
estudos relacionados a sistemas operacio-
nais para IoT. Entre eles, há o TinyOS e
Contiki/Cooja, sistemas embarcados que
foram desenvolvidos pensando em redes
de sensores sem fio, para implementação
de protocolos projetados para objetos in-
teligentes. O Android e o Linux também Figura 2 – Sistema Operacional TinyOS
estão desenvolvendo plataformas para IoT. Fonte: Wkimedia Commons

• TinyOS: É um sistema operacional de código aberto, desenvolvido pela Universida-


de Católica de Berkeley, para redes de sensores, computação oblíqua e objetos inte-
ligentes. Por se tratar de dispositivos com baixa capacidade de hardware e energia,
o sistema é bem simples e baseado em eventos. Sendo possível iniciar e finalizar
uma tarefa, com facilidade. O sistema suporta diferentes tipos de hardwares, mi-
crocontroladores, chips de rádio e chips de memória flash. Fornece serviços como
interface gráfica, gerência de energia, protocolos da camada: MAC, roteamento
e mensagens e rádio. Proporciona temporizadores e depuração dos programas.
O sistema operacional foi desenvolvido em uma linguagem próxima de C, chamada
NesC, onde os programas são construídos através de componentes, os quais são
estaticamente ligados a outros componentes através de interfaces – dessa forma,
melhora o tempo de execução do programa. Nos protocolos utilizados para sen-
sores e no TinyOS, a implementação não é diferente, o roteamento trabalha com
múltiplos saltos e sincronização de tempo. Quanto à capacidade de recursos, é de
8KB de memória de programa, 512 bytes de RAM, ou seja, recursos limitados.

Master TinyOS Release Repository: http://bit.ly/2M2gSXl

O ambiente de simulação do TinyOS é composto por: código fonte do sistema, com-


pilador nesC, compilador .gcc (por exemplo: para o microcontrolador AVR Atmega),
bibliotecas e aplicações de demonstração.

Figura 3 – Exemplo de um Mote – MICA2


Fonte: isi.edu

8
O TinyOS permite, por exemplo, simular aplicações SmartHome, podendo conectar
alguns dispositivos de uma casa, em uma rede IP. Entre esses dispositivos, estão fogão,
televisão, lâmpada, entre outros. Abaixo, segue uma tela de exemplo, depois de compi-
lar todos os componentes necessários para a simulação. E, para a simulação funcionar,
é importante escolher os sensores com que se deseja trabalhar, também conhecidos
como motes.

Após escolher o que deseja controlar na rede, ou seja, qual objeto da casa deverá se
comunicar com um endereço IP, precisa adicionar as funcionalidades que você irá con-
trolar naquele objeto. A Figura 4 controla as funções de um fogão por meio de sensores.

Figura 4 – Tela de simulação do TinyOS


Fonte: ceunaterra.ufg.fibre.org.br

• ContikiOS: É um sistema operacional difundido para Internet das Coisas e redes


de sensores sem fio, o qual possui um simulador próprio Cooja, o mesmo possui
motes reais, dispositivos reais, que são utilizados para simular e emular possíveis
cenários com esses dispositivos. É um sistema operacional dividido em duas partes:
o núcleo e os programas carregados. O núcleo é constituído do kernel Contiki,
do carregador do programa, da linguagem de tempo de execução e de uma pi-
lha de comunicação com drivers de dispositivo para o hardware de comunicação.
O tempo do sistema operacional Contiki funciona em tempo de compilação, ou
seja, todos os aplicativos do sistema são carregados e compilados de uma só vez.
O sistema, também apresenta novos protocolos, os quais contemplam cenários com
limitações de recursos, projetados e padronizados para IoT. Entre esses protocolos,
está o RPL e o 6LoWPAN na camada de rede e o CoAP na camada de aplicação.
Pensando em mobilidade – afinal, quando pensamos em cidades inteligentes, não
podemos descartar a necessidade de locomoção de pessoas, animais e objetos –, o
Contiki desenvolveu a possibilidade de adicionar, através de um plugin, mobilidade
aos sensores, durante a simulação. O simulador em questão é desenvolvido em C
e o simulador em Java. É possível baixar o programa através da página do site no
item InstantContiki e instalar no Windows. Por se tratar de um sistema baseado
em Linux, o mesmo pode ser executado diretamente no Ubuntu, o que torna a uti-
lização mais leve durante a execução. Lembrando que o sistema em questão ocupa
pouca memória e consome pouca energia.

9
9
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Os passos de utilização do sistema serão descritos abaixo, e a versão utilizada é a


3.0 – existem algumas mudanças que, embora pequenas, podem causar diferença no
momento da utilização.

Contiki – The Open Source Operating System for the Internet of Things: http://bit.ly/2Kwjb1E

Primeiramente, para você abrir o programa já instalado no Ubuntu, deve utilizar


o comando: cd local que o programa está armazenado/contiki/tools/cooja, dar
um enter e digitar: ant run_bigmen. Esses comandos devem ser executados no
terminal (prompt), do computador. Perceba que o comando bigmen aumenta a
quantidade de memória utilizada durante a simulação.

Figura 5 – Tela inicial de Simulação Contiki/Cooja


Fonte: Acervo do Conteudista

Nessa tela, é possível criar a simulação e definir algumas simulações, entre elas:
Radio Medium, Mote startup delay, New random seed on reload, Random seed.
Em seguida, você pode criar a simulação através do menu, File>New Simulation.

10
Figura 6 – Criar uma Simulação
Fonte: Acervo do Conteudista

Após criar a simulação, o próximo passo é inserir os motes, sensores – o Contiki


proporciona diversos tipos de motes para a simulação. Nesse exemplo, será utilizado o
SkyMote, através do menu Motes>Add Motes>Create new mote type e, em seguida,
apresentará a tela da firmaware utilizada.

O Contiki trabalha com diretórios, e o mesmo tem alguns exemplos próprios, para
serem utilizados em simulações, contidos na pasta exemples. Em seguida, para encon-
trar o mote e o tipo de simulação, é preciso entrar nessas pastas, por exemplo: clicar em
Browse e seguir até o diretório contiki/exemples/helloword/. Você escolhe o arquivo
a ser executado – para teste, pode ser o “hello-world.c”. E o botão Compile é utilizado
para compilar o arquivo de teste.

Figura 7 – Adicionar Motes


Fonte: Acervo do Conteudista

A Figura 7 mostra a tela que é responsável por adicionar a quantidade de motes ne-
cessária para a simulação, assim como definir a posição dos motes. O Contiki trabalha
com uma quantidade de vinte (20) motes, sem travar, em um computador comum. Para
mais motes, é necessária uma máquina dedicada.

11
11
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Após adicionar o mote, irá abrir a tela de inicialização da simulação, como pode ser
visto na Figura 8. Para esses exemplos, foram utilizados dois tipos de motes sender e
sink, onde o sink é o nó coletor. Encontrados na pasta: “examples=ipv6=rpl-collect”.

Figura 8 – Tela de Simulação


Fonte: Acervo do Conteudista

A Figura 8 mostra a tela de simulação: os motes estão numerados de 1 a 15.


Nesse exemplo, foi utilizado o protocolo RPL para analisar um ataque de inunda-
ção de mensagens. O nó 1 representa o nó coletor, está em verde, os nós ama-
relos são nós comuns e o nó roxo, de número 17, é o nó malicioso. A simulação
permite que você posicione o nós onde preferir e crie o cenário que desejar.
Para iniciar a simulação, basta clicar no botão Start. A tela mostra outras janelas,
sendo elas a TimeLine, mostra o momento de troca de mensagens entre os sensores,
em formato de linha. Outra ferramenta importante é o Collect View, com ela é possível
identificar quais nós estão associados, assim como identificar o número de saltos de um
nó até o nó raiz, o consumo de energia de cada nó.

Figura 9 – Collect View


Fonte: Acervo do Conteudista

12
A aba Node Info é a principal do Collect View. Conforme mencionado, é possível
verificar o número de saltos do nó, importante para analisar o tráfego, a quantidade
de pacotes recebidos. Em uma rede que sofre um ataque de interceptação e roubo de
pacotes, é possível detectar pelo Collect View, pois pacotes deixaram de ser entregues.
Para abrir a tela do Collect View, pasta clicar com botão direito no mouse no nó 1, e
selecionar mote tools for Sky 1>Collect View.

Observação: o nó 1 dessa simulação é o nó raiz, ou seja, o nó coletor. Trabalhar com


nó coletor é uma característica comum para rede de sensores.

Outra informação na janela da Figura 8 é o tempo da simulação, o tempo que você


termina de duração, normalmente não é o mesmo tempo do sistema. Sendo assim,
um valor que pode ser utilizado e é o suficiente para os motes se comunicarem é o de
30 minutos. Existe o tempo de envio de mensagens de dados entre os motes, ou seja,
o intervalo de tempo entre o envio de pacote de dados. O padrão do sistema é 60 se-
gundos – esse valor ajuda a calcular a quantidade de pacotes que deveria ter chegado
ao nó coletor. E pode ser alterado, basta clicar na Interface Gráfica em Report Interval
ou no código fonte em collect-view.c na pasta rpl-collect, na linha #define PERIOD 60
(COTRIM et al., 2017).

Os dados da simulação também são mostrados de forma “bruta” – ou seja, não


estão separados como mostra o collect view – e a janela responsável por esses dados
é a Mote Output.

Figura 10 – Janela Mote Output


Fonte: Acervo do Conteudista

Na Figura 10, a janela Mote Output mostra dados como tempo que iniciou a simu-
lação, a troca de mensagens entre os nós, tempo total gasto de processamento, tempo
total que o nó passou escutando o canal, tempo total transmitindo, tempo total esperan-
do um pacote, tempo ocioso escutando o canal. Esses valores também são apresentados
por nó e ciclo de clock do nó durante a coleta.

13
13
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Coletar esses valores é importante para realizar uma análise na rede, ou seja, qualquer
interferência de caráter malicioso ou não é possível ser analisada, cálculos iniciais têm uma
perspectiva de como a rede deve se comportar e ajudar a identificar as anomalias.

Quando o assunto é rede de sensores, o consumo de energia é uma informação sen-


sível, por se tratar de recursos limitados, e precisa de atenção e soluções. Para medir o
consumo de energia em determinadas aplicações, o Contiki/Cooja tem o PowerTrace,
ferramenta capaz de coletar o consumo de energia dos nós. Para utilizá-lo, é preciso
adicionar no firmware o Makefile na seguinte linha: APPS = powertrace.

Em seguida, é preciso adicionar o seguinte código no firmware dos motes:

#include “app/powertrace/powertrace.h” % Inclui a biblioteca do PowerTrace

Powertrace_start(CLOCK_SECOND * 60); %Adiciona a função coleta de dados


de energia a cada 60 segundos.

Essas informações são mostradas durante a simulação; para serem utilizadas futu-
ramente, precisam ser salvas. E os dados do PowerTrace não mostram o consumo de
energia calculado, mas sim o ciclo de clocks, das atividades dos nós, e precisam ser
convertidos em energia. As atividades coletas pela aplicação são: CPU, LPM – Low
Processor Mode, Transmission e Listen.

Abaixo, será mostrada a fórmula para calcular o consumo de energia do mote, Tmo-
teSky, utilizado para simulações com o protocolo RPL, um protocolo de roteamento
para IoT. Cada sensor tem sua fórmula para transformar o ciclo de clocks em Watts.

é(TX ×19,5) + ( LISTEN × 21,8) + (CPU ×1,8) + ( LPM × 0, 0545)ù ×V


E=ë û
(Clock × t )
• V: é a variável tensão do mote, que é 3 Volts para o TmoteSky;
• Clock: valor de conversão de ciclos de clocks para segundos, possui o valor
de 32768;
• T: é o tempo da simulação;
• TX: Tempo gasto transmitindo;
• Listen: Tempo que o nó gasta escutando o canal;
• CPU: Tempo de processamento do nó;
• LPM: Tempo gasto em espera.

O Contiki/Cooja também permite adicionar mobilidade aos sensores, motes, afinal,


cidades inteligentes, monitoramento de animais, drones, entre outros, precisam de mo-
bilidade. E para proporcionar ambientes próximos à realidade, o Contiki tem a possibi-
lidade de trabalhar com nós móveis. Para utilizar o plugin de mobilidade, inicialmente,
é preciso criar uma pasta “mobility” dentro da pasta “apps”, no Cooja, em seguida, é
preciso acessar o site do Contiki e baixar todos os arquivos para a pasta que você criou,

14
“mobility”. Em seguida, é necessário instalar o plugin dentro do Cooja, com os coman-
dos abaixo:

Cd contiki/tools/cooja/apps/mobility % acessa a pasta do plugin

Sudo ant run %criação do plugin

Em seguida, é necessário habilitar o plugin. Para utilizar na interface do Cooja, basta


acessar Setting>External tools path e, então, é possível configurar através da interface,
conforme a Figura 11. A janela possui uma linha “DEFAULT PROJECTDIRS” que é
responsável pelo caminho das ferramentas habilitadas no Cooja.

Figura 11 – Janela de Configuração do Plugin de Mobilidade


Fonte: Acervo do Conteudista

Após os passos acima, você deve clicar em “Apply for session”, para selecionar o plu-
gin, e então a aba mobilidade aparece no Cooja. E a mobilidade é realizada através de um
arquivo de posição por tempo, que deve ser salvo em .dat, conforme a Figura 12 abaixo.
Ou seja, você deve escolher em qual local da rede o nó com mobilidade deve partir.

#node times (s) x y


1 0.0 0 0
2 0.0 25 0
1 1.0 10 0
2 1.0 35 0
Figura 12 – Arquivo de Mobilidade

15
15
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Para gerar o arquivo de mobilidade e escolher qual movimento o nó irá realizar, exis-
tem algumas opções. Você pode criar o próprio scrip, usando Python, por exemplo,
ou utilizar ferramentas prontas, que proporcionem movimentos comuns, como pessoas
caminhando em um local como Manhattan, Random Waypoint, entre outros. O link
abaixo dá acesso ao manual do Bonmotion, que pode gerar esse arquivo de mobilidade.

BonnMotion – A mobility scenario generation and analysis tool: http://bit.ly/2KzJBj0

Após montar toda a simulação, definindo a quantidade de nós, sensores, assim como
se será realizado com mobilidade ou sem mobilidade, tempo de envio dos pacotes, ata-
que a ser testado, ou qualquer outra configuração, os logs devem ser salvos. Somente
com arquivos de logs, é possível analisar os resultados. É importante deixar a simulação
rodando sozinha, para simular mais de uma vez, e obter um intervalo de confiança.
A utilização de scrips ajuda quando o assunto é automatizar simulações, até mesmo para
salvar logs.

Para criar um nó malicioso, a ser utilizado durante a simulação, é necessário copiar


a pasta do Contiki/Cooja, salvar com outro nome, e alterar o que for necessário dentro
dessa nova pasta. Alterar apenas o arquivo em questão muitas vezes não funciona, pois
mais de um arquivo deve ser alterado. As pastas devem ser salvas na mesma partição,
facilitando o momento que iniciar a simulação.

As questões de mobilidade são tratadas devido às possibilidades de cidades inteligen-


tes, Smarts City, carros autônomos, que necessitam de segurança da informação para
que possam se tornar realidade. Um ataque na camada de roteamento, por exemplo,
conforme citado no trabalho, no protocolo RPL do inglês (IPv6 Routing Protocol for
Low Power and Lossy Networks), para IoT, não tem segurança implementada, e qual-
quer nó pode entrar ou sair na rede. Com a utilização do TinyOS ou Contiki/Cooja, é
possível simular diversos ataques. Esses ataques podem ser em ambientes com mobili-
dade ou sem mobilidade.

Em ambientes com carros autônomos, um nó malicioso pode causar grandes desastres.


As simulações de diversos ataques podem ser realizadas no Contiki/Cooja, até mesmo
com mobilidade, assim como ataques em casas inteligentes, sem mobilidade, com a diver-
sidade de sensores, motes, propostos por qualquer um dos sistemas apresentados.

Para ataques a rede de sensores, basta encontrar as vulnerabilidades do protocolo e


aproveitar como uma vulnerabilidade. Para ataques de inundação, basta fazer com que
o protocolo de rede utilizado envie mensagens, sem respeitar o tempo de espera. Por
exemplo, o RPL, com mensagens de controle, mais especificamente com a mensagem
DIO - DODAG Information Object, pode ser utilizado para um ataque Hello. O valor
de Rank, utilizado para os nós se associarem, pode ser alterado e fazer com que os nós
desviem para si o trafego da rede. E esses ataques podem ser implementados no Conti-
ki, conforme o exemplo acima, da utilização do sistema.

16
Para simulação de carros autônomos, existem simuladores próprios para o que cha-
mamos de VANETS, alguns deles são: Groovenet, SUMO, MOVE, CityMOB, Netstream,
VanetMobSim, entre outros. Mas os simuladores para VANETS, muitas vezes, necessitam
de um simulador de tráfego e um simulador de rede, e também têm algumas limitações,
devido à grande quantidade de carros que, muitas vezes, é utilizada na simulação.

17
17
UNIDADE
Simulação de Ataques para as Novas Tecnologias

Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Livros
Um Sistema de Detecção de Intrusão em RFID para Ataques do Tipo Jamming
AVANÇO, L. Um Sistema de Detecção de Intrusão em RFID para Ataques do Tipo
Jamming, Instituto de Pesquisa Tecnológicas do Estado de São Paulo, 2015.

Relatório sobre o Sistema Operacional TinyOS e a Linguagem NesCRelatorio sobre o Sistema


Operacional TinyOS e a Linguagem NesC
LEMOS, M. V. S.; LEAL, L. B. Relatório sobre o Sistema Operacional TinyOS e a
Linguagem NesCRelatorio sobre o Sistema Operacional TinyOS e a Linguagem
NesC. Fortaleza – CE.

Vídeos
6LoWPAN Packet Analysis in Contiki OS
https://youtu.be/hLFFCYB65ho

Leitura
ContikiOS
http://bit.ly/2M400Q7

18
Referências
COTRIM, J.R.; PIANOSKI E.; KLEINSCHMIDT, J. H. Minicurso SBrT2017: Roteamento
em IoT – Protocolos, Mobilidade e Segurança. In: XXXV Simpósio Brasileiro de
Telecomunicações, 2017.

MIORANDI, D.; SICARI, S.; PELLEGRINI, F.; CHLAMTAC, I. Internet of things:


Vision, applications and research challenges, Ad Hoc Networks, vol. 10, no. 7, pp.
1497–1516, 2012. [online]

Sites Visitados
<www.tinyos.net>. Acesso em: 04 de abril de 2019.

19
19

Você também pode gostar