On Bayesian methods for program authorship attribution

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorAntikainen, Markku
dc.contributor.authorPasanen, Olli
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorHyvönen, Nuutti
dc.date.accessioned2022-09-04T17:00:43Z
dc.date.available2022-09-04T17:00:43Z
dc.date.issued2022-08-23
dc.description.abstractAuthorship attribution is the process of determining the original author of an object, historically a piece of text. Program authorship attribution studies the attribution of computer programs, and it can be divided into two categories: source code authorship attribution and executable program authorship attribution (EPAA). In the former, the attributor has access to the original source code of the program, while in the latter, the attributor only has access to compiled programs (executables). Although performing EPAA with high accuracy is very challenging, it could help in, for example, attributing cyberattacks by samples of malware left behind on breached systems. Bayesian statistics offers an alternative view to the more traditional frequentist statistics. The parameters of Bayesian models are random variables whose distributions are the quantity of interest and are updated based on observed data. This thesis studies the applicability of Bayesian modeling to EPAA, which does not seem to have been considered prior to this work. Six Bayesian classifiers were defined, and their performance was evaluated on data collected from two competitive programming websites: Codeforces and Google Code Jam (GCJ). The best classifier was able to identify the correct author with 96.7% accuracy among two possible authors. Among ten authors, the highest accuracy was 54.0% in the Codeforces data and 76.8% in the GCJ data. The largest GCJ test set contained 100 authors, and the highest accuracy achieved in this set was 59.2%. The authors in the GCJ data seemed less similar and were considerably easier to classify. Google Code Jam is one of the most commonly used sources of data in EPAA research, and while it provides an important baseline, the results obtained with it seem to be overly optimistic. All classifiers performed better than a random classifier, and the results show that Bayesian methods can be applied to EPAA with decent results. The Bayesian framework can also provide additional information compared to other machine learning approaches. The possibilities of Bayesian modeling are vast but also limited by practical difficulties in computational complexity and in defining features and models.en
dc.description.abstractTekijöiden nimeäminen tarkoittaa jonkin objektin, esimerkiksi tekstin, alkuperäisen tekijän selvittämistä stylististen piirteiden perusteella. Tutkimusta on sovellettu myös tietotekniikkaan, jossa on pyritty tunnistamaan tietokoneohjelmien tekijöitä. Tietokoneohjelma on strukturoitu binääritiedosto, joka on tuotettu ihmisten kirjoittamasta ohjelmakoodista. Ohjelmien tekijöiden nimeämistä voidaan siis luonnollisesti tehdä joko ohjelmakoodin tai binääristen ohjelmien perusteella. Binääritiedostojen tekijöiden nimeäminen on vaikea ongelma, mutta sillä on paljon käytännön sovellusmahdollisuuksia esimerkiksi kyberhyökkäysten tekijöiden tunnistamisessa. Bayeslainen tilastotiede tarjoaa vaihtoehdon tyypillisemmälle frekventistiselle päättelylle. Bayesilaisten mallien parametrit ovat satunnaismuuttujia, joiden jakaumia päivitetään saadun datan perusteella, ja näitä jakaumia analysoimalla voidaan tehdä tilastollisia johtopäätöksiä. Tässä työssä tutkitaan Bayeslaisen tilastotieteen soveltumista binäärimuotoisten ohjelmien tekijöiden tunnistamiseen. Työssä luotiin kuusi Bayesilaista luokitinta, joiden luokittelukykyä tutkittiin kahdelta kisaohjelmointiin keskittyvältä verkkosivulta (Codeforces ja Google Code Jam; GCJ) saadun lähdekoodiaineiston perusteella. Paras luokitin nimesi oikean tekijän kahden tekijän joukosta 96.7 % tarkkuudella. Kymmenen tekijän joukoissa parhaat tarkkuudet olivat 54.0 % Codeforces-datassa ja 76.8 % GCJ-datassa. Suurin GCJ testijoukko sisälsi 100 tekijää, ja paras luokitin onnistui nimeämään tekijän tästä joukosta oikein 59.2 % tarkkuudella. Tekijät GCJ-datassa olivat uniikeimpia ja helpommin tunnistettavampia kuin Codeforces-datassa. Vaikka GCJ-dataa on käytetty paljon tutkimuksissa ja se toimii tärkeänä referenssinä metodien keskeisessä vertailussa, sillä saadut tulokset vaikuttavat olevan huomattavan ylioptimistisia. Kaikki luokittimet pärjäsivät paljon paremmin kuin satunnaisluokittelija, ja tulokset osoittavat, että Bayeslaista mallintamista voidaan käyttää binääristen ohjelmien luokittelussa. Bayeslainen päättely voi tuottaa myös lisäinformaatiota muihin koneoppimismenetelmiin verrattuna. Bayeslaisen mallinnuksen sovellusmahdollisuudet ovat laajat, mutta käytännön työtä vaikeuttavat muun muassa vaadittavan laskennallisen tehon määrä ja mallien sekä piirteiden määrittäminen.fi
dc.format.extent93 + 4
dc.format.mimetypeapplication/pdfen
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/116482
dc.identifier.urnURN:NBN:fi:aalto-202209045293
dc.language.isoenen
dc.programmeMaster’s Programme in Mathematics and Operations Researchfi
dc.programme.majorApplied Mathematicsfi
dc.programme.mcodeSCI3053fi
dc.subject.keywordBayesian inferenceen
dc.subject.keywordclassificationen
dc.subject.keywordcodeforcesen
dc.subject.keywordGoogle code jamen
dc.subject.keywordnaive Bayesen
dc.subject.keywordprogram authorship attributionen
dc.titleOn Bayesian methods for program authorship attributionen
dc.titleBayeslaisten menetelmien käyttö ohjelmien tekijöiden nimeämisessäfi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.ontasotMaster's thesisen
dc.type.ontasotDiplomityöfi
local.aalto.electroniconlyyes
local.aalto.openaccessyes

Files

Original bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
master_Pasanen_Olli_2022.pdf
Size:
2.52 MB
Format:
Adobe Portable Document Format