Securing software supply chain

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2022-10-17
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
63
Series
Abstract
Integrating open source, components into software products is a common practice among software vendors. For many languages an ecosystem has evolved around these components where they are distributed as units called packages in centralized repositories called package registries. Unfortunately, these registries are also used to publish malicious packages that harm software vendors and their customers. This thesis studies threats posed by malicious packages and mitigations against them. The study is limited to JavaScript packages distributed in the npm ecosystem. We use literature review to identify threats exposed in past attacks. From the obtained material we evaluate these threats based on their frequency and persistence. We also use literature review to curate a list of mitigations. Lastly, we conduct a case study on a malware analysis tool called MALOSS. We update MALOSS to use up-to-date software and combine it with a more effective user interface. We also evaluate its analysis capability with a set of four packages from the npm registry. In total we identified 15 threats. We found that typosquatting, a practice that exploits typing errors in package names was the most frequent attack strategy. Malicious actions were most often triggered during the installation of the package. Of these malicious actions, the most frequent one was stealing information. For each identified threat we proposed one or more mitigation actions, many of which applied to several threats. In total we proposed 16 mitigations. MALOSS managed to analyze only one out of the four test packages without any issues. We found that the JavaScript parsing library used within MALOSS did not support all syntactical features of the packages. The npm registry is a popular platform for attacks and this trend is likely to continue in the future. The findings of this thesis can serve as a reference for software vendors that plan their mitigation strategies.

Avoimen lähdekoodin komponenttien integroiminen ohjelmistoihin on ohjelmistotoimittajien yleinen käytäntö. Monen kielen tapauksessa näiden komponenttien ympärille on kehittynyt ekosysteemi, jossa niitä jaetaan paketeiksi kutsuttuina yksikköinä keskitetyissä säilytyspaikoissa, joita kutsutaan pakettirekistereiksi. Ikävä kyllä näitä rekistereitä käytetään myös ohjelmistotoimittajia ja heidän asiakkaitaan vahingoittavien haitallisten pakettien julkaisemiseen. Tämä diplomityö tutkii haitallisten pakettien muodostamia uhkia ja keinoja niiltä suojautumiseen. Tutkimus on rajoitettu JavaScript-paketteihin, joita jaetaan npm-ekosysteemissä. Käytämme kirjallisuuskatsausta tunnistaaksemme tapahtuneissa hyökkäyksiä paljastuneita uhkia. Arvioimme uhkia niiden yleisyyden ja pysyvyyden kannalta kerätyn materiaalin perusteella. Käytämme kirjallisuuskatsausta myös kerätäksemme listan suojautumiskeinoja. Lopuksi suoritamme tapaustutkimuksen haittaohjelmien analyysityökalusta nimeltä MALOSS. Päivitämme työkalun käyttämään ajantasaisia ohjelmistoversioita ja yhdistämme siihen tehokkaamman käyttöliittymän. Arvioimme myös sen analysointikykyä neljän npm rekisterissä jaetun paketin avulla. Tunnistimme yhteensä 15 uhkaa. Saimme selville, että pakettien nimien kirjoitusvirheiden hyödyntäminen eli typosquatting oli yleisin hyökkäysstrategia. Haitalliset toiminnot käynnistyivät useimmiten paketin asennuksen aikana. Haitallisista toiminnoista tiedon varastaminen oli yleisin. Jokaista uhkaa kohti esitimme yhden tai useamman suojautumiskeinon, joista moni soveltui useaan uhkaan. Esitimme yhteensä 16 suojautumiskeinoa. MALOSS onnistui analysoimaan ainoastaan yhden neljästä testipaketista ongelmitta. Saimme selville, että MALOSSin käyttämä JavaScript-parsintakirjasto ei tukenut kaikkia paketeissa esiintyneitä kielellisiä rakenteita. Npm-rekisteri on suosittu alusta hyökkäyksille ja tämä trendi todennäköisesti jatkuu tulevaisuudessa. Tämän diplomityön tulokset voivat toimia tukimateriaalina ohjelmistotoimittajille, jotka suunnittelevat suojautumisstrategioitaan.
Description
Supervisor
Lindqvist, Janne
Thesis advisor
Ahokas, Mika
Keywords
information security, software supply chain, npm, JavaScript
Other note
Citation