ChaosDB: Uhkaava repeämä pilvessä
Elokuussa Azuren moderneimmasta PaaS-tietokantatuotteesta, Cosmos DB:stä, löytyi vakava haavoittuvuus. Tällä kertaa selvittiin säikähdyksellä, mutta pahimmillaan hyökkääjät olisivat voineet lukea ja kirjoittaa kaikkea palvelussa ollutta dataa. Mitä tapahtui ja mitä siitä pitäisi oppia?
ChaosDB:ksi nimetyn haavoittuvuuden perusajatus on yksinkertainen: Azuren Cosmos DB -tietokannan yhteyteen taannoin lisätty uusi ominaisuus, datavisualisoinnin Jupyter Notebooks -käyttöliittymä, sisälsi haavoittuvuuden, jonka kautta oli murtautua myös toisten asiakkaiden Cosmos-tileille.
Hyökkäyksessä murtauduttiin ensin toisen asiakkaan notebookiin, jonka kautta pääsi etenemään itse tietokantaan. Kuva: Wiz.
Microsoftin reaktio oli nopea: Vuotava ominaisuus kytkettiin pois käytöstä alle kahdessa vuorokaudessa sen jälkeen, kun löytäjät olivat raportoineet haavoittuvuudesta Microsoftille. Kun ongelmasta kerrottiin julkisesti vajaa kaksi viikkoa myöhemmin, Microsoft suositteli tuhansille Cosmos DB:n käyttäjille pääsyavainten kierrätystä – toimenpidettä, jossa tietokannan käyttöön tarvittavat salasanat vaihdetaan uusiin. Suositus koski niitä asiakkaita, joiden pääsyavaimet olisivat potentiaalisesti voineet olla vaarassa.
Elokuun lopussa elettiin Devisioonassakin muutamia hikisiä hetkiä, kun värkkäsimme koordinoituja avaintenkierrätyksiä Cosmosta käyttäville asiakkaillemme. Tämän operaation yhteydessä esiin nousi koko joukko ajatuksia ja huolia tulevasta. Vaikka Microsoft sittemmin vahvistikin, ettei aukkoa ollut käytetty, mitä olisikaan voinut aivan yhtä helposti käydä, jos löytäjä ei olisi sattunut olemaan tietoturvatutkijaryhmä? Tai jos tutkijaryhmä olisi päättänyt Microsoftin 40 000 dollarin bugipalkinnon sijaan rahastaa löytönsä pimeillä markkinoilla?
Lisätietoja: Wiz-yrityksen tutkijaryhmän blogikirjoitus haavoittuvuudesta
Eikö julkipilven pitänyt olla turvallinen?
Tarvitseeko pilvikin suojelua?
Lähtökohtainen oletus on, että pilvi on turvallisempi kuin on-premises-ympäristö: pilvessä oleva kunnolla konfiguroitu virtuaalikone on lähtökohtaisesti paremmassa turvassa kuin paikallisessa konesalissa oleva vastaava viritys. PaaS- ja SaaS-palveluilta odotetaan suorastaan vieläkin korkeampaa tietoturvan tasoa, ja jos haavoittuvuuksia esiintyykin, ne pystytään yleensä korjaamaan nopeammin kuin on-premises-ympäristössä.
Sinänsä nämä odotukset täyttyivät nytkin. ChaosDB korjattiin erittäin nopeasti löydöksen jälkeen, ja Microsoftin tietoturvavaste oli esimerkillinen. Jos vastaava ongelma olisi löytynyt jostain paikallisesti asennettavasta sovelluksesta, korjaussykli olisi toki ollut paljon hitaampi ja hankalampi. Tästä huolimatta koko afääristä jäi hieman nihkeä maku suuhun: Miten saattoi käydä niin, että kokonainen palvelu avautui näin perustavanlaatuisella haavoittuvuudella lähes koko maailmalle? Miten huolehtia siitä, ettei näin käy uudelleen?
Vaikka toimisikin Microsoftin ohjeiden mukaisesti, epävarmuus jää kaivamaan. Lopulta kyse onkin siitä, että turvallisuus julkisessa pilvessä vaatii jatkuvaa suunnittelua ja hallinnointia, mahdollisesti myös uusien palveluiden käyttöönottoa. Aloitettavissa projekteissa nämä menettelyt on helpompi huomioida, mutta esimerkiksi vuosia vanhoissa järjestelmissä kaikkia Azuren uusia ominaisuuksia ei välttämättä ole huomioitu.
Pilvievoluution päänsäryt
Pitäisikö Azuren palveluissakin olla tällainen dialogi?
Jälkiviisaasti tekee mieli sanoa, että Microsoftin Azure-tiimi teki virheen kytkiessään Jupyter Notebooks -ominaisuuden päälle oletuksena uusille Cosmos-kannoille. Paikallisissa palvelintuotteissa minimaalisen hyökkäyspinnan varjeleminen on todella pitkällä, ja esimerkiksi Windows Serverin oletusasennus on jo riivitty turhauttavankin kevyeksi. Tässä valossa tuntuu jopa hieman hurjalta, että kriittiseen tietokantaympäristöön asennetaan oletuksena mukaan datan selailuun ja visualisointiin tarkoitettu monimutkainen käyttöliittymäsovellus. Turvamielessä ideaalista olisi, että Azuressakin voisi paremmin valita kussakin resurssissa tarvittavat ominaisuudet – ani harva käyttää edes Storage Accountin tai App Servicen kaltaisesta peruspalvelustakaan kaikkia sen vipstaakeja. Jokainen päällekytketty ominaisuus voi aina sisältää sen kriittisen bugin, joten parasta olisi ajaa vain mahdollisimman vähän koodia.
Asia ei kuitenkaan ole yksioikoinen. Azuren tuotevalikoiman monimutkaisuus aiheuttaa jo nykyisellään Microsoftille viestintävaikeuksia, ja jokainen Azurea käyttänyt myös tietää, miten haastavaa ominaisuusvalikoimassa navigointi on. Jos jokainen asennusskripti ja ohjevideo pitäisi varustaa ”Huolehdi että tämäkin ominaisuus on otettu käyttöön”-varmistuksilla, käyttökokemus olisi entistäkin sekavampi. Näin erityisesti, kun parhaaseen as-a-service-henkeen uusia ominaisuuksia lisätään jatkuvasti ja joka paikkaan. Kuinka pieninä tai isoina palasina näistä pitäisi voida valita?
Jatkuva muutos on haaste niin Microsoftille kuin asiakkaille ja ylläpitopalvelua tarjoaville toimittajillekin. Jos Cosmos DB on napattu käyttöön JSON-dokumenttien tietovarastoksi 2018, tiesikö järjestelmän ylläpitäjäkään edes koko Jupyter Notebooksista? Azure-palveluiden evoluutioon on monesti voinut suhtautua ”tarpeen mukaan”-tekijänä: opetellaan uusia ominaisuuksia silloin, kun niitä jossain projektissa tarvitaan.
ChaosDB muistuttaa laajemminkin siitä, että vaikka pilvipalvelut eivät yleensä vaadi päivityksiä, vuosien takainen parhaiden käytäntöjen mukainen arkkitehtuuri ei välttämättä enää ole paras. Tietoturvakinkereissä ei riitä säilyä vanhalla tasolla, hyökkääjät kun laukkaavat joka tapauksessa eteenpäin. Microsoft ja muut julkipilven tarjoajat tekevät kaikkensa suojellakseen asiakkaitaan tietoturvahaavoittuvuuksilta, mutta palvelut monimutkaistuvat jatkuvasti, ja virheitä voi sattua ihan kaikille.
Jatkuvalla kokonaisarkkitehturoinnilla on arvoa
Keskustelun oikeasta arkkitehtuurista ja riittävistä ylläpitokäytännöistä on oltava jatkuvaa, ei vain projektivaiheen kertaluontoinen analyysi. Pilvi-infrastruktuurin helppo pystytettävyys kannustaa aloittamaan Hello World -tasoisesta minimistä ja rakentamaan lisää vähitellen. Ketteryys on hyvästä, mutta palanen kerrallaan väkertäessä päädytään usein ottamaan käyttöön uusia palveluita juuri kyseisen palvelun demoja ja ohjeita seuraten. Tällöin laajemmat palveluiden väliset yhteydet ja mahdollisuudet jäävät helposti ajattelematta – tai ainakin projektipaineessa toteuttamatta.
Azure Private Link mahdollistaa verkkoteknisen tason sipulipuolustuksen myös PaaS-palveluista. Kuva: Microsoft
Esimerkki usein puuttuvasta arkkitehtuurista liittyy virtuaaliverkkojen käyttöön. ChaosDB-haavoittuvuuttakin olisi voinut torjua käyttämällä virtuaaliverkkoja ja palomuurisääntöjä, esimerkiksi Azure Private Link -palvelua. Se mahdollistaa Azuren PaaS-palveluiden suojaamisen siten, että niihin on pääsy vain rajatuista aliverkoista. Vaikka Jupyter Notebook -toiminto olisikin paljastanut hyökkääjälle pääsyavaimet, kantaa olisi päässyt lukemaan vain murtautumalla lisäksi sopivaan verkkoon. Oletuksena monet Azuren PaaS-palvelut ovat kuitenkin auki koko maailmalle.
Kerroksittaisella sipulitietoturvalla on siis paikkansa Azuressakin, mutta käytännössä Private Linkiä ja virtuaaliverkkoja ei ole viritetty läheskään kaikkiin pilvessä pyöriviin PaaS-toteutuksiin. Syyttävää sormea voi osoittaa Microsoftin suuntaankin: esimerkiksi Cosmos DB:n oletustietoturva-asetukset sallivat liikenteen avoimesti kaikkialta, mikä toki onkin helpompaa. Lisäksi Private Link julkaistiin vasta keväällä 2020, ja kaikki Azuren PaaS-palvelut eivät tue sitä vieläkään. Parhaiden menettelyjen käyttöönotto ei siis aina ole myöskään niin yksinkertaista kuin voisi toivoa.
Ongelmaa olisi voinut lähestyä myös käyttämällä pääsyavainten sijaan Azure AD:hen perustuvaa tunnistautumista, jolloin keskitettyjen avainten vuotaminen ei olisi haitannut. Tämäkin on loistava ratkaisu, mutta tuli saataville vasta toukokuussa 2021, ja sen tuki on vielä jossain määrin rajoitettu. Azure AD -pohjaiset Managed Identity -ratkaisut ovat oikea suunta, mutta tuessa on vielä kehittämistä, sillä läheskään kaikki palvelut eivät sitä tue. Ja niin kauan kun eivät tue, käyttöönottoon liittyvät ylimääräiset jumpat voivat tuntua aikapaineessa haastavilta – eihän ratkaisusta saada edes kattavaa.
Toisaalta vikaa voi etsiä myös toimittajista ja asiakkaista: Kerran käyttöönotetun palvelukokonaisuuden uudelleenjärjestelyä verkkotasolla ei välttämättä tule tehdyksi, koska asia ei ole kenenkään pöydällä – tai vaihtoehtoisesti sopalle olisi liiankin monta kokkia. Monet parhaista käytännöistä ovat suhteellisen uusia, ja siten mahdollista remontointia tarvitsevia vanhempia palveluita olisi jo melkoinen joukko. Harvassa organisaatiossa on kuitenkaan selkeää mallia, jolla Azuren uusia ominaisuuksia otettaisiin vanhoissa sovelluksissa harkintaan huolellisen kustannus/hyöty-analyysin kautta.
Tietoturva on ikuinen murheemme
Tätä blogipostausta kirjoitettaessa nousi julkisuuteen Azure Container Instancesia koskeva haavoittuvuus, joka nimettiin AzureScapeksi. Lisäksi eräs ChaosDB:n löytäneistä tutkijoista kertoi Twitterissä, että tiimi oli löytänyt heti perään toisen Azure-haavoittuvuuden, josta ei ole vielä tarkempia tietoja. Nämä käänteetkään eivät tarkoita sitä, etteikö pilveen voisi luottaa, mutta poikkeuksellisen haavoittuvuuksien tiivistymän pitäisi terävöittää katseita tietoturvan hallintaan.
Konkreettisten tietoturvauhkien kehittymisen lisäksi meitä vie eteenpäin sääntelynäkökulma. Esimerkiksi GDPR:n 32 artiklassa mainittujen henkilötietojen turvaamisen kannalta ”asianmukaisten teknisten ja organisatoristen toimenpiteiden” ei ole mitenkään yleisesti katsottu edellyttävän virtuaaliverkkorajauksia PaaS-palveluihin, mutta missä vaiheessa tilanne muuttuu? Tietoturvan hyväksyttävä perustaso vuonna 2021 on kovin erilainen kuin vaikkapa Azuren alkumetreillä 10 vuotta sitten.
Perusoletus PaaS-ympäristön turvallisuudesta pitää tietysti edelleen hyvin paikkansa – keskimäärin. Mutta vaikka esimerkiksi Azure SQL Database tai Cosmos DB ovat erittäin turvallisia korvikkeita itse ajetulle tietokantapalvelimelle, voi kysyä, riittääkö turvallinen tietokanta enää kokonaisratkaisun turvaksi. Azuren tietoturvaominaisuudet ovat kehittyneet huimin loikkauksin viimeisen viiden vuoden aikana. Puhutaan sitten salaisuuksien hallinnasta, sovellusidentiteeteistä, verkkosovelluksen palomuureista, Private Linkistä tai Sentinelin kaltaisista varsinaisista tietoturvatuotteista, lisäturvaa tarjoavia mahdollisuuksia on todella paljon. Mitkä niistä pitäisi ottaa käyttöön, ja mitkä näistä ovat kriittisiä juuri sen seuraavan haavoittuvuuden torjumisessa?
Keskeisin haaste yhtälössä on riittävän monipuolisen osaamisen ylläpitäminen ja tuominen käytännön tasolle. Pilvi on tehnyt ratkaisukehityksestä aiempaakin devaajavetoisempaa, ja infraosaaminen näyttäytyy monissa hankkeissa lähinnä keskus-IT:n rajoittavien linjausten kautta. Tietoturvan perusopit kuuluvat kaikille, mutta uhkamallinnuksen ja riskianalyysin kaltaiset erityislajit vaativat lujaa otetta erityisesti hankkeiden omistajilta. Pitää olla rohkeutta miettiä, mitkä ratkaisut ovat oikeasti valmiita tuotantoon vietäviksi – ja myös sitä, miten niiden turvallisuutta ylläpidetään pitkällä tähtäimellä.
Haluatko jutella pilviajan digiratkaisujen kehittämisestä – turvallisuusseikat huomioiden? Ota yhteyttä!
Jouni on 25 vuoden uransa aikana tehnyt kaikkea helpdeskistä henkilöstöjohtamiseen ja koodauksesta kolvaamiseen. Hänen erityisalaansa ovat Microsoft-teknologioiden käyttöönotot, monimutkaiset ongelmat sekä ohjelmistotuotannon laatukysymykset. Jouni on Devisioonan toimitusjohtaja ja yksi maailman 160 Microsoft Regional Directorista.
Lisätietoja
Tagit
Erikoisosaaminen
Arkkitehtuuri | |
Integraatiot |
Teknologia
Azure |
Tarjonnan tyyppi
Konsultointi | |
Toteutustyö | |
Tuki- ja ylläpitotyö |
Omat tagit
Devisioona - Asiantuntijat ja yhteyshenkilöt
Devisioona - Muita referenssejä
Devisioona - Muita bloggauksia
It- ja ohjelmistoalan työpaikat
- Nordea - Sr IT Analyst - Adobe/SAS Marketing Automation
- Nordea - Senior IT / Business Analyst with technical background - Finland, Nordea Payments
- Nordea - Senior IT Analyst, Finnish language required
- Laura - DevOps Engineer
- Aveso Oy - ERP tekninen projektipäällikkö
- Aveso Oy - IFS ERP -konsultti
- Laura - Digiasiantuntija, PAMin keskustoimistoon Helsinkiin
Premium-asiakkaiden viimeisimmät referenssit
- Symbio - Taxi Point Oy
- Valve - Helsingin yliopiston ylioppilaskunnan verkkopalvelun siirto WordPressiin
- Valve - Eezy Valmennuskeskuksen verkkokauppa-uudistus
- Valve - Danonen Nutricia ja Aptaclub -brändien sivustot
- Hellon - Identifying growth opportunities with global Moomin fans
- Hellon - Award-Winning Inclusive Customer Experience for Northern
- Hellon - Developing a Life-Saving App to Boost Blood Donations
Tapahtumat & webinaarit
- 13.11.2024 - Rakettiwebinaari: ohjelmistotestaus ja sen tulevaisuus
- 14.11.2024 - RoimaDay 2024
- 14.11.2024 - Verkkolaskufoorumin syysseminaari 2024
- 19.11.2024 - The Future of Software - Embracing Collaboration in an AI-Powered World
- 27.11.2024 - Green ICT -ekosysteemitapaaminen III: Ohjelmistojärjestelmien virrankulutuksen mittaaminen ja kasvihuonepäästöjen arviointi
Premium-asiakkaiden viimeisimmät bloggaukset
- Timeless Technology - Verkon luotettavuuden varmistaminen: Ota käyttöön Perle Systemsin teollisuustason 4G ja 5G reitittimet!
- Efima Oyj - Hyvästi turhat klikkailut: Näin moderni järjestelmä tehostaa myyntityötä erikoistavarakaupassa
- SC Software Oy - SC Softwaren uratarinat: Joel Ollikainen, konsultti
- Softlandia Oy - Sovelletun tekoälyn insinöörien esiinmarssi ja tekoälyosaamisen muutos
- Innofactor Oyj - 5 Copilot-vinkkiä Microsoft 365 -käyttäjälle
- Innofactor Oyj - Tekoäly käytännössä: 3 AI-työkalua myynnin ammattilaiselle
- TNNet Oy - "Asiakkaan tulee saada palvelua, joka jää mieleen"
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |