Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen

Tutkimuksessa tutkitaan haitallisen JavaScript-ohjelmakoodin tunnistamista koneoppimismenetelmin opetettujen luokittelijoiden avulla. Tutkimusaiheen valintaan vaikuttivat seuraavat kolme tekijää. Tekijöistä ensimmäinen oli JavaScript-ohjelmointikielen rooli yhtenä keskeisimmistä, edelleen suosiotaan...

Full description

Bibliographic Details
Main Author: Tuovinen, Janne
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2018
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/59736
_version_ 1826225741821378560
author Tuovinen, Janne
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Tuovinen, Janne Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Tuovinen, Janne Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Tuovinen, Janne
datasource_str_mv jyx
description Tutkimuksessa tutkitaan haitallisen JavaScript-ohjelmakoodin tunnistamista koneoppimismenetelmin opetettujen luokittelijoiden avulla. Tutkimusaiheen valintaan vaikuttivat seuraavat kolme tekijää. Tekijöistä ensimmäinen oli JavaScript-ohjelmointikielen rooli yhtenä keskeisimmistä, edelleen suosiotaan kasvattavista web-teknologioista. Toisena tekijänä oli JavaScriptin käytön yleistyminen tietoturvallisuutta vastaan suoritetuissa hyökkäyksissä. Kolmantena tekijänä puolestaan oli koneoppimismenetelmien roolin korostuminen haittaohjelmien tunnistamisessa. Teoreettiselta taustaltaan tutkimus liittyy haitallisen ohjelmakoodin staattiseen analyysiin ja haitallisen ohjelmakoodin tunnistamiseen koneoppimismenetelmin. Tutkimuksessa keskitytään erityisesti tutkimaan luokittelijan opettamisessa käytettävien ominaispiirteiden ominaisuuksien ja opettamiseen valitun koneoppimismenetelmän vaikutusta luokittelijoiden suoriutumiseen haitallisten ja ei-haitallisten JavaScript-tiedostojen luokittelusta väärien positiivisten luokittelujen osuuden, väärien negatiivisten luokittelujen osuuden ja luokittelun tarkkuuden suhteen. Tutkimuksen tulosten tuottamiseen käytetään tilastollisia menetelmiä ja silmämääräistä analyysia. Käytettyinä tilastollisina menetelminä ovat Kruskal-Wallisin testi, Dunnin testi ja keskiarvovertailu. Tutkimuksessa huomataan, että ominaispiirteiden ominaisuuksilla ja valitulla koneoppimismenetelmällä on yleisesti vaikutusta luokittelijoiden suoriutumiseen JavaScript-tiedostojen luokittelusta. Tutkimuksessa saadut tulokset ovat yleisesti samankaltaisia muiden samaan aihepiiriin liittyvien tutkimusten tulosten kanssa väärien positiivisten luokittelujen osuuden, väärien negatiivisten luokittelujen osuuden ja luokittelun tarkkuuden suhteen. Tutkimuksen tuloksista on mahdollista tehdä ainakin seuraavat kolme johtopäätöstä. Ensimmäiseksi, luodessa haitallisen JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, kannattaa parhaan suorituskyvyn saavuttamiseksi, kokeilla eri mahdollisuuksia ainakin opetukseen ja testaamiseen käytettävien tiedostojen määrissä, käytettävien haitallisten tiedostojen määrässä opetusaineistossa, käytettävissä ominaispiirteissä, ominaispiirteiden valintaan käytettävissä menetelmissä ja käytettävässä koneoppimismenetelmässä. Toiseksi, pelkkien JavaScript-ohjelmakoodin staattisesta esitysmuodosta eristettyjen n-grammien avulla näyttää olevan mahdollista opettaa haitallisen JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, joiden suorituskyky kilpailee monimutkaisempien ominaispiirteiden avulla opetettujen luokittelijoiden kanssa. Kolmanneksi, jo suhteellisen pienillä tiedostomäärillä näyttää olevan mahdollista opettaa JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, joiden suorituskyky kilpailee suuremmilla aineistoilla opetettujen luokittelijoiden kanssa.
first_indexed 2019-08-19T08:21:30Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "H\u00e4m\u00e4l\u00e4inen, Timo", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Tuovinen, Janne", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2018-10-03T05:33:52Z", "language": "", "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2018-10-03T05:33:52Z", "language": "", "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2018", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/59736", "language": "", "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Tutkimuksessa tutkitaan haitallisen JavaScript-ohjelmakoodin tunnistamista koneoppimismenetelmin opetettujen luokittelijoiden avulla. Tutkimusaiheen valintaan vaikuttivat seuraavat kolme tekij\u00e4\u00e4. Tekij\u00f6ist\u00e4 ensimm\u00e4inen oli JavaScript-ohjelmointikielen rooli yhten\u00e4 keskeisimmist\u00e4, edelleen suosiotaan kasvattavista web-teknologioista. Toisena tekij\u00e4n\u00e4 oli JavaScriptin k\u00e4yt\u00f6n yleistyminen tietoturvallisuutta vastaan suoritetuissa hy\u00f6kk\u00e4yksiss\u00e4. Kolmantena tekij\u00e4n\u00e4 puolestaan oli koneoppimismenetelmien roolin korostuminen haittaohjelmien tunnistamisessa. Teoreettiselta taustaltaan tutkimus liittyy haitallisen ohjelmakoodin staattiseen analyysiin ja haitallisen ohjelmakoodin tunnistamiseen koneoppimismenetelmin.\r\nTutkimuksessa keskityt\u00e4\u00e4n erityisesti tutkimaan luokittelijan opettamisessa k\u00e4ytett\u00e4vien ominaispiirteiden ominaisuuksien ja opettamiseen valitun koneoppimismenetelm\u00e4n vaikutusta luokittelijoiden suoriutumiseen haitallisten ja ei-haitallisten JavaScript-tiedostojen luokittelusta v\u00e4\u00e4rien positiivisten luokittelujen osuuden, v\u00e4\u00e4rien negatiivisten luokittelujen osuuden ja luokittelun tarkkuuden suhteen. Tutkimuksen tulosten tuottamiseen k\u00e4ytet\u00e4\u00e4n tilastollisia menetelmi\u00e4 ja silm\u00e4m\u00e4\u00e4r\u00e4ist\u00e4 analyysia. K\u00e4ytettyin\u00e4 tilastollisina menetelmin\u00e4 ovat Kruskal-Wallisin testi, Dunnin testi ja keskiarvovertailu. Tutkimuksessa huomataan, ett\u00e4 ominaispiirteiden ominaisuuksilla ja valitulla koneoppimismenetelm\u00e4ll\u00e4 on yleisesti vaikutusta luokittelijoiden suoriutumiseen JavaScript-tiedostojen luokittelusta. Tutkimuksessa saadut tulokset ovat yleisesti samankaltaisia muiden samaan aihepiiriin liittyvien tutkimusten tulosten kanssa v\u00e4\u00e4rien positiivisten luokittelujen osuuden, v\u00e4\u00e4rien negatiivisten luokittelujen osuuden ja luokittelun tarkkuuden suhteen.\r\nTutkimuksen tuloksista on mahdollista tehd\u00e4 ainakin seuraavat kolme johtop\u00e4\u00e4t\u00f6st\u00e4. Ensimm\u00e4iseksi, luodessa haitallisen JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, kannattaa parhaan suorituskyvyn saavuttamiseksi, kokeilla eri mahdollisuuksia ainakin opetukseen ja testaamiseen k\u00e4ytett\u00e4vien tiedostojen m\u00e4\u00e4riss\u00e4, k\u00e4ytett\u00e4vien haitallisten tiedostojen m\u00e4\u00e4r\u00e4ss\u00e4 opetusaineistossa, k\u00e4ytett\u00e4viss\u00e4 ominaispiirteiss\u00e4, ominaispiirteiden valintaan k\u00e4ytett\u00e4viss\u00e4 menetelmiss\u00e4 ja k\u00e4ytett\u00e4v\u00e4ss\u00e4 koneoppimismenetelm\u00e4ss\u00e4. Toiseksi, pelkkien JavaScript-ohjelmakoodin staattisesta esitysmuodosta eristettyjen n-grammien avulla n\u00e4ytt\u00e4\u00e4 olevan mahdollista opettaa haitallisen JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, joiden suorituskyky kilpailee monimutkaisempien ominaispiirteiden avulla opetettujen luokittelijoiden kanssa. Kolmanneksi, jo suhteellisen pienill\u00e4 tiedostom\u00e4\u00e4rill\u00e4 n\u00e4ytt\u00e4\u00e4 olevan mahdollista opettaa JavaScript-koodin tunnistamiseen erikoistuneita luokittelijoita, joiden suorituskyky kilpailee suuremmilla aineistoilla opetettujen luokittelijoiden kanssa.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2018-10-03T05:33:52Z\r\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2018-10-03T05:33:52Z (GMT). No. of bitstreams: 0\r\n Previous issue date: 2018", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "113", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "haitallinen JavaScript-ohjelmakoodi", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "haittakoodi", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "staattinen ohjelmakoodianalyysi", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmi\u00e4 k\u00e4ytt\u00e4en", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201810034301", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "602", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietoturva", "language": "", "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "koneoppiminen", "language": "", "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "JavaScript", "language": "", "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_59736
language fin
last_indexed 2025-02-18T10:55:24Z
main_date 2018-01-01T00:00:00Z
main_date_str 2018
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/ed332d83-3269-4893-bd30-07c03d290591\/download","text":"URN:NBN:fi:jyu-201810034301.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2018
record_format qdc
source_str_mv jyx
spellingShingle Tuovinen, Janne Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen haitallinen JavaScript-ohjelmakoodi haittakoodi staattinen ohjelmakoodianalyysi Tietotekniikka Mathematical Information Technology 602 tietoturva koneoppiminen JavaScript
title Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_full Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_fullStr Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_full_unstemmed Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_short Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_sort haitallisen javascript koodin tunnistaminen koneoppimismenetelmiä käyttäen
title_txtP Haitallisen JavaScript-koodin tunnistaminen koneoppimismenetelmiä käyttäen
topic haitallinen JavaScript-ohjelmakoodi haittakoodi staattinen ohjelmakoodianalyysi Tietotekniikka Mathematical Information Technology 602 tietoturva koneoppiminen JavaScript
topic_facet 602 JavaScript Mathematical Information Technology Tietotekniikka haitallinen JavaScript-ohjelmakoodi haittakoodi koneoppiminen staattinen ohjelmakoodianalyysi tietoturva
url https://jyx.jyu.fi/handle/123456789/59736 http://www.urn.fi/URN:NBN:fi:jyu-201810034301
work_keys_str_mv AT tuovinenjanne haitallisenjavascriptkoodintunnistaminenkoneoppimismenetelmiäkäyttäen