You are here: TUTWiki>Tietoturva/Tutkielmat>TyoLuettelo?>NoSQLSecurity (revision 1)

TTY / Tietoturvallisuuden jatkokurssi / Tutkielma 2013 / Luonnosvaihe

Mika Mäenpää

NoSQL?-tietokantojen tietoturva

Johdanto

NoSQL?-tietokannat ovat kasvattaneet suosiotaan viime vuosina. NoSQL? terminä käsitetään tarkoittavan Not Only SQL, eli niiden katsovan täydentävän perinteisiä relaatiotietokantoja. NoSQL?-tietokannat yleensä keskittyvät johonkin tiettyyn ominaisuuteen, jonka ne toteuttavat paremmin kuin relaatiotietokannat. Suurimman osan suunnittelussa ei ole keskitytty tietoturvanäkökulmiin, vaan keskitytty muihin ominaisuuksiin. NoSQL? terminä käsittää kaikki erilaiset tietokannat, jotka eivät ole relaatiotietokantoja. Tämän vuoksi tutkielmassa keskitytään kolmeen tietokantatyyppiin ja erityisesti jokaisen tyypin suosituimpaan edustajaan. Tutkielmassa verrataan näiden tietokantojen tietoturvaominaisuuksia relaatiotietokantojen tarjoamiin ominaisuuksiin.

Tietokantatyypit

Yleisesti ottaen NoSQL?-tietokannat eivät tue relaatiotietokannoista tuttuja ACID-ominaisuuksia. Toisaalta taas suorituskyky ja skaalautuvuus ovat yleensä paremmat.

Dokumenttipohjaiset tietokannat säilövät tietoa dokumenteissa. Relaatiotietokannan tauluihin verrattuna dokumentit ovat joustavampia, koska eri dokumenteilla ei ole pakko olla samoja alkioita. Dokumentit voivat olla esimerkiksi JSON- tai
XML-pohjaisia. Dokumenttipohjaiset tietokannat antavat joustavuutta datan käsittelyyn ja yleensä hyvän skaalautuvuuden. Huonona puolena monimutkaisten kyselyiden tekeminen on vaikeaa tai mahdotonta. Suosituin dokumenttipohjainen tietokanta on MongoDB? [1].

Graafipohjaisessa tietokannassa tieto säilötään graafin solmuissa attribuutteina ja suhteet ilmaistaan graafin kaarina. Myöskään graafipohjaisissa tietokannoissa ei ole kiinteää skeemaa. Graafipohjaiset tietokannat ovat nopeampia sellaisen tiedon käsittelyyn, joka pystytään helposti mallintamaan graafina. Suosituin graafitietokanta on Neo4J? [1].

Sarake-pohjaiset tietokannat ovat lähimpänä tavallista relaatiotietokantaa. Ne ovat tarkoitettu säilömään ja käsittelemään suuria määriä dataa hajautettuna monelle eri koneelle. Suurin ero relaatiotietokantaan on pyrkimys säilöä data denormalisoituna. Suosituin saraka-pohjainen tietokanta on Apache Cassandra [1].

Relaatiotietokantojen tietoturvaominaisuudet

Relaatiotietokannat tarjoavat yleensä mahdollisuuden salata tietoliikenne. Sen lisäksi, että tietoliikenne asiakkaan ja palvelimen välillä voidaan salata, voidaan myös salata liikenne palvelinten välillä.

Myös itse data voidaan salata. Data voidaan salata joko asiakkaan päässä, tietokannan toimesta tai tiedostojärjestelmän tasolla.

Relaatiotietokannat antavat hyvän tuen asiakkaiden autentikointiin, autorisointiin ja auditointiin. NoSQL?-tietokannoissa nämä ovat voineet jäädä vähemmälle huomiolle.

Koska NoSQL?-tietokannat eivät yleensä käytä SQL:ää, ei SQL-injektiota voi tapahtua. Tietokannoilla on kuitenkin jokaisella jokin oma kieli, jolla kyselyitä voi tehdä. Tämä saattaa mahdollistaa injektiohyökkäyksen. Mahdolliset injektion torjuntamekanismit ovat yksi tutkittava kohde.

Myös tietokantojen oletusasetukset ovat tutkimisen aiheena. Turvalliset oletusasetukset vähentävät tietoturvaongelmia.

MongoDB?

MongoDB? on avoimen lähdekoodin dokumenttipohjainen tietokanta, joka on julkaistu GNU AGPLv3 lisenssillä. Myös kaupallinen lisenssi on saatavilla. MongoDB?:tä kehittää MongoDB? Inc. Ensimmäinen julkinen julkaisu tapahtui 2009. Vuonna 2010 julkaistu versio 1.4 oli ensimmäinen, jota pidettiin tuotantokäyttöön sopivana [2]. Esimerkkejä MongoDB?:tä käyttävistä sivuista ovat eBay, SourceForge? ja The New York Times. [3][4][5]

Apache Cassandra

Apache Cassandra on avoimen lähdekoodin sarakepohjainen tietokanta, joka on julkaistu Apache License 2.0 lisenssillä. Apache Cassandran ensimmäinen julkaisu tapahtui 2008. Cassandraa kehittää Apache Software Foundation ja
DataStax. Apache Cassandra on alunperin Facebookin kehittämä tietokanta. Facebook on kuitenkin myöhemmin korvannut Cassandran Apache HBase tietokannalla. Tunnettuja sivustoja, jotka käyttävät Cassandraa ovat Netflix, Reddit ja Twitter. [6]

Neo4J?

Neo4j on graafitietokanta, jonka on kehittänyt Neo Technology. Neo4j on saatavilla sekä avoimena lähdekoodina GPLv3 lisenssillä että kaupallisella
lisensillä. Huomattavana erona muihin tässä käsiteltyihin NoSQL?-tietokantoihin Neo4j tukee ACID-ominaisuuksia. [7]

Päätelmät / yhteenveto

Vastaukset ongelmaan tiivistetään tässä luvussa, jonka maksimipituus on sama kuin johdantoluvunkin. Tässä ei toisteta aiempia ilmaisuja eikä viitata aiempiin kohtiin. Toisaalta uusia näkökulmia ei tuoda esille, paitsi ehkä mainintoja siitä, miten työtä voisi jatkaa: syvemmälle tai laajemmalle. Lukija voi lukea vain johdannon ja päätelmät. Päätelmäluku on hyvä, jos lukija tällöin haluaakin lukea, mitä välissä on.

Lähteet

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Valmisteilla
Tyyppi Ydin
Luokitus Toimet
Mitä Useita
Miltä Useita
Missä Järjestelmä
Kuka Tite-ammattilainen
Milloin Ennakolta
Miksi Hyvä tapa
Print version |  PDF  | History: r4 < r3 < r2 < r1 | 
Topic revision: r1 - 31 Oct 2013 - 23:16:46 - MikaMaeenpaeae?
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback