Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
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