Yleisimpien verkkosovellus haavoittuvuuksien demonstrointi ja korjaus Node.js-ympäristössä
Ikonen, Niilo (2025)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202505069333
https://urn.fi/URN:NBN:fi:amk-202505069333
Tiivistelmä
Tässä opinnäytetyössä tutustuttiin yleisimpien verkkosovellus haavoittuvuuksien toimintaan Node.js-ympäristössä. Tavoitteena oli rakentaa haavoittuva Node.js-verkkosovellus, jossa voidaan demonstroida yleisimpien hyökkäysten toimintatapoja ja metodeja, jotta sovelluskehityksessä voidaan puolustautua paremmin tunnetuilta uhilta.
Tietoperustassa käytiin läpi tarkemmin niiden hyökkäysten toimintaa, joita opinnäytetyössä demonstroidaan ja paikataan. Toteutusvaiheessa esitettiin testiympäristö, jossa käytiin tarkemmin käyttöliittymäpalvelimen, taustapalvelimen sekä MySQL-tietokannan toiminta. Testiympäristön avulla simuloitiin XSS-, CSRF-, palvelunestohyökkäysten ja SQL-injektioiden toimintaa ja jokaiseen hyökkäysmetodiin demonstroitiin puolustautumismekanismit vaiheittain. Opinnäytetyön lopputuloksena tuotettiin verkkosovellus, jossa merkittävimmät tietoturvahaavoittuvuudet ovat korjattu.
Käyttöliittymää rakennettaessa on suositeltavaa käyttää modernia kehystä, kuten Reactia, sillä kyseiset kehykset ajavat kehittäjiä kohti parempia turvakäytänteitä, joka hankaloittaa haavoittuvuuksien tuottamista. Kehittäjien on kuitenkin tiedettävä, miten ongelmia voi ilmetä kehyksen epäturvallisessa käytössä.
Loppujen lopuksi yleisimpien haavoittuvuuksien toiminta perustuu siihen, että kehittäjät eivät käytä ohjelmistoaan parhaiden käytänteiden mukaisesti tai yhteen liitetyt järjestelmät toimivat tavalla, jota on vaikea ymmärtää. Hyökkäyksiltä puolustautuakseen on tärkeää omata syvä tietämys projektissa käytetyistä ohjelmistoista ja kirjastoista sekä ymmärtää miten hyökkääjät lähestyvät haavoittuvaa järjestelmää.
Tietoperustassa käytiin läpi tarkemmin niiden hyökkäysten toimintaa, joita opinnäytetyössä demonstroidaan ja paikataan. Toteutusvaiheessa esitettiin testiympäristö, jossa käytiin tarkemmin käyttöliittymäpalvelimen, taustapalvelimen sekä MySQL-tietokannan toiminta. Testiympäristön avulla simuloitiin XSS-, CSRF-, palvelunestohyökkäysten ja SQL-injektioiden toimintaa ja jokaiseen hyökkäysmetodiin demonstroitiin puolustautumismekanismit vaiheittain. Opinnäytetyön lopputuloksena tuotettiin verkkosovellus, jossa merkittävimmät tietoturvahaavoittuvuudet ovat korjattu.
Käyttöliittymää rakennettaessa on suositeltavaa käyttää modernia kehystä, kuten Reactia, sillä kyseiset kehykset ajavat kehittäjiä kohti parempia turvakäytänteitä, joka hankaloittaa haavoittuvuuksien tuottamista. Kehittäjien on kuitenkin tiedettävä, miten ongelmia voi ilmetä kehyksen epäturvallisessa käytössä.
Loppujen lopuksi yleisimpien haavoittuvuuksien toiminta perustuu siihen, että kehittäjät eivät käytä ohjelmistoaan parhaiden käytänteiden mukaisesti tai yhteen liitetyt järjestelmät toimivat tavalla, jota on vaikea ymmärtää. Hyökkäyksiltä puolustautuakseen on tärkeää omata syvä tietämys projektissa käytetyistä ohjelmistoista ja kirjastoista sekä ymmärtää miten hyökkääjät lähestyvät haavoittuvaa järjestelmää.