izpis_h1_title_alt

Analysis of command and control connections using machine learning algorithms
ID PREMRN, JAKOB (Author), ID Štruc, Vitomir (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (4,92 MB)
MD5: 50C129A6C88CC5B1CC52109862B85A47

Abstract
Every day, more and more people use the Internet. All of these people know how to use the Internet but only a few of them also think about security. The Internet is not much more different from real life. It has safe and dangerous places and there are also criminals who attack Internet users. The only difference between real life attacks and cyber attacks is that in the latter we might not even know we are being attacked. This thesis focuses on one of the attacks in which an adversary gets access to your device and usually uses it for denial-of-service attacks. In denial-of-service attacks adversaries create a huge amount of traffic or requests to a specific server so that the link to the sever becomes congested or its response capabilities are exceeded. This results in the temporarily unresponsiveness of the server. We specifically focus in the research on the connections created between the client and the adversary's server. Our aim is to create a device (a combination of software tools and code) and develop a classification model based on machine learning algorithms which is able to detect such malicious connections. For the research we firstly created a dataset of legitimate and malicious connections captured on port 443. Data was captured using Zeek which is a network monitor and allows real time network traffic capture. The dataset created was in the beginning imbalanced and our first task was to balance it by creating synthetic data samples. In next step we evaluated machine learning algorithms on the dataset we created to determine the optimal algorithm for our classification model. Algorithms were firstly evaluated using Weka and later Python. Evaluation of algorithms showed us that optimal algorithm to use is Decision tree, because it achieved the highest f1-score. The algorithm is able to correctly classify more than 99\% of data samples. Using Decision tree algorithm, a classification model is created using the Decision Tree algorithm and put on top of Zeek which is a network traffic monitor. Our device is implemented in a real environment. The results of the implementation show that there is a large number of misclassifications due to large number of connections, which can present problems. We conclude that the model created performs well with a high classification accuracy but for real life usage it requires an additional input, for example threat intelligence, to filter classification results.

Language:English
Keywords:machine learning, imbalanced dataset, command and control, C2, C&C, Zeek, Random forest, Decision tree
Work type:Master's thesis/paper
Organization:FE - Faculty of Electrical Engineering
Year:2020
PID:20.500.12556/RUL-117404 This link opens in a new window
Publication date in RUL:09.07.2020
Views:1244
Downloads:278
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:Slovenian
Title:Analiza povratnih kanalov z uporabo algoritmov strojnega učenja
Abstract:
Vsakodnevno vse več ljudi uporablja internet. Vsi ti ljudje vedo, kako uporabljati internet, le redki pa razmišljajo tudi o varnosti. Internet se ne veliko razlikuje od resničnega življenja. Ima varna in nevarna mesta, obstajajo pa tudi kriminalci, ki napadajo uporabnike interneta. Edina razlika med napadom v resničnem življenju in kibernetskim napadom je, da v slednjem morda niti ne vemo, da smo napadeni. Naloga je osredotočena na enega izmed napadov, v katerem nasprotnik dobi dostop do uporabnikove naprave in jo običajno uporablja za napade zavrnitve storitve (Denial of Service). V raziskavi se posebej osredotočamo na povezave, ustvarjene od odjemalca do napadalčevega strežnika. Ustvariti želimo napravo in razviti razvrščevalni model, ki temelji na algoritmih strojnega učenja, ki je sposoben zaznati omenjene zlonamerne povezave. Za raziskavo smo najprej ustvarili nabor legitimnih in zlonamernih povezav, zajetih na vratih 443. Za vrata 443 smo se odločili, ker so ta zadnje čase zelo pogosto uporabljena za omenjene zlonamerne povezave, saj jih normalni uporabniki uporabljajo za brskanje po spletu in zato niso pogosto blokirana na požarnih pregradah in tako napadalcem omogočajo prost izhod v internet. Podatki so bili zajeti z napravo Zeek, ki omogoča zajem omrežnih podatkov iz omrežnega prometa v realnem času. Ustvarjen nabor podatkov je bil v začetku neuravnotežen, naša prva naloga pa je bila, da smo ga uravnotežili z ustvarjanjem sintetičnih vzorcev podatkov. Težava z učenjem algoritmov na neuravnoteženih naborih podatkov je ta, da lahko algoritem vse vzorce podatkov klasificira v en razred, kar ni pravilno, ampak zaradi neuravnoteženosti podatkov napaka razvrščanja ni visoka. V naslednjem koraku smo ovrednotili algoritme strojnega učenja na podlagi nabora podatkov, da smo določili optimalen algoritem za naš razvrščevalni model. Algoritmi so bili najprej ovrednoteni s pomočjo programa Weka in kasneje v programskem jeziku Pythonu. Za program Weka smo se odločili, ker ima vgrajeno večje število algoritmov za razvrščanje in tako omogoča hitero testiranje večjega števila algoritmov strojnega učenja. Ko smo ugotovili kateri izmed algoritmov strojnega učenja prinašajo najboljše rezultate smo te implementirali v programskem jeziku Python. Za programski jezik Python smo se odločili zaradi visoke razširjenosti med raziskovalci v krogih podatkovnih znanosti. V programskem jeziku Python smo implementirali 4 algoritme strojnega učenja: naključni gozd, odločitveno drevo, naivni bayes in večslojni perceptron. Za implementacijo algoritmov smo uporabili scikit-learn knjižnico. V programskem jeziku Python smo algoritme testirali z metodo, ki podatke razdeli na 10 delov in nato 1 del podatkov uporabi za testiranje algoritma, 9 delov podatkov pa za učenje, ter nato menja dele podatkov po vrstnem redu. Po končanem eksperimentu so rezultati povprečeni. Opisana metoda nam omogoča dobro predikcijo obnašanja algoritma v realnem svetu na neznanih podatkih. Ocenjevanje algoritmov nam je pokazalo, da je optimalen algoritem za uporabo odločitveno drevo, saj je doseglo najvišjo oceno F1. Algoritem je sposoben pravilno razvrstiti več kot 99% vzorcev podatkov. Z algoritmom odločitvenega drevesa je bil ustvarjen model razvrščanja in postavljen nad napravo Zeek, ki je naprava za nadzor omrežnega prometa. Naša naprava je bila implementirana v realnem okolju. Rezultati testiranja v realnem okolju kažejo, da se zaradi velikega števila povezav pojavi tudi veliko napačnih razvrščanj, ki lahko predstavljajo težave. Poleg generalnih rezultatov algoritmov nas je zanimalo še katere vzorce algoritma odločitveno drevo in nakjlučni gozd napačno razvrstita. Problema smo rešili grafično, tako da smo narisali graf napačno razporejenih vzorcev. Ugotovili smo, da so vzorci napačno razporejeni tam, kjer se vzorci enega razreda prekrivajo z vzorci drugega razreda. Tak rezultat lahko rečemo, da je bil pričakovan. Ugotavljamo, da ustvarjeni model, ki za razvršanje uporablja naučen algoritem odločitveno drevo, deluje dobro, z visoko natančnostjo razvrščanja, vendar so za uporabo v resničnem življenju potrebene dodatne informacije, na primer informacije o grožnjah (threat intelligence), za filtriranje rezultatov razvrščanja.

Keywords:strojno učenje, neuravnotežen nabor podatkov, C2, C&C, naključni gozd, odločitveno drevo

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back