Tietoturvaongelmien havaitseminen Node.js-ympäristöissä
Jämiä, Mikko (2019)
Jämiä, Mikko
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201905078140
https://urn.fi/URN:NBN:fi:amk-201905078140
Tiivistelmä
Insinöörityön tarkoituksena oli tutkia toimintatapoja haavoittuvuuksien havaitsemiseen ja korjaamiseen Node.js-ympäristöissä. Insinöörityö tehtiin suomalaiselle yritykselle, joka tarjoaa asiakkailleen sovelluskehitystä, suunnittelua ja konsultointia IT-alalta. Asiakas halusi kartoittaa kaikkien aktiivisten Node.js-ympäristöjä käyttävien sovellusprojektiensa haavoittuvuudet. Analyysia varten tuli kaikkien organisaation sovellusprojektien ympäristöä kuvaavat tiedostot kopioida yhden hakemiston alle Github-versionhallintajärjestelmässä. Lopullinen analyysi suoritettaisiin versionhallinnassa käyttäen asianmukaisia työkaluja. Analyysin tarkoituksena oli kartoittaa haavoittuvuuksien nykyinen tilanne ja parantaa sovellusprojektien tietoturvaa tulevaisuudessa.
Ensin työssä vertailtiin neljää haavoittuvuuksien havaitsemiseen ja korjaamiseen tarkoitettua työkalua. Seuraavaksi työssä selvitettiin, kuinka kaikkien projektien Node.js-ympäristöä kuvaavat tiedostot saataisiin kopioitua yhteen hakemistoon. Haluttuja tuloksia saatiin ajamalla komentorivillä komentosarjoja, jotka kopioivat tiedostot paikallisesti uuteen hakemistoon. Ratkaisun heikkoudeksi osoittautui sen paikallisuus, jolloin hakemistojen tuli olla valmiiksi kopioituna käyttäjän työasemalle. Ongelman ratkaisemiseksi päädyttiin kehittämään Node.js-sovellus, joka teki kutsuja Githubin ohjelmointirajapintaan. Rajapinnasta saadun datan pohjalta sovellus loi tiedostot uudestaan uuden hakemiston alle.
Tiedostot kerättiin uuteen hakemistoon, joka siirrettiin versionhallintaan. Versionhallinnassa hakemistoon integroitiin Renovate Bot -työkalu, joka on automaattiseen pakettien päivittämiseen tarkoitettu sovellus. Työkalua voidaan myös käyttää haavoittuvuuksien havaitsemiseen eri ohjelmointiympäristöissä. Renovate Bot avasi analyysin pohjalta Github-hakemistoon uusia vertaisarviointitikettejä, joista kävivät ilmi vanhentuneet ja haavoittuneet paketit.
Valmiin analyysin tulokset ilmoitettiin suoraan asiakkaalle. Projektin hakemisto ja analyysin tulokset jaettiin myös yrityksen kehittäjille. Kehittäjiä kehotettiin korjaamaan ilmi tulleet haavoittuvuudet ja suositeltiin integroimaan Renovate Bot kaikkiin yrityksen Github-organisaation hakemistoihin.
Ensin työssä vertailtiin neljää haavoittuvuuksien havaitsemiseen ja korjaamiseen tarkoitettua työkalua. Seuraavaksi työssä selvitettiin, kuinka kaikkien projektien Node.js-ympäristöä kuvaavat tiedostot saataisiin kopioitua yhteen hakemistoon. Haluttuja tuloksia saatiin ajamalla komentorivillä komentosarjoja, jotka kopioivat tiedostot paikallisesti uuteen hakemistoon. Ratkaisun heikkoudeksi osoittautui sen paikallisuus, jolloin hakemistojen tuli olla valmiiksi kopioituna käyttäjän työasemalle. Ongelman ratkaisemiseksi päädyttiin kehittämään Node.js-sovellus, joka teki kutsuja Githubin ohjelmointirajapintaan. Rajapinnasta saadun datan pohjalta sovellus loi tiedostot uudestaan uuden hakemiston alle.
Tiedostot kerättiin uuteen hakemistoon, joka siirrettiin versionhallintaan. Versionhallinnassa hakemistoon integroitiin Renovate Bot -työkalu, joka on automaattiseen pakettien päivittämiseen tarkoitettu sovellus. Työkalua voidaan myös käyttää haavoittuvuuksien havaitsemiseen eri ohjelmointiympäristöissä. Renovate Bot avasi analyysin pohjalta Github-hakemistoon uusia vertaisarviointitikettejä, joista kävivät ilmi vanhentuneet ja haavoittuneet paketit.
Valmiin analyysin tulokset ilmoitettiin suoraan asiakkaalle. Projektin hakemisto ja analyysin tulokset jaettiin myös yrityksen kehittäjille. Kehittäjiä kehotettiin korjaamaan ilmi tulleet haavoittuvuudet ja suositeltiin integroimaan Renovate Bot kaikkiin yrityksen Github-organisaation hakemistoihin.