Author Topic: Sistemi adattivi  (Read 294 times)

0 Members and 1 Guest are viewing this topic.

Offline Flavio58

Sistemi adattivi
« Reply #1 on: March 12, 2018, 10:01:22 PM »
Advertisement
Molti anni fa la stampa pubblicò un articolo dove ero vicino a un firewall adattivo della cisco che allora costava più dei servers



La teoria era in fondo la stessa in quanto i dati del firewall venivano passati a una rete neurale la quale valutava se la tipologia era conforme al modo classico rivelando anomalie.
Il costo del firewall cisco superava i 30.000.000 L e la tecnologia, pur essendo avanzata, non aveva nulla a che fare con i moderni sistemi.
Ora grazie a chip neurali la cosa potrebbe essere fatta anche con schede embedded.
La tecnologia del deep learning di fatto permette anche di sfruttare dataset condivisi.

TensorFlow è una libreria Python open source per l'apprendimento automatico. Fa calcolo matematico utilizzando grafici di flusso di dati. Questo articolo si sofferma sull'uso di TensorFlow come strumento forense per classificare e prevedere il malware proveniente da honeynet e honeypot.

Il data mining e l'apprendimento automatico sono metodi chiave utilizzati per ottenere informazioni dai database in cui i modelli nascosti vengono analizzati da un enorme archivio di record. Nella metodologia classica, esistono numerosi algoritmi per il clustering, il mining delle regole di associazione, la visualizzazione e la classificazione per ottenere informazioni significative per l'analisi predittiva.

Oggigiorno sono disponibili numerosi strumenti e tecnologie per l'implementazione di data mining e machine learning tra cui WEKA, Tanagra, Orange, ELKI, KNIME, RapidMiner, R e molti altri che hanno Java, Python o C ++ per la programmazione e la personalizzazione del back-end .

L'apprendimento automatico ha compiti fondamentali associati alla classificazione e al riconoscimento, che sono solitamente correlati all'intelligenza artificiale. Generalmente, queste operazioni vengono eseguite utilizzando un approccio metaeuristico in cui l'ottimizzazione globale o risultati semplicemente efficaci possono essere ricavati da un enorme spazio di ricerca di soluzioni.

Esistono numerosi approcci di soft computing come reti neurali, logica fuzzy, macchine di supporto vettoriale, intelligenza dello sciame, metaureuristiche, ecc. La metaeuristica, a sua volta, ha molte ottimizzazioni come l'ottimizzazione della colonia di formiche, la ricerca di cucù, l'algoritmo delle api, l'ottimizzazione dello swarm delle particelle , eccetera.

Nonostante il numero di approcci metaeuristici e altri efficaci algoritmi di soft computing, ci sono molte applicazioni per le quali è richiesto un più alto grado di accuratezza e un tasso di errore più basso.
Per l'apprendimento automatico, è possibile utilizzare gli approcci delle reti neurali artificiali (ANN) o delle macchine di supporto vettoriale (SVM) con il set di dati da integrare. ANN può essere utilizzato per l'analisi di rilevamento o classificazione del malware, riconoscimento facciale, impronte digitali o analisi delle vene delle dita in cui il set di dati precedente viene utilizzato per addestrare un modello e quindi viene eseguita la previsione o la classificazione di ulteriori set di dati. L'apprendimento basato su ANN dipende completamente dal set di dati utilizzato per addestrare il modello e apparentemente, se il set di dati non è accurato, l'analisi predittiva influenzerà l'accuratezza dei risultati.

Per implementare la modellazione e la formazione con ANN, sono disponibili numerosi strumenti open source tra cui SciLab, OpenNN, FANN, PyBrain e molti altri.

Apprendimento
profondo L'apprendimento approfondito è uno dei rami dell'apprendimento automatico con una solida base di algoritmi con elaborazione a più livelli, un più alto grado di calcolo e accuratezza e un tasso di errore più basso con l'integrazione dell'apprendimento basato su grafi profondi. Altre branche dell'apprendimento profondo comprendono l'apprendimento strutturato profondo, l'apprendimento automatico profondo o l'apprendimento gerarchico.

L'apprendimento approfondito può essere utilizzato per varie applicazioni del mondo reale tra cui riconoscimento vocale, rilevamento e classificazione del malware, elaborazione del linguaggio naturale, bioinformatica, visione artificiale e molti altri.

TensorFlow: una libreria software open source basata su Python per l'apprendimento profondo.
TensorFlow ( tensorflow.org ) è una potente libreria di software open source per l'implementazione dell'apprendimento in profondità. Si basa su Python e C ++ sul back-end, con l'incorporazione di algoritmi per il flusso di dati e calcoli numerici basati su grafici per ottenere calcoli a più livelli con maggiore precisione e un tasso di errore più basso.
TensorFlow è stato sviluppato da Google nell'ambito di un progetto di ricerca per l'apprendimento approfondito intitolato Google Brain. È un sistema di seconda generazione sviluppato da Google dopo DistBelief. TensorFlow è stato rilasciato come open source nel novembre 2015 da Google e questa mossa ha spinto ricercatori, accademici e scienziati a lavorare su questa potente libreria.

TensorFlow può essere installato con pacchetti binari o sorgenti GitHub autorizzate. È possibile utilizzare uno dei seguenti metodi per installarlo:

Python Pip
Virtualenv
Anaconda
Docker Toolbox
Installazione basata su sorgente

Esecuzione e test di TensorFlow sulla riga di comando
Sul terminale, è possibile eseguire le seguenti istruzioni per il test:

Code: [Select]
$ python
>>> import tensorflow as myTensorFlow
>>> MyMessage = myTensorFlow.constant(‘Hello To All’)
>>> mysession = myTensorFlow.Session()
>>> print(sess.run(MyMessage))
Hello To All
>>> x = myTensorFlow.constant(9)
>>> y = myTensorFlow.constant(2)
>>> print(mysession.run(x + y))
11
>>>

Utilizzo di TensorFlow per l'analisi dei pacchetti di rete
Per la classificazione e la previsione del malware dai pacchetti di rete, il set di dati deve essere recuperato da qualsiasi fonte autentica come honeynots, honeynets, archivi di dati, portali di dati aperti, ecc. Molte società di anti-virus e organizzazioni di ricerca rilasciano i propri set di dati per scopi di ricerca e sviluppo, consentendo agli algoritmi di ricerca di essere implementati da studiosi e professionisti della ricerca.

Se sono richiesti i set di dati del malware o del traffico di rete, è possibile utilizzare i seguenti URL:

http://www.netresec.com/?page=PcapFiles
https://wiki.wireshark.org/SampleCaptures
https://snap.stanford.edu/data/#email
http://www.secrepo.com/

Poiché il traffico di rete viene catturato in formato PCAP, è necessario trasformare il formato PCAP in CSV (valori separati da virgola) utilizzando Snort IDS, tramite il quale tutti i file di avviso da PCAP possono essere generati e quindi modificati in formato CSV.
Per leggere un file pcap in Snort ID, utilizzare il seguente codice:

Code: [Select]
$ snort -r mypcap.pcap   
$ snort --pcap-single= mypcap.pcap

Il formato del file di avviso generato da Snort IDS è il seguente:

Code: [Select]
[**] [1:2016936:2] Suspicious inbound to Database port 1433 [**]
[Classification: Potentially Bad Traffic] [Priority: 2]
07/07-10:10.817217 <IP>:<PORT> -> <IP>:<PORT>
TCP TTL:112 TOS:0x0 ID:256 IpLen:24 DgmLen:20
******S* Seq: 0x43EE1111  Ack: 0x0  Win: **** TcpLen: 20
[Xref => http://doc.url.net/2016936]
 
Code: [Select]
[**] [1:2016936:2] Suspicious inbound to Database port 1433 [**]
[Classification: Potentially Bad Traffic] [Priority: 2]
07/07-10:10.838622 <IP>:<PORT> -> <IP>:<PORT>
TCP TTL:113 TOS:0x0 ID:256 IpLen:22 DgmLen:21
******S* Seq: 0x6D5F1111  Ack: 0x0  Win: **** TcpLen: 20
[Xref => http://doc.url.net/2016936]

Dal file di avviso generato da Snort IDS, i record di "Potentially Bad Traffic" possono essere tagliati e inseriti in un file CSV separato.
Il file CSV finalmente ottenuto viene letto in TensorFlow per l'apprendimento approfondito del modello e un'ulteriore analisi predittiva del traffico di rete imminente. Utilizzando questo approccio, il traffico in arrivo può essere analizzato per la probabilità di essere malware o meno.

Code: [Select]
>>> import pandas
>>> dataset = pandas.read_csv(‘mydataset.csv’)
>>> dataset.shape
(1000, 5)
>>> data.columns
Index([u’Classification’, u’DGMLEN’, u’IPLEN’, u’TTL’, u’IP’],dtype=’object’)
>>> y, X = train[‘Classification’], train[[‘DGMLEN’, ‘IPLEN’, ‘IP’]].fillna(0)
>>> X_Modeltrain, X_Modeltest, y_Modeltrain, y_Modeltest = train_Modeltest_split(X, y, test_size=0.1, random_state=29)
>>> lr = LogisticRegression()
>>> lr.fit(X_Modeltrain, y_Modeltrain)
>>> print accuracy_score(y_Modeltest, lr.predict(X_Modeltest))
Output - 0.60183838
The accuracy score of existing model can be evaluated
Screenshot dal 28 al 26-07-2016Figura 3: demo live di TensorBoard

Visualizzazione dell'apprendimento e grafici usando TensorBoard
La visualizzazione del comportamento di apprendimento può essere analizzata usando TensorBoard, che è un insieme di applicazioni basate sul Web. TensorBoard include la visualizzazione di cinque tipi di dati tra cui immagini, audio, scalari, grafici e istogrammi in modo da poter effettuare analisi migliori e più efficaci.



Una demo live di TensorBoard è disponibile su http://www.tensorflow.org/tensorboard/ .

Per aprire ed eseguire TensorBoard, l'applicazione deve essere aperta in un browser Web su Port 6006 - http: // localhost: 6006 / .

Nel pannello in alto a destra sono presenti schede di navigazione che consentono di selezionare diversi tipi di opzioni di visualizzazione.


L'originale non tradotto : http://opensourceforu.com/2016/09/deep-learning-network-packet-forensics-using-tensorflow/


Consulente in Informatica dal 1984

Software automazione, progettazione elettronica, computer vision, intelligenza artificiale, IoT, sicurezza informatica, tecnologie di sicurezza militare, SIGINT. 

Facebook:https://www.facebook.com/flaviobernardotti58
Twitter : https://www.twitter.com/Flavio58

Cell:  +39 366 3416556

f.bernardotti@deeplearningitalia.eu

#deeplearning #computervision #embeddedboard #iot #ai

 

Related Topics

  Subject / Started by Replies Last post
0 Replies
90 Views
Last post March 14, 2018, 10:26:02 AM
by Marco1971
0 Replies
152 Views
Last post April 06, 2018, 02:05:02 PM
by Flavio58
0 Replies
70 Views
Last post May 03, 2018, 03:26:58 AM
by Flavio58
0 Replies
84 Views
Last post June 01, 2018, 08:35:01 PM
by Massimiliano

Sitemap 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 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326