EU:n tietosuoja-asetus ja Linux
Kuten kaikki IT-ammattilaiset varmasti jo tietävät, tietosuoja-asetuksen (EU 2016/679) siirtymäaika päättyy 25.5.2018 ja projektit vaatimustenmukaisuuden täyttämiseksi ovat kuumimmillaan. Vaikka tietosuoja-asetuksen vaatimukset ovat suurelta osin dokumentoituja prosesseja, tietosuojaperiaatteiden noudattamista ja riskilähtöistä henkilötietojen suojaamista, tulee huomiota kiinnittää myös tekniseen tietoturvaan.
Tietosuoja-asetuksen tekniset vaatimukset?
Tietosuoja-asetus ei määrittele millaiset tekniset kontrollit tarvitaan suojaamaan henkilötietojen käsittelyä ja tallentamista, vaan organisaation pitää noudattaa alan yleisiä hyvä käytäntöjä ja riskiperustaista harkintaa. Tekniselle tasolle mentäessä ei yleensä kannata takertua liikaa yksittäiseen vaatimukseen, vaan huolehtia teknisestä tietoturvasta laajemmin. Käytännössä organisaatiolla voisi olla vaikka 2-3 eri tietoturvaluokkaa, joihin palvelut sijoitetaan ja näille luokille toteutetaan halutut tietoturvakontrollit.
Käyn tässä läpi muutamia vaatimustenhallinnan osa-alueita nimenomaan Linux-järjestelmien työkaluihin perustuen, mutta periaatteet ovat toki samat muissakin käyttöjärjestelmissä.
Valvonta ja hälytykset
Yksi merkittävimmistä tietosuoja-asetuksen vaatimuksista on tietomurroista ilmoittaminen. Jotta organisaatio voi kertoa tietomurron tapahtuneen ja mitä palveluita tai tietoja tietomurto koskee tai ei koske, tarvitaan välineet valvomaan sitä, mitä palveluissa tapahtuu sekä tallentamaan tämä lokitieto huolellisesti.
Linux-käyttöjärjestelmässä on erinomaiset valmiit työkalut audit trailin ja lokienhallinnan hoitamiseksi:
- Linuxin Audit:n määrittelyä, jotta epäilyttävistä toimenpiteistä saadaan ilmoitukset.
- Sovellusten lokitusmääritysten läpikäyntiä, jotta sovellukset kirjoittavat tarpeelliset lokit tapahtumistaan.
- Keskitetyn lokienhallinnan käyttöönotto, jotta lokit tallennetaan luotettavaan paikkaan säilytettäväksi.
- Keskitetyn lokihallinnan lokidataa on analysoitava mahdollisten poikkeamien löytämiseksi, ja poikkeamat on käsiteltävä.
Päivitysten hallinta
Tietomurrot tapahtuvat usein sovellusvirheiden avulla. Koska kaikissa sovelluksissa on virheitä, on ensiarvoisen tärkeää pitää sovellukset päivitettyinä. Linux-jakeluissa on omat tapansa hoitaa päivitystenhallintaa, mutta isommassa ympäristössä tarvitaan usein jokin keskitetty sovellusinventaario ja päivitystenhallinta tietoturvapäivitysten hallintaan. Tähän on valmiita ohjelmistoja, kuten Red Hat Satellite, mutta yhtä hyvin tämän voi automatisoida omilla skripteillä.
Palvelinten koventaminen
Data on yhtä hyvin suojattu kuin sovellus, jossa sitä käsitellään. Jos sovelluksen käyttövaltuushallinta on leväperäistä tai sessionhallinta ei toimi, ei hyvälläkään tietokannan salauksella ole merkitystä. Jos taas palvelimella, jossa sovellusta ajetaan ei tietoturva ole kunnossa, ei sovellustason hienotkaan tietoturvakontrollit hyödytä.
Linux-ylläpitäjän näkökulmasta meidän pitää pystyä tuottamaan turvallinen, vakaa ja ylläpidettävä alusta sovelluksille ja datalle. Tätä alustan turvalliseksi tekemistä kutsutaan koventamiseksi. Käytännössä varmistetaan käyttövaltuushallinnan toimintaa, minimoidaan palveluita, salataan tietoa, tietoliikenneyhteyksiä jne.
Yksi tärkeä osa palvelinten koventamista on myös tunnistaa ja rajoittaa hyökkäyksen eteneminen palvelimen sisällä. Hyvät työkalut tähän tarjoaa mm. SELinux ja Audit-palvelu.
Verkon segmentointi ja valvonta
Organisaatioiden verkot ovat usein segmentoitu, mutta valitettavan usein eri verkkosegmenttien väliset palomuuriavaukset ovat varsin laajat. Näin esimerkiksi toimistoverkkoon pääsyn jälkeen on vihamielisellä taholla mahdollisuus edetä kohti päämääräänsä – henkilötietoa.
Verkon segmentointi on usein tehokkainta tehdä erillisissä palomuureissa, mutta useissa tapauksissa on perusteltua tehdä tarkempaa verkkoyhteyksien suojausta tai lokitusta myös itse palvelimella. Myös tähän Unix-pohjaiset ratkaisut antavat hyviä työkaluja. Oikein tehtyinä nämä eivät käyttöönoton jälkeen tuo juurikaan lisää työtä ylläpitäjille.
Varmistukset
Varmistusten ottaminen konesalissa on usein hyvin hallussa, mutta entäs se yksittäinen palvelin Azuressa? Kuuluuko varmistusprosessiin myös säännölliset testipalautukset? Sillä kuten Shrödinger’s Backup -laki kuuluu ”Varmistuksen tila on tuntematon ellei palautusta ole yritetty”.
Tarkemmin näitä ja monia muita Linuxin tietoturvaan liittyviä asioita läpikäydään Linuxin tietoturva -koulutuksessa.