Feasibility evaluation of software composition analysis tools for unmanaged embedded medical software

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Department

Mcode

ELEC3025

Language

en

Pages

72

Series

Abstract

Open source software is an integral part of modern software development and allows the reuse of existing software in order to cut software development costs and time. However, practitioners need to be careful not to introduce restrictive licenses or software vulnerabilities into software products utilizing open source software. Restrictive licenses can prevent the use of a software component. Moreover, open source software can cause major security risks. Supply chain security is a rising issue in software development. Any software vulnerability in open source software and other third-party software can affect upstream applications. Therefore, regulators have imposed instructions to mitigate software security risks and improve software quality. Software quality is especially important in the medical field. Unwanted behaviour can compromise patient data and even health. Therefore, regulators have recently started requiring practitioners to provide a software bill of materials of medical device software. A software bill of materials (SBOM) is a formal record of utilized open source software components to maintain automated and accurate information of software components and, as a results, vulnerabilities. However, manually constructing an SBOM is a laborious and difficult task. As a result, software composition analysis tools have emerged as a possible solution to supply chain management and risk mitigation. Software composition analysis (SCA) scans software to automatically generate an SBOM by identifying software components and analysing them for vulnerabilities and licenses. SCA tools are still relatively unexplored, especially in an unmanaged context, which is typical in the embedded software field. Therefore, the goal of the thesis is to evaluate the feasibility of SCA tools for unmanaged embedded medical software. To evaluate SCA tool feasibility, four commercial SCA tools are used to analyse test software. The test software featured three microcontroller vendor generated projects that represent typical embedded software projects. The fourth software repository was manually constructed to contain various different, popular and unpopular, open source libraries. After tool analysis, the results of component identification, SBOM generation, vulnerability reporting and license reporting were examined. The SCA tool results show that the tested SCA tools are not feasible to use in industry. The component identification results were poor. The tools failed to identify a significant number of software components and falsely reported several components that were not in the repositories. Moreover, vulnerability and license reporting yilded similar results. In addition, SCA tools frequently cost up to tens of thousands if dollars annually, which prevents the use in small and medium sized organizations.

Avoimen lähdekoodin ohjelmistot ovat olennainen osa modernia ohjelmistokehitystä. Avoin lähdekoodi mahdollistaa ohjemistojen uusiokäytön, mikä vähentää kehitystyöstä aiheutuvia kustannuksia sekä aikaa. Kehittäjien on kuitenkin oltava huolellisia, ettei ohjelman mukana ole rajoittavia lisenssejä tai heikkouksia. Rajoittavat lisenssit voivat estää ohjelmistokomponentin käytön. Lisäksi avoin lähdekoodi saattaa aiheuttaa huomattavia turvallisuusriskejä. Ohjelmistojen kuljetusketjujen turvallisuus on noussut tärkeäksi tekijäksi ohjelmisokehityksessä. Heikkoudet kuljetusketjussa saattavat altistaa lopullisen ohjelmiston turvallisuusriskeille, minkä vuoksi sääntelijät ovat määränneet ohjeita riskien välttämiseksi ja ohjelmistojen laadun parantamiseksi. Laadulla on etenkin väliä lääkinnällisellä alalla, jossa väärä toiminta saattaa aiheuttaa vakavia tietovuotoja tai vaarantaa potilaan terveyden. Kyberturvallisuuden parantamiseksi säätäjät ovat alkaneet vaatia lääkinnällisiä ohjelmistoja kehittäviltä tahoilta ohjelmistojen materiaaliluetteloja. Ohjelmiston materiaaliluettelo on virallinen dokumentti, joka sisältää kaikki käytetyt ohjelmistokomponentit, jotta niiden tietoja ja haavoittuvuuksia voidaan ylläpitää automaattisesti. Toisaalta ohjelmiston materiaaliluettelon muodostaminen manuaalisesti voi olla työläs ja vaikea tehtävä, minkä vuoksi ohjelmiston komponenttianalyysi on noussut yhdeksi mahdolliseksi ratkaisuksi riskien vähentämiseksi. Ohjelmiston komponenttianalyysi skannaa ohjelmiston tunnistaakseen komponentteja sekä niiden haavoittuvuuksia ja lisenssejä, joiden pohjalta voidaan luoda ohjelmiston materiaaliluettelo. Ohjelmiston komponenttianalyysiä ei olla tutkittu hallitsettomassa pakettienhallinnassa, joka on yleistä sulautetuussa ohjelmistokehityksessä. Tämän työn tarkoituksena on arvioida ohjelmiston komponenttianalyysityökalujen soveltuvuutta hallitsemattomissa sulautetuissa lääkinnällisissä ohjelmistoissa. Ohjelmiston komponenttianalyysityökalujen soveltuvuuden arvioimiseksi neljää työkalua käytettiin testiohjelmien analysoimiseen. Testiohjelmat koostuivat kolmesta mikrokontrollerimyyjien esimerkkiohjelmista, jotka mukailivat tyypillisiä sulautettuja ohjelmia. Neljäs ohjelma luotiin manuaalisesti ja koostui erilaisista, suosituista ja epäsuosituista avoimen lähdekoodin kirjastoista. Työkalujen analyysin jälkeen komponenttitunnistuksen, ohjelmiston materiaaliluettelon tuottamisen sekä haavoittuvuuksien ja lisenssien raportoimisen tuloksia tarkasteltiin. Ohjelmiston komponenttianalyysityökalujen tulokset osoittavat, että testatut työkalut eivät ole kelvollisia teollisuudessa. Työkalut suoriutuivat komponenttitunnistuksesta huonosti, sillä useita komponentteja, jotka olivat testiohjelmissa, ei tunnistettu ja monia, jotka eivät edes olleet testiohjelmissa, tunnistettiin virheellisesti. Lisäksi haavoittuvuuksien ja lisenssien raportointi tuotti samanlaisia tuloksia. Työkalujen hinnat ovat säännöllisesti liian korkeita pienille ja keskisuurille yrityksille.

Description

Supervisor

Zhou, Quan

Thesis advisor

Sutela, Manu

Other note

Citation