Þessi síða notar kökur (e. cookies) til að auðvelda þér að vafra um vefinn.

Öryggi gagna og gagnagrunna í nútíma upplýsingakerfum á krossgötum.

rb513Tækniumhverfi gagnagrunna í nútímasamfélagi hefur tekið miklum breytingum og ef bara er litið til síðustu áratuga þá er breytingin geysileg. Gagnagrunnar eru í eðli sínu tölvukerfi sem vinna með, framreiða og geyma margvísleg gögn sem önnur tölvukerfi nútímans taka við af okkur sem neytendum. Sömuleiðis skila gagnagrunnar beint eða í gegnum önnur tölvukerfi til okkar gögnum eða til annarra kerfa sem þurfa í eðli sínu að fá gögn til að sinna þeirri þjónustu sem þau eru hönnuð til að veita.

Þróun gagnagrunna og forritunarmála

Þróun gagnagrunna hefur á undarnförnum áratugum tekið umtalsvert stökk. Afkastageta þeirra hefur margfaldast og viðhald og annað utanumhald orðið betra samhliða auknu flækjustigi. Einnig hafa nýjungar og fjölbreyttar gagnagrunns-útfærslur litið dagsins ljós. Þessar nýjungar og gagngrunnsútfærslur lýsa sér meðal annars í fjölbreyttum gagnalíkönum. En gagnalíkön lýsa strúktúr og venslum gagna sem og meðferð þeirra og hvernig reglum um áreiðanleika gagnanna er háttað.

Samhliða þessari þróun gagnagrunna hefur þróun í forritunarmálum sömuleiðis tekið stökk og margvísleg ný forritunarmál litið dagsins ljós og þróun gamalgróinna forritunarmála fleygt fram. Að sama skapi hefur samtengingum forritunarmálanna við gagnagrunna fleygt fram og komnar fram ýmsar nytsamlegar og nýstárlegar leiðir fyrir forritunarmálin til að eiga samskipti við gagnagrunna. Hefðbundnar leiðir eins og  JDBC, ADO.Net, ODBC og “native” API tengingar og nýstárlegar leiðir eins og REST þjónustur.

Eins hafa nýjar leiðir og endurbætur í hugbúnaðargerð bæst við til að koma nýjum tölvukerfum og/eða breytingum á tölvukerfum sem fyrst á markað. Má þar nefna Agile, Scrum og DevOps sem eru góðar og gildar nútíma aðferðir í hugbúnaðargerð og hafa sýnt það að þær geta haft góð áhrif á, og eru góð viðbót við þau framleiðsluferli sem tíðkast í hugbúnaðargerð í dag. 

Öryggi gagna í gagnagrunnum

En eitt er það, sem hefur vakið athygli mína undanfarin ár og er tilefni til þessara skrifa. Það er sú staðreynd að öryggi gagna og gagnagrunna hefur dalað í framhaldi af þessari hröðu hugbúnaðargerð sem á sér stað víða um heim og er Ísland ekki nein undantekning hvað þetta varðar. Það sést best með því að horfa til allra smárra og stórra gagnaleka sem hafa orðið undanfarin ár þar sem allt að tugir og jafnvel hundruð milljarða af færslum hafa lekið til aðila sem nýta sér gögnin í annarlegum og allt öðrum tilgangi en kerfin sem hýstu þau eru hönnuð til.

Það er gríðarlega mikilvægt að huga vel að því hvernig fyrirspurnir og innsending gagna og gagnabreytinga eru hjúpaðar, formaðar og prófaðar (e. validation) og sendar inní gagnagrunnana sem og hvernig gögnunum er skilað til baka til notenda eða annarra kerfa. Eitt þekktasta dæmið um árás á gagnagrunna er SQL-innspýting (e. SQL-injection) þar sem hakkari bætir inní SQL-fyrirspurn og eða innsláttar-textasvæði, sínum SQL-skipunum og nær þannig að komast inní gagnagrunninn. Það er alltof algengt að forritarar átti sig ekki á að nýta þá einföldu tækni sem kemur í veg fyrir slíkar árásir. SQL innspýting er í dag í fyrsta sæti skv. TOP 10 lista OWASP yfir ógnir sem steðja að tölvukerfum og gagnagrunnum.

Hjúpun og önnur verndun SQL-fyrirspurna og innsendinga gagna í kóða, sem og notkun á gagnagrunns-stefjum (e. stored procedures) ásamt góðri og ítarlegri sannreyningu gagna (e. data-validation) fyrir innsendingu inní grunna, skiptir sköpum í þeirri baráttu en það vill oft brenna við að hugbúnaðarlausnir skorti slíka nálgun í hönnun. Það er sérstaklega áberandi í vefkerfum þar sem SQL kóði er berskjaldaður fyrir hökkurum og sýnilegur í vafra með því einu að opna sýn á kóða síðunnar.

Open Web Application Security Project (www.OWASP.org) hefur í mörg ár haldið úti lista yfir topp tíu öryggis ógnir í kerfum  ( OWASP Top Ten - https://owasp.org/www-project-top-ten/)  þar sem SQL innspýting (SQL injection) og önnur kóða innspýting er í efsta sæti fjórða árið í röð (2020 ) og stefnir í að árið í ár (2021) verði það fimmta í röð.

Í hraðri hugbúnaðargerð þar sem “Time to Market” þarf að vera sem stystur og í þeim hugbúnaðar-ferlum sem styðja slíkt þarf að gera ráð fyrir ítarlegri rýni í þarfagreiningu og hönnun ásamt ítarlegum prófunum þar sem bestu aðferðum (e “best practices”) er beitt til að sporna við “malicious code” og/eða SQL innspýtingu. Ein prófunaraðferðin sem væri vert að skoða að setja inn í hugbúnaðarferlið er “ethical hacking”aðferðir og verkfæri til að sannreyna að ekki sé hægt að beita innspýtingu á kerfin sem verið er að framleiða. Að öðrum kosti mun SQL innspýting verma fyrsta sæti á Top10 lista OWASP  næstu árin eða áratuginn.

Sömuleiðis er gríðarlega mikilvægt að viðkvæm gögn séu dulkóðuð frá afhendingu og ofan í gagnagrunn og að tengingar milli notendakerfa og gagnagrunna séu dulkóðaðar til að sporna gegn því að milliliður geti með annars auðveldum hætti hlerað samskiptin, beitt SQL injection og þannig nálgast viðkvæm gögnin án þess að nokkur verði þess var.

Öryggi gagna og persónuvernd

Fyrir um það bil þremur árum tók gildi reglugerð ESB sem nefnist GDPR í daglegu tali, sem eykur kröfur um verndun persónuupplýsinga. Leiða má líkur að því að þessi reglugerð hafi að hluta til orðið til vegna allra þessara gagnaleka síðustu ára. Þessi nýju persónuverndarlög og reglugerð heimila að hægt sé að leggja á svimandi háar sektir ef fyrirtæki verða m.a. uppvís að því að gera ekkert til að vernda þau gögn sem þau vinna með dags daglega. Kostnaður fyrirtækja við að aðlaga sína hugbúnaðarferla og bæta inn fyrirbyggjandi aðferðum við að koma í veg fyrir kóða- eða SQL-innspýtingu í hugbúnaðinn sem þau framleiða, er aðeins brotabrot af þeirri sekt sem fyrirtækið fengi verði það fyrir gagnaleka samkvæmt GDPR reglugerðinni.

Lokaorð

Ég hef áður vakið athygli á þessu með grein í Tölvumálum í október 2017. En í nóvember það sama ár gaf Yahoo út að þeir hefðu orðið fyrir því að 3 milljarðar færslna, sem innihéldu aðgangs-upplýsingar notenda láku út í ágúst 2013 (áður hafði Yahoo lýst því yfir að aðeins 1 milljarður færslna hafi lekið).

Nú hartnær fjórum árum seinna er, eins og fjallað hefur verið um, staðan óbreytt og líklegt að þetta verði eins næstu árin ef ekkert er að gert.

Finna má á netinu þó nokkra lista yfir alla þá gagnaleka sem hafa orðið síðustu ár til dagsins í dag og ljóst af þeim listum að gagnalekum fer fjölgandi ár frá ári og æ stærri gagnalekar munu líta dagsins ljós í ljósi þess að gagnamagnið eykst með veldisvexti á hverjum degi.

Mörg af þessum kerfum, sem orðið hafa fyrir þessum gagnalekum, eiga það sameiginlegt að nýta nýjustu tækni og aðferðir og það sem er athyglisverðast er að öll hafa orðið fyrir barðinu á einhverskonar innspýtingu, kóða- eða SQL-innspýtingu. Og af þessum listum að dæma, þá er talsverðrar bragarbótar þörf í þessum efnum.

Ég er í hópi tölvunarfræðinga og gagnagrunns-sérfræðinga sem tekið hafa höndum saman um að sporna gegn þessari þróun og vekja athygli á bestu aðferðum til þess að hindra gagnaleka. Það er von okkar að það takist að snúa þessari þróun í rétta átt.

Höfundur: Tómas Helgi Jóhannsson - RB Gagnagrunnsstjóri