-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path51.ambiente.tex
More file actions
247 lines (221 loc) · 12.1 KB
/
51.ambiente.tex
File metadata and controls
247 lines (221 loc) · 12.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
% !TeX root = ./00.ppgcc-2020.tex
\section{Ambiente de Teste}\label{sec:ambiente}
Com o objetivo de avaliar esta proposta e averiguar os efeitos da distribuição
da detecção de novidades em um cenário \iot, construiu-se um ambiente
experimental de névoa.
Este ambiente é composto por três computadores de única placa (\emph{Single
Board Computer}), Raspberry Pi 3 model B equipados com o SoC
(\emph{system-on-chip} - sistema em um chip) de arquitetura ARM \emph{BCM2837} com
$4$ núcleos de processamento à frequência de $1.2\,GHz$, $32\,kB$ e $512\,kB$ de
memória \emph{cache} nível 1 e 2 respectivamente, $1\,GB$ de memória RAM,
armazenamento em cartão SD e conectados por rede cabeada \emph{Ethernet}.
% Switch
% Hélio:
% Há algo estranho na descrição dos nós; parece que você está misturando nós e cores.
% Talvez seja mais claro falar do número de nós, ao invés dos cores...
% ficou melhor!
A ideia central é criar um \emph{cluster} simples simulando \emph{gateway} de uma rede
\iot com recursos limitados.
Este \emph{cluster} armazenou todo o código-fonte, binários (compilados no mesmo \emph{cluster}) e
\dataset.
Nesta configuração, o \dataset é armazenado no cartão SD do nó raiz e é lido para
cada execução do experimento.
Todos os experimentos foram executados neste \emph{cluster} para isolamento de outras
variações imprevistas e para garantir que as comparações seriam justas com
\emph{software} e \emph{hardware} constante.
% The idea was to create a simple cluster simulating an \iot network with
% constrained resources at the edge of the network.
% This cluster stored all source code, binaries (compiled and linked in place) and
% data sets.
% In our setup, the data set is stored in the root's node SD card and is read for
% each experiment.
% All experiments were executed in this cluster for isolation of otherwise
% unforeseen variations and for safe software comparison with constant hardware.
% data sets, being accessed via our laboratory network over Secure Shell (SSH).
O \dataset \emph{Kyoto 2006+}\footnote{
O \dataset \emph{Kyoto 2006+} está disponível em \url{http://www.takakura.com/Kyoto\_data/}.
}, tráfego das \emph{Honeypots} da
Universidade de Kyoto, é a referência de um cenário real para este trabalho.
% será que é o ``foco''? Talvez é a ``referência de um cenário real''...(?)
Este \dataset contém dados ainda representativos (até 2015) e as característica
desejáveis de um conjunto de dados (realismo, validade, etiquetas previamente
definidas, alta variabilidade, reprodutibilidade e disponibilidade pública) são
atendidas \cite{KyotoDataset,Song2011kyoto}.
O segmento utilizado deste \dataset é o de Dezembro de 2015, contendo $7\:865\:245$ instâncias.
Deste segmento, são mantidas apenas instâncias associadas a tráfego normal ou
a ataques conhecidos, identificados por \nids que tenham mais de $10\,000$ instâncias
para significância, como feito previamente por \citeonline{Cassales2019}.
% , this removes 46,390 instances. TODO: revisar, pois 7M != 700K.
As instâncias mantidas são normalizadas para que o valor de cada característica
original (como endereço IP, duração do fluxo, serviço) seja transposta para o
intervalo Real $[0, 1]$.
O conjunto resultante da operação recém descrita é então dividido em dois
conjuntos, treinamento e teste.
Para avaliar a detecção de ataques, o conjunto treinamento é composto apenas de
tráfego normal, contendo $72\:000$ instâncias.
O conjunto de teste possui $653\:457$ instâncias, sendo elas
$206\:278$ instâncias com classe ``$N$'' (normal) e
$447\:179$ instâncias com classe ``$A$'' (ataque).
%
% Não entendi essa questão de filtrar apenas os ``normal'' class no training set... Hélio
% acho que fez sentido... detectar o que não se aproxima de normal como novidade...
Destaca-se que essa manipulação do \dataset causa \emph{Overfitting} para a classe
normal e \emph{under-fitting} para a classe ataque, pois o sistema primeiro
precisa detectar um padrão novidade para então adicionar ao modelo.
%O foco deste trabalho não é a otimização da detecção de intrusão é contexto de validar metodologia de construcao do \mfog - distribuição e paralelismo em ambiente em \fog.
Como o foco deste trabalho é na arquitetura e metodologia de paralelização e
distribuição em névoa, a otimização do processo de detecção de intrusão não foi
abordada, deixando a questão de escolha do \dataset e do processo de sua manipulação
em aberto.
Quanto aos parâmetros do algoritmo \minas, ilustrados na Figura
% \ref{fig:params}, os valores foram escolhidos por \hlke{serem valores comuns para o
% algoritmo presentes na literatura} \cite{Faria2013Minas,Faria2016minas} e na
\ref{fig:params}, valores comuns para o algoritmo presentes na literatura
\cite{Faria2013Minas,Faria2016minas} e na implementação de referência \refminas
\cite{Faria2013source} foram selecionados.
Os parâmetros que não tem valores comuns na literatura foram escolhidos e
ajustados até os os resultados obtidos se aproximarem aos resultados da
implementação de referência \refminas.
\begin{figure}[htb]
\centering
\begin{lstlisting}
MinasParams minasParams = {
.k=100, .dim=22, .precision=1.0e-08,
.radiusF=0.25, .minExamplesPerCluster=20, .noveltyF=1.4,
.thresholdForgettingPast = 10000,
};
\end{lstlisting}
\caption{Parâmetros do algoritmo \minas.}
\label{fig:params}
\end{figure}
Os parâmetros utilizados da literatura são
\texttt{k}, que é o número de \mclusters gerados pelo algoritmo de agrupamento,
\texttt{minExamplesPerCluster}, que indica o número mínimo de exemplos para um
\mcluster válido (representatividade) e,
\texttt{thresholdForgettingPast}, que estabelece o limite para remoção de exemplos do conjunto de
desconhecidos.
Os parâmetros escolhidos por aproximação de resultados são:
\texttt{precision}, que é o valor limite para melhora na distância global reduzindo as
iterações no algoritmo de agrupamento (otimização),
\texttt{radiusF}, que corresponde ao fator que multiplica o desvio padrão das distâncias entre o
centro e cada exemplo formador do novo \mcluster definindo o raio do \mcluster
e,
\texttt{noveltyF}, que é o fator que multiplica o desvio padrão das distâncias do
\mcluster mais próximo distinguindo um novo padrão entre extensão e novidade.
% (k, minExamplesPerCluster, noveltyF, thresholdForgettingPast)
% (precision, radiusF)
% Para realização dos experimentos, diversas configurações de ambientes são
% propostas.
% Os ambientes selecionados são: local,
% \notahl{o que muda na paralelização e na \textbf{distribuição} de instâncias
% do módulo \textbf{classificador}?}
% \hlhl{nuvem e névoa}.
% As configurações consistem na distribuição de módulos da implementação \mfog
% sendo executadas em combinações de ambientes nuvem e névoa com variada
% quantidade de nós.
% dá-lhe Yoda! Hélio
% O ambiente local é composto por um único nó computacional, consistindo de um
% computador pessoal equipado com um processador de 8 núcleos, $16GB$ de memória e
% armazenamento em estado sólido (SSD) usado para o desenvolvimento e referência
% em comparações.
% O ambiente nuvem é provido pela utilização da infraestrutura de nuvem da
% Universidade Federal de São Carlos (Cloud{@}UFSCar\footnote{Disponível em
% \url{http://portalcloud.ufscar.br/servicos}}).
% O ambiente de névoa (\fog) é composto por computadores de única placa
% (\emph{Single Board Computer}) equipados com processador de arquitetura ARM de 4
% núcleos, $1GB$ de memória, armazenamento em cartão SD (\emph{SD-card}) e
% conectados por rede sem fio.
% A combinação de diferentes formas de distribuição dos nós tem por objetivo \hlhl{demonstrar padrões de
% latência} e qualidade que podem afetar implantações em ambientes reais que não
% são geralmente destacados quando os experimentos são realizados em um único
% nó ou ambiente.
% Faz parte também do ambiente de teste os conjuntos de dados (\datasets)
% \emph{KDD99}
% % \hlfa{e \emph{Kyoto 2006+}}
% e \emph{Kyoto 2006+}
% que foram selecionados por motivos distintos.
% O \dataset \emph{Kyoto 2006+} é o foco deste trabalho, pois contém dados ainda
% representativos (até 2015) e as característica desejáveis de um conjunto de
% dados (realismo, validade, etiquetas previamente definidas, alta variabilidade,
% reprodutibilidade e disponibilidade pública) são atendidas
% \cite{KyotoDataset,Song2011kyoto}.
% O \dataset \emph{KDD99} é amplamente utilizado em trabalhos de detecção de
% anomalia.
% Porém, como não possui mais a característica de realismo, uma vez que foi
% construído em 1998, neste trabalho o \dataset \emph{KDD99} é utilizado somente
% para que o leitor possa comparar com outros trabalhos
% \cite{Tavallaee2009,Protic2018KddKyoto}.
% Os dois \datasets mencionados e outros abordados em discussão e avaliados como
% relevantes são
% Por exemplo, o KDD original tem 41 atributos. A base é rotulada para 24
% tipos de ataques divididos em 4 grupos: DOS ...
%
% O paper que analisou a fundo o KDD99 foi este:
%
% M. Tavallaee, E. Bagheri, W. Lu, and A. Ghorbani, “A detailed analysis
% of the KDD Cup 1999 data set,” in Proc. 2nd IEEE Symp. Comput. Intell.
% Secur. Defense Appl., 2009, pp. 1–6.
%
% Qual é o defeito dele? tem muitos dados replicdos tanto na base de
% treinamento quento na de teste, o que gera viés nos resultados. Para
% resolver isso propuseram o NSL-KDD que é um subconjunto do KDD que evita
% esse problema
% \notake{
% CICIDS2017 {https://www.unb.ca/cic/datasets/ids-2017.html} e
% ISCXTor2016 {https://github.com/ahlashkari/CICFlowMeter}
% }
% \notafa{Uma sugestão seria usar datasets artificiais também a fim de avaliar
% outras caracteristicas tais como: nro de atributos, frequencia do surgimento de
% novidades, mudanças abruptas, graduais, etc. }
% \begin{table}[ht]
% \caption{Sumário dos conjuntos de dados}
% \centering
% \begin{scriptsize}
% \begin{tabularx}{\linewidth}{X|X|X|X}
% Nome &
% Origem &
% Descrição &
% Acesso Público \\
% \hline
% \hline
% \emph{KDD99} \cite{Tavallaee2009,Protic2018KddKyoto} &
% Captura de Fluxos de rede com ataques simulados &
% 41 atributos (sumário de fluxo), 23 classes, $4\;898\;431$ instâncias, $709$ MB &
% \url{https://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html} \\
% \hline
% \emph{Kyoto 2006+} \cite{Song2011kyoto,Protic2018KddKyoto}&
% Captura de Fluxos de rede com HoneyPot &
% 23 atributos (sumário de fluxo), 3 classes, $7\;865\;245$ instâncias e $1.3$ GB (dez-2015) &
% \url{https://www.takakura.com/Kyoto_data/new_data201704/} \\
% % 0.000000 other 0 0 0 0.00 0.00 0.00 0 0 0.00 0.00 0.00 S0 00 0 -1
% % fdbd:f115:35b2:0424:40aa:098c:03e5:149b 3712
% % fdbd:f115:35b2:c891:7db9:2762:6182:03eb 445 00:00:00 tcp
% \hline
% % ISCXTor2016 \cite{Draper-Gil2016} &
% % Origem &
% % 28 atributos, &
% % \url{https://www.unb.ca/cic/datasets/tor.html} \\
% % \hline
% % ISCXVPN2016 \cite{Lashkari2017} &
% % Origem &
% % 28 atributos, &
% % \url{https://www.unb.ca/cic/datasets/tor.html} \\
% % \hline
% CICIDS2017 \cite{Sharafaldin2018cicids2017} &
% Captura de Fluxos de rede com ataques simulados com perfil de trafego de 25
% usuários normais e de 6 perfis de ataques durante 5 dias (1º dia sem ataque) &
% 80 atributos (sumário de fluxo extraído de CICFlowMeter), 15 classes,
% $2\;830\;751$ instâncias e 1.2GB em arquivos \emph{pcap} e \emph{csv} &
% \url{https://www.unb.ca/cic/datasets/ids-2017.html} \\
% \hline
% \emph{Radial Basis Function} (RBF) da biblioteca \emph{Massive Online Analysis} (MOA)
% \emph{4CRE-V2} &
% Sintético gerado por função RBF da biblioteca MOA com características de
% mudança e evolução de conceito &
% Atributos ($\mathbb{R}$), exemplos, classes, evoluções e mudanças configuráveis &
% \url{https://sites.google.com/site/nonstationaryarchive/home} \\
% \hline
% \end{tabularx}
% \label{tab:summary-dataset}
% \end{scriptsize}
% \end{table}