Massively Parallel Programming
Mass-market computing systems that combine multicore CPUs and many-core GPUs have brought terascale
computing to the laptop and petascale
computing to clusters.
Armed with such
computing power, we are at the dawn
of pervasive use of computational experiments
for science, engineering, health,
and business disciplines.
Many will be able to achieve break-throughs in their disciplines using computational experiments that are of unprecedented level of scale, controllability,
and observability.
Starting from an advanced knowledge of data structure an programming in C, and some some experience in concurrent programming, the thesis aims at developing
algorithms in concurent C
and CUDA, a parallel programming
environment that is supported on NVIDIA GPUs, and emulated
on less parallel CPUs.
We especially target applications is computer science
and electronics such as hardware and software analysis,
advanced data strucutures (such as social networks), etc.
Malware-ranking-graph
Since 2010, the number of new malware
released each day became so high that manual analysis
is not an option anymore. In 2017 it was estimated that
3 million new Android malware were released,
and 30 thousands new Android
applications are received every day to be analyzed. Given the scale of the threat, emerged the need of automated approaches to detected new malware variants.
Android offers an open market model, where millions of applications are downloaded by users every day.
While applications from the
official Google Play store undergo a review process to
confirm that they comply with Google policies other third-party markets do not. Hence, a typical
pattern among malware developers is to repack popular applications from Google Play by adding
malicious features and distribute them to third-party app-stores, leveraging apps popularity to accelerate malware propagation.
The situation is made worse by the simplicity of the malicious repackaging, that is an alteration
of the original application
installation package (i.e., the APK file), where legitimate applications are reverse engineered,
modified to include malicious
code, signed with a new signature,
and eventually distributed
for download. Since applications
consist of bytecode, changes are relatively easy to implement and ad-hoc tools assist
the procedure.
Possible solution
While malware
variants can be generated at a high pace, they are likely to perform similar malicious activities when executed. Network connections can
be effectively exploited to
unveil a malicious behaviour, indeed it is possible
to create a graph that models network relations among applications, domains, and IPs. Moreover, it is possible
to enrich the graph with
the information about known
and suspicious malicious domains and applications.
Thesis goal
Design an algorithm to automatically rank applications within a graph that models
network relations.
In the current implementation,
the graph is undirected and contains three type of nodes:
applications, domains and IPs. An edge connects
an application (APK) to a domain or IP, if the analysis of the application reveal a connection
with them (HTTP request,
DNS resolution, etc). Moreover, an IP address is connected to a domain if the domain name resolve that IP address (through a DNS request). The time variable is not modeled
in the graph, although it can be added in a later version.
Cattura e tracking di movimenti articolati
Nell’ambito della cattura e del tracking di
movimenti articolati si presentano i seguenti lavori.
Cattura del movimento articolato di
persone da riprese video
Molte applicazioni necessitano non solo di poter identificare e tracciare
il movimento delle persone in determinati ambienti, ma anche di avere
informazioni di dettaglio sul movimento di queste persone per poter effettuare
ulteriori elaborazioni (ad esempio, riconoscimento dei gesti, ricreazione in
virtuale di una partita di calcio o di un evento sportivo, analisi del
movimento, etc.).
L'obiettivo della tesi è quello di
·
analizzare le
tecniche disponibili in letteratura in grado di estrarre da sequenze video
informazioni sul movimento articolato delle persone che sono riprese
·
confrontare le
loro prestazioni su dataset standard.
Cattura del movimento articolato di
persone da riprese video multiple.
Molte applicazioni necessitano non solo
di poter identificare e tracciare il movimento delle persone in determinati
ambienti, ma anche di avere informazioni di dettaglio sul movimento di queste
persone per poter effettuare ulteriori elaborazioni (ad esempio, riconoscimento
dei gesti, ricreazione in virtuale di una partita di calcio o di un evento
sportivo, analisi del movimento, etc...). L'obiettivo
della tesi è quello di ricostruire il movimento articolato delle persone
riprese da angolazioni diverse (quindi tramite diversi flussi video). In
particolare, occorre analizzare algoritmi in grado di sfruttare in maniera
efficace le informazioni provenienti dalle diverse vite in modo da risolvere i
problemi legati alle occlusioni o parti del corpo non visibili nei singoli
flussi
Creazione di dataset
sintetici per l'analisi del movimento articolato di persone da flussi video
Gli approcci di deep learning
hanno dimostrato la loro superiorità (in termini di accuratezza dei risultati)
rispetto agli approcci tradizionali. Il problema è che l’addestramento di un
modello in un contesto nuovo richiede di avere migliaia/milioni di campioni,
cosa non spesso fattibili per problemi di tempi/costi. L’obiettivo di questa
tesi è quello di creare dataset sintetici a partire
da ambienti virtuali creati ex-novo o da videogame esistenti (eg. fifa, pes) in cui siano
presenti personaggi umani in movimento.
Identificazione dei volti in grandi dataset
L'utilizzo di strumenti biometrici per l'identificazione, quali quelli
basati sul riconocimento del volto, sta lentamente
soppiantando i metodi di riconoscimento standard basati su password o token. In caso di dataset di
grosse dimensioni (centinaia di migliaia di diverse identità) il numero di
classi/individui da gestire ha effetti largamente negativi sui tassi di
corretto riconoscimento. Una possibile soluzione che questo lavoro di tesi
intende esplorare è quello di affrontare il problema dividendolo in sottoproblemi, prima identificando dei “cluster” di persone
diverse, ma che abbiano caratteristiche simili e che siano composti da un
numero decisamente inferiore di individui, e poi effettuando una ricerca in questo dataset
ridotto. L'obiettivo è quindi:
·
identificare le
caratteristiche “ottimali” per la creazione dei cluster
·
sviluppare un
classificatore robusto in grado di assegnare un campione di test al cluster
corretto
·
implementare
sistemi di riconoscimento “standard” sul singolo cluster.