Sovelluskehitystä turvallisessa ympäristössä

Sovellusten tietoturvallisuudella on keskeinen merkitys tietojärjestelmissä käsiteltävien tietojen suojaamisessa. Yhteiskunnan toiminta on yhä verkottuneempaa ja palveluja tarjotaan yhä enemmän Internetin kautta, missä sovellukset ovat lisääntyvässä määrin alttiita haavoittuvuuksille ja verkosta tuleville uhkille.

Ketterän kehitysmallin mukaisissa sovelluskehitysprojekteissa kehityssyklit voivat olla hyvin lyhyitä ja intensiivisiä. Tämä tuo erilaisia haasteita sovelluksen tietoturvallisuudelle ja turvalliselle sovelluskehitykselle. Tällöin on tärkeää ottaa turvallisuus huomioon jo sovelluksen vaatimusmäärittelystä lähtien ja pyrkiä suunnittelemaan ja huomioimaan turvallisen sovelluskehityksen periaatteet koko sovelluksen elinkaaren ajan. Käytetystä menetelmästä riippumatta sovelluskehitys sisältää tyypillisesti seuraavat elementit: Vaatimukset, Suunnittelu, Toteutus, Testaus ja Ylläpito.

 

 

Tutustu bitit, bisnes ja tietoturva -oppaaseen

Hyvä kyberturvallisuudesta vastaava, tämä opas on kirjoitettu juuri Sinulle. Kerromme monta hyvää syytä, miksi ja miten lunastat paikkasi organisaatiosi keskeisenä tuloksen tekijänä – puolustustanne kokonaisvaltaisesti ja yhdessä kehittämällä.

Lue lisää

Vaatimukset

Vaatimusten tunnistaminen on ohjelmistokehityksen perusta ja ohjaa päivittäistä työtä. Liiketoiminnan kannalta hyvin tehty vaatimusten tunnistaminen vaikuttaa myös business case –laskelmiin. Vaatimukset-vaihe käsittää vaatimusmäärittelyn ja riskienhallinnan käynnistämisen sekä projekti-, että tietoturvatyön näkökulmasta. Tietoturvan näkökulmasta tässä vaiheessa toteutetaan uhkamallinnus ja määritellään hyökkäystarinat/väärinkäyttötapaukset järjestelmän toiminnallisuuksia vasten.

Suunnittelu

Ympäristön turvallisuussuunnittelu tehdään ennen kehityksen aloittamista ja turvallisuussuunnitelmaa ylläpidetään ympäristön muuttuessa palvelun aikana. Uhkien ja riskien arvioinnin myötä on saatu ympäristöä koskevat turvallisuusvaatimukset, jotka ovat ympäristön turvallisuussuunnittelun pohjana.

Toteutus

Toteutuksessa aiemmin suunnitellut toiminnallisuudet ja tietoturvakontrollit toteutetaan yhdessä toimivaksi kokonaisuudeksi. Kehityksessä on erityisen tärkeää huomioida koko kehityksen elinkaaren turvallisuus sekä sovelluksen että kehitysympäristön näkökulmasta unohtamatta fyysistä turvallisuutta.

Testaus

Koko ohjelmistokehityksen elinkaaren kattavalla testauksella varmistetaan, että järjestelmä toimii vaatimusten mukaan ja tietoturvakontrollit toimivat suunnitellusti. Tietoturvatestausta voidaan tehdä automaattisesti ja manuaalisesti. Automaattinen testaus otetaan usein osaksi jatkuvan integroinnin/ asennuksen toteuttamista hallitusti – työkalut asennetaan suunnitellusti, niitä seurataan ja reagoidaan tarvittaessa. Manuaalista tietoturvatestausta tehdään voidaan tehdä esimerkiksi jatkuvana suurempien julkaisukokonaisuuksien yhteydessä.

Ylläpito ja elinkaaren hallinta

Ylläpidon aikana on huomioitava, että maailma sovelluksen ympärillä muuttuu ja näin ollen on seurattava sovelluksen tilaa tuotantoaikana aktiivisesti. Onkin hyvä suunnitella haavoittuvuuksienhallinta- ja tietoturvapoikkeamaprosessit ennen tuotantokäyttöä ja toteuttaa suunnitelmaa koko ylläpitovaiheen ajan. Ohjelmiston käyttöä seurataan tuotannossa esimerkiksi haitallisen liikenteen osalta, jolloin siihen voidaan puuttua nopeasti tai ympäristön turvallisuutta voidaan elinkaaren aikana parantaa ja ylläpitää mm. lisäämällä kompensoivia kontrolleja kuten sovelluspalomuureja.

Turvallinen ohjelmistokehitys