Anteprima
Vedrai una selezione di 20 pagine su 110
Appunti di Artifical Intelligence for Cybersecurity Pag. 1 Appunti di Artifical Intelligence for Cybersecurity Pag. 2
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 6
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 11
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 16
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 21
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 26
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 31
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 36
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 41
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 46
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 51
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 56
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 61
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 66
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 71
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 76
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 81
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 86
Anteprima di 20 pagg. su 110.
Scarica il documento per vederlo tutto.
Appunti di Artifical Intelligence for Cybersecurity Pag. 91
1 su 110
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

JPEG.

Invece di aggiungere rumore, un utente malintenzionato può rimuovere le impronte digitali

specifiche utilizzate per discriminare le immagini GAN da quelle reali.

Utilizzo di autoencoder

Gli autoencoder possono essere addestrati utilizzando solo immagini di volti reali, al fine di

rimuovere i componenti ad alta frequenza, ovvero quei componenti che corrispondono alle

"impronte digitali" dei modelli utilizzati per generare immagini sintetiche.

Durante il test, l'autoencoder prende come input le immagini sintetiche dei volti generate da una

GAN e le modifica in modo da falsificare i sistemi di rilevamento GAN. Ciò significa che l'autoencoder

cerca di manipolare le immagini sintetiche in modo da non essere identificate come tali dai sistemi

di rilevamento.

Deep Learning Methods

MalConv

MalConv è una rete neurale convoluzionale end-to-end. MalConv è stata la prima architettura a

dimostrare che le reti neurali potessero imparare a eseguire il rilevamento di malware a partire da byte

Explaining Vulnerabilit ies of Deep Learning t o A dversarial M alware Binaries

grezzi. Byte values (0-255) Convolutional

layer σ malware

True

... ...

Embedding Temporal Fully

max pooling connected

...

... benign

False

Convolutional

Padding bytes layer

(set to 256)

• MalConv prende come input i primi 2 MB di un eseguibile e restituisce la probabilità che essi

Fig. 1: A rchit ect ure of M alConv [16], adapt ed from [9].

siano un malware. Se la lunghezza dell'eseguibile supera i 2 MB, viene troncato a questa

dimensione; in caso contrario, viene riempito con 0 o 255 per mantenere un valore

distintivo.

for t he classificat ion problem; (iii) we collect t he result of t he met hod ment ioned

• Durante l'addestramento, un layer di embedding viene appreso e utilizzato per creare un

above applied on MalConv, highlight ing it s weaknesses, and (iv) we show how

embedding 8-dimensionale per ogni byte, che viene poi inserito in due layer convoluzionali.

an adversary may exploit t his informat ion t o craft an at t ack against MalConv.

I layer convoluzionali vengono quindi utilizzati per correlare byte spazialmente distanti

all'interno dell’input binario. Ciascuno dei layer convoluzionali ha 128 filtri di dimensione

500 e stride 500, senza sovrapposizione tra due circonvoluzioni.

• Gli output dei due layer convoluzionali vengono quindi moltiplicati.

2 D eep L ear ning for M alwar e D et ect ion in B inar y Files

• Il risultato della moltiplicazione viene inoltrato a un layer di max-pooling seguito da un layer

fully-connected.

• Il layer finale di softmax produce un valore di previsione p compreso tra 0 e 1.

Ra↵ et al. [16] propose a deep learning model which discriminat es

MalConv,

• Se p ≥ 0,5, il file è classificato come dannoso.

programs based on t heir byt e represent at ion, wit hout ext ract ing any feat ure.

• Altrimenti, il file è classificato come benigno.

T he int uit ion of t his approach is based on spat ial propert ies of binary programs:

Global Pooling

(i ) code, and dat a may be mixed, and it is difficult t o ext ract proper feat ures; (i )

i

In MalConv, le feature map dell'ultimo layer convoluzionale vengono vettorizzate e passate ad una

t here is correlat ion between di↵erent port ions of t he input program; (i ) binaries

i i

serie di layer fully-connected, seguiti da un layer di regressione softmax. Questa architettura unisce

may have di↵erent lengt h, as t hey are st rings of byt es. Moreover, t here is no clear

le reti neurali tradizionali con le strutture convoluzionali, trattando i layer convoluzionali come

met rics t hat can be imposed on byt es: each value represent s an inst ruct ion or a

estrattori di feature. La feature risultante viene successivamente classificata in modo tradizionale.

piece of dat a, hence it is difficult t o set a dist ance between t hem.

Tuttavia, è necessario prestare attenzione all'overfitting nei layer fully-connected, il quale può

To t ackle all of t hese issues, Ra↵ et al. develop a deep neural network t hat

essere evitato utilizzando tecniche come Dropout o global average pooling.

t akes as input a whole program, whose archit ect ure is represent ed in Fig. 1. First ,

Il global average pooling consiste nel generare una feature map per ogni classe corrispondente

file 21

t he input size is bounded t o = 2 byt es, i.e., 2 MB. Accordingly, t he input

d

dell'attività di classificazione e nel prendere la media di ogni feature map per ottenere un vettore

file is padded wit h t he value 256 if it s size is smaller t han 2 MB; ot herwise,

x

che viene immesso direttamente nel layer softmax.

first

it is cropped and only t he 2 MB are analyzed. Not ice t hat t he padding

value does not correspond t o any valid byt e, t o properly represent t he absence

Questa strategia offre vantaggi come la prevenzione dell'overfitting e una corrispondenza più

first

of informat ion. T he layer of t he network is an embedding layer, defined

naturale tra le feature map e le classi. ⇥

φ 8

d

by a funct ion : 0, 1, 256} R t hat maps each input byt e t o an 8-

{ . . . , !

dimensional vect or in t he embedded space. T his represent at ion is learned during

t he t raining process and allows considering byt es as unordered cat egorical values.

T he embedded sample Z is passed t hrough two one-dimensional convolut ional

layers and t hen shrunk by a t emporal max-pooling layer, before being passed

Alternativamente, il temporal pooling, che consiste nel prendere il valore massimo sulla dimensione

temporale, può essere utilizzato per ridurre la dimensionalità dell'output delle feature map,

sostituendo il Flattening e talvolta anche i layer dense nel classificatore.

emberMalConv

Secondo gli autori di MalConv, il loro modello non può essere addestrato su una singola GPU a causa

degli enormi requisiti di memoria. È disponibile un'implementazione open source del modello

chiamata emberMalConv.

Ci sono alcune piccole differenze:

• Utilizza uno speciale byte di riempimento (padding). Gli autori di MalConv non hanno

specificato se hanno usato un byte di riempimento speciale.

• Utilizza una batch size più piccola (100 vs 256), per migliorare la stabilità dell'allenamento e

le prestazioni di generalizzazione (potrebbe influire sulla precisione).

• Consente file fino a 1 MB a causa di limitazioni di memoria.

• Il modello è stato addestrato sul set di dati EMBER che è un po' più piccolo del set di dati

utilizzato per addestrare MalConv.

MalConv con Temporal Pooling efficienti

L'utilizzo del Temporal Pooling in MalConv mira a semplificare la complessità temporale del

Temporal Pooling.

Si ipotizza la presenza di C canali e una sequenza di dimensione T. Non è necessario memorizzare

tutte le attivazioni di output C*T del max pooling.

lar to MalConv sparse enough to make exploitation of that fact useful. This is

tasks (Liu et al. because every non-zero value requires storing its associated

index, doubling the memory use of those values. Second,

operations on dense vectors/matrices result in more efficient

Over Time computation, delivering computational throughput closer to

Per la propagazione del gradiente, viene utilizzato solo un singolo valore per canale. Questo porta a

thetheoretical limits of modern hardware when using modern

n in Figure 1. It

un uso eccessivo di memoria durante l'addestramento e a una computazione ridondante sulla back-

BLAS libraries and software like CUDNN. As such, libraries

s used over an

propagation, poiché la maggior parte dei valori del gradiente sono uguali a zero.

like PyTorch and Tensorflow do not support sparse gradients

of File marker. through max-pooling.

filters

onal with

Consideriamo il seguente esempio:

are then used in Chunk 1

al. 2017). The

h feature vector

pooling, or max

o a simple fully x x

x x

malicious label. x x

ndow size is

W

ral Max-Pooling x FC Layers

x

ly Connected MaxPool & Softmax

x

Softmax fixed

Figure 2: Diagram of Temporal Max Pooling with mem-

L'ingresso originale, una sequenza 1D di 3 canali (verde, viola, arancione), viene partizionato in

ory. The original input (top) is a 1D sequence with 3 chan-

blocchi (chunk) di dimensioni fisse utilizzando una finestra scorrevole.

Raff et al. 2018) nels and is broken up into four chunks based on window size

Il max pooling viene applicato a ciascun blocco:

B of GPU RAM = 3. Without gradient computation/tracking, the maxi-

W

σ

d the sigmoid

• mum activation index is found within each chunk. Solid col-

Le celle colorate a tinta unita sono i valori massimi rilevati sull'intero canale di input.

“ ”

ors show max values kept, max in chunk but no maxi-

• I valori "x" sono valori massimi nel blocco, ma possono essere massimi locali.

mal. Winning indices are copied to a new shorter sequence

• I valori all'interno di ogni blocco vengono confrontati per ottenere il massimo globale.

rst architecture (bottom), which runs with gradient tracking. The result is the

MalConv GCG

earn to perform fixed

same output and gradient, but memory cost.

st In MalConv GCG, la struttura di MalCONV viene duplicata aggiungendo un modulo Global Channel

to show classi-

Gating. La struttura di questa rete può essere vista come composta da due sottoreti, di cui una (blu

= 2, 000, 000

T benefits

Conversely, we obtain the of sparse activations

in figura) mira a estrarre informazioni di contesto, mentre l’altra (rossa in figura) viene utilizzata per

input was pro- while also retaining the higher computational throughput of

estrarre una rappresentazione.

ired 128 GB of dense operations, without requiring any new code, as follows.

s up to the 2MB 1. Turn off gradient computation (e.g.,

t of performing wi t h t or ch. no_gr ad( ) : if using PyTorch) and

ries of 2 million break the input sequence of length into at most

T

vations alone re- · ·

(W 2) chunks of size 3.

T/ overlapping W

ubsequent work 2. Perform max pooling over each chunk; for each channel

e original 2 MB track the maximum value and its absolute index.

3. Compare values within each chunk to a set of global win-

novel Temporal chunk’s

ners. If a new maximal activation exceeds the

osts invariant to global winner, it becomes the new global winner.

s by noting that Once we have processed all chunks, we know the locations,

C

Il GCG è un attention module che utilizza le informazioni del contesto estratte dalla prima sottorete

with respect to onefor each channel, that will win the max-pooling over tim

Dettagli
Publisher
A.A. 2022-2023
110 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simone__g di informazioni apprese con la frequenza delle lezioni di Ai for cybersecurity e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Carletti Vincenzo.