Ógnir gagnagrunna í netvæddum viðskiptum nútímasamfélags - Hugvekja gagnagrunns sérfræðings
Tækniumhverfi í nútímasamfélagi hefur tekið miklum breytingum og ef bara er litið til síðustu áratuga þá er breytingin geysileg. Í augum margra, sérstaklega af eldri kynslóðinni, er hún í senn ógnvekjandi og yfirþyrmandi en einnig spennandi. Sem betur fer taka langflestir þessum tækniframförum fagnandi og bókstaflega gleypa tæknina í sig. Dæmi um nýjungar sem í dag þykja orðið sjálfsagðar eru að versla á Internetinu sem og að eiga bankaviðskipti við sinn viðskiptabanka á þeim vettvangi. Þessi viðskipti hafa síðan teygt anga sína í farsímana með tilheyrandi „þægindum“ fyrir alla.
En að baki allra vefverslanakerfa, netbanka og smá-forrita (e. apps), sem tengjast verslun eða banka, er einhver gagnagrunnur. Gagnagrunnur sem heldur utan um öll viðskipti einstaklinga við viðkomandi verslun eða banka. Þessar upplýsingar eru persónugreinanlegar og því afar viðkvæmar og lúta því persónuverndarlögum og bankaleynd þar sem það á við.
Þróun gagnagrunna og forritunarmála undanfarna áratugi
Gagnagrunnar hafa undanfarinn áratug tekið gríðarlegt stökk í þróun, afkastageta þeirra hefur margfaldast sem og viðhald og annað utanumhald orðið betra samhliða auknu flækjustigi. Þetta hefur orðið til þess að margvíslegir möguleikar í forritun með SQL fyrirspurnamálinu hafa litið dagsins ljós. M.a. eru möguleikar á að varpa gögnum úr einu formi í annað, áður en gögnunum er skilað til forrits, mun fjölbreyttari í dag en áður. Það sem er nýjast og heitast í dag er vörpun úr töfluformi (e. relational) yfir í JSON (e. Javascript Object Notation) til að geta flutt gögn yfir í snjallsíma með auðveldum og hraðvirkum hætti. En þessar framfarir hafa líka orðið til þess að það, að skrifa SQL fyrirspurn og/eða gagnagrunns-forrit (gagnagrunns-pakka) er mun vandmeðfarnara en áður.
Eins hefur þróun margra forritunarmála eins og Java, JavaScript, PHP, Ruby, ASP.Net, Python, C og C++ (að ógleymdum öðrum forritunarmálum sem ekki verða talin upp hér) einnig orðið gríðarleg fyrir forritun vef-, bakvinnslu- og smá-forrita og mögulegur stuðningur við ótal mismunandi gagnagrunna aukist frá því sem áður var. Samfara þessum framförum, sem nefndar eru hér að framan, og með tilkomu vefverslanakerfa, netbanka, banka- og verslunarforrita fyrir farsíma (e. mobile apps) hafa kröfur um hraðvirkar SQL-fyrirspurnir sem og aðra gagnavinnslu fengið aukið vægi. Framleiðendur gagnagrunna hafa, að sama skapi, verið duglegir að koma fram með nýjungar er styrkja það sem glímt er við enn frekar. Sú þróun hefur oft í för með sér að flóknar beinlínu- og/eða Internet-tengdar (e. online ) SQL-fyrirspurnir sem geta tekið einhverjar sekúndur með eldri SQL-rithætti detta undir sekúndu í keyrslu með nýrri SQL-rithætti og bakvinnslur í gagnagrunnum sem áður tóku mínútur uppí margar klukkustundir geta hæglega dottið niður í fáeinar sekúndur.
Hverjar eru þá helstu ógnir gagnagrunna?
Segja má að ein stærsta ógn gagnagrunna í dag sé sú að forritarar nýti ekki til fulls þær nýjungar, sem framleiðendur gagnagrunna bjóða upp á og/eða hafa komið með undanfarinn áratug, sem myndu bæta afköst kerfanna. Forritarar þurfa að vera vel vakandi fyrir nýjungum í gagnagrunnum til að skapa hugbúnaðarlausnum sínum framgang í ört vaxandi samkeppni um hraðvirkari lausnir á þeim fjölmörgu vandamálum sem glímt er við. Ég hef orðið þess áskynja í mínu fagi sem gagnagrunns- og hugbúnaðarsérfræðingur vegna aðstoðar sem ég veiti í gegnum fagvefi að kollegar hér heima og erlendis fara oft á mis við nýjungar sem í boði eru í þeim gagnagrunnum sem þeir eru að vinna á móti og eru þeir oftast þakklátir fyrir ábendingar. Lausnir þessar hafa skilað því að kerfin vinna allt að 98 prósent hraðar og og af meiri skilvirkni en þær gerðu áður.
Auðvitað skiptir val á vélbúnaði einhverju máli þar sem gagnagrunnar þurfa bæði afl og vinnsluminni. Vélbúnað þarf einnig að endurnýja reglulega og í sumum tilfellum getur það reynst nauðsyn. Val á vélbúnaði ætti þó að taka mið af því um hverskonar vinnuálag (e. workload) og gagnamagn er að ræða. Hitt er annað að rannsóknir hafa sýnt að 80 prósent af afkastavandamálum kerfa, sem nýta sér gagnagrunn, liggur í rangri kóðun á SQL fyrirspurnum miðað við þá útgáfu af gagnagrunni sem unnið er með hverju sinni. Þannig að hvort sem menn velja nýja stórtölvu, stóra, miðlungs eða litla miðlara (e. servers ) þá er hagkvæmt að ráðast á þungar SQL-fyrirspurnir, töflustrúktúr og aðra gagnagrunnshögun og innleiða þær nýjungar sem í boði eru. Ein lausn sem ég lagði til á einum fagvefnum sparaði, eða öllu heldur seinkaði, kaupum erlends fyrirtækis á nýjum miðlara af miðstærð undir gagnagrunn.
Önnur ógn sem er nátengd ógninni sem lýst var hér að framan er öryggi gagnanna. Gríðarlega mikilvægt er að huga vel að því hvernig fyrirspurnir og innsending gagna og gagnabreytinga eru formaðar og prófaðar (e. validation) og sendar inní gagnagrunnana sem og hvernig gögnunum er skilað til baka til vefsins eða forritsins. 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 (árið 2017 ) í fyrsta sæti skv. TOP 10 lista OWASP (www.owasp.org ) yfir ógnir sem steðja að tölvukerfum og gagnagrunnum.
SQL innspýting
Og því miður hafa margir stærstu gagnalekar (e. data breaches) útí heimi undanfarin ár, þar sem persónugreinanlegar upplýsingar og kreditkorta-upplýsingar hafa komist í hendur glæpagengja, einmitt notast við SQL-innspýtingu. Hjúpun SQL-fyrirspurna og innsendinga gagna í kóða, sem og notkun á gagnagrunns-stefjum (e. stored procedures) ásamt góðri og ítarlegri prófun (e. validation) gagna fyrir innsendingu, skiptir sköpum í þeirri baráttu en það vill brenna oft 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.
Lokaorð
Með þróun forritunarmála og gagnagrunna skapast gríðarleg fjölbreytni í hugbúnaðarlausnum fyrir vefi, bakvinnslukerfi sem og smá-forrita. Þessari fjölbreytni ber að fagna en að sama skapi þarf að vega og meta hverju sinni með ítarlegum prófunum hvort þessi eða hin lausnin henti þeim vandamálum sem glímt er við, m.t.t. öryggis gagna og afkastagetu og eins samanburði við gömlu lausnina.
Hugbúnaðarþróun er langhlaup og eins og í langhlaupi þá krefst hugbúnaðarþróun agaðrar, vel skipulagðrar og markvissrar þjálfunar. Þjálfun og endurmenntun í hugbúnaðargerð og gagnagrunns-forritun/hönnun, í ört vaxandi tækniframförum samtímans krefst mikillar athygli hugbúnaðar-sérfræðings á þeim framförum sem verða til þess að hann/hún geti skapað sínum lausnum framgang í ört vaxandi samkeppni um betri, öruggari og hraðvirkari lausnir.
Höfundur: Tómas Helgi Jóhannsson, gagnagrunnsstjóri hjá RB
Skil á efni
Leita í vefútgáfu Tölvumála
Um Tölvumál
Tölvumál - tímarit Skýrslutæknifélags Íslands er óháð tímarit um tölvutækni og hefur verið gefið út frá árinu 1976.
Vefútgáfa Tölvumála birtir vikulega nýja grein á vef Ský og árlega er gefið út veglegt prentað tímarit undir nafninu "Tölvumál" þar sem fjallað er um tölvutækni frá ýmsum sjónarhornum og er þema blaðsins jafnan valið snemma árs og útgáfa að hausti.
Ritnefnd Ský sér um að afla efni í Tölvumál og geta allir sem áhuga hafa sent inn efni.