On Bayesian methods for program authorship attribution
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2022-08-23
Department
Major/Subject
Applied Mathematics
Mcode
SCI3053
Degree programme
Master’s Programme in Mathematics and Operations Research
Language
en
Pages
93 + 4
Series
Abstract
Authorship 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.Tekijö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.Description
Supervisor
Hyvönen, NuuttiThesis advisor
Antikainen, MarkkuKeywords
Bayesian inference, classification, codeforces, Google code jam, naive Bayes, program authorship attribution