On Bayesian methods for program authorship attribution

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

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, Nuutti

Thesis advisor

Antikainen, Markku

Keywords

Bayesian inference, classification, codeforces, Google code jam, naive Bayes, program authorship attribution

Other note

Citation