15. tammikuuta 2018

Kuinka estää 143 miljoonaan käyttäjään kohdistuva tietomurto?


Vuoden 2017 yksi merkittävimmistä tietoturvauutisista oli Equifaxin 143 miljoonaan käyttäjään kohdistunut tietomurto. Equifax ilmoitti hyökkääjän päässeen www-sovelluksessa olevan haavoittuvuuden kautta usean kuukauden ajan käsiksi 143 miljoonan käyttäjän tietokantaan. Hyökkääjä sai haltuunsa nimiä, osoitteita, henkilötunnuksia sekä luottokorttien numeroita.

Equifax ei ole antanut tarkkoja tietoja julkisuuteen, mutta kyseessä oli haavoittuvuus Apache Struts nimisessä vapaan lähdekoodin kirjastossa. Tämän haavoittuvuuden avulla hyökkääjä pääsi ajamaan www-sovelluksen kautta www-palvelimella mielivaltaisia komentoja. Ohjelmistoissa on, ja tulee aina olemaan haavoittuvuuksia. En puutu niihin tässä sen enempää, mutta tietoturva-ammattilaisen näkökulmasta yksittäisen sovelluksen haavoittuvuus ei saa koskaan tarkoittaa 143 miljoonaan käyttäjään kohdistuvaa tietomurtoa.

Yksinkertainen pelastus: SELinux=enforcing

Valitettavinta tässä on se, että Linuxissa on jo 17 vuoden ajan ollut turvamekanismi nimeltä SELinux, joilla tämän kaltainen haavoittuvuuden hyödyntäminen olisi torjuttu. SELinux tai vastaava ytimen turvamekanismi on uusissa Linux-jakeluissa oletuksena päällä, mutta palvelinasiantuntijoiden ensimmäinen toimenpide on yleensä kytkeä se pois päältä.

SELinuxin tarkoitus on rajoittaa mm. käyttäjien, prosessien, porttien ja tiedostojen välisiä oikeuksia ennalta määriteltyjen sääntöjen mukaan. Tällä pyritään estämään hyökkääjien toimien eteneminen tai ylläpitäjien virheiden aiheuttamat vahingot. Esimerkiksi www-sovelluksen ei pidä lukea tai muokata käyttöjärjestelmän omia konfiguraatiota, joten SELinux estää /etc/ -hakemistossa olevien tiedostojen lukemisen. Esto tehdään siitä huolimatta millaiset oikeudet tiedostotasolla olisi määritelty.

Miksi siis Linux-jakelussa olevia tietoturvakontrolleja ei käytetä?

Yleisin syy tähän on osaaminen, ja kuvitelma että kontrollien hallinta olisi työllistävää. On totta, että väärin tehtynä kontrollit voivat estää kaiken muun toiminnan, mutta oikein mietittynä ja tehtynä ne voivat olla hyvinkin huomaamattomia – samalla silti tuoden huomattavaa lisäsuojaa.

Rohkaisen tutustumaan SELinuxiin, se on erittäin tärkeä työkalu turvallisen Linux-järjestelmän rakentamisessa.

Jos itseopiskelu tuntuu liian työläältä, tule Linuxin tietoturva -kurssille oppimaan.

PS. Myös SELinux on ohjelmisto, ja siinäkin on virheitä. Equifaxin tietomurron aikoihin Red Hatin SELinux säännöstöissä havaittiin virhe, jonka seurauksena Tomcat-sovelluspalvelin pääsi tarpeettomaan laajasti käyttöjärjestelmään. Järjestelmien säännöllinen päivitys on yksi tärkeimmistä tietoturvakontrolleista!

Timo Vehviläinen

Timo innostuu tietoturvasta, erityisesti yhdistelmästä tietoturva ja Linux. Hän vetää Tieturilla Linuxin tietoturva -kurssia.


Ei kommentteja:

Lähetä kommentti

Suositut tekstit