©2019 kratt@mkm.ee

Kratt X-tee andmevahetuse anomaaliate tuvastamiseks

X-tee versioonis 6 salvestatakse liikmete serveritesse detailsed logid igast andmevahetuse episoodist. Need logid kogutakse kokku Riigi Infosüsteemi Ameti (RIA) poolt, moodustades alusandmestiku, mis võimaldab analüüsida X-tee andmeliikluse mustreid.

 

Analüüsimoodulis toimub X-tee andmeliikluse potentsiaalsete anomaaliate ja väärkasutuste intsidentide tuvastamine, mille peamised tüübid on ebaõnnestunud päringute suur osakaal, oluline päringute arvu, kestvuse või andmemahu kasv või kahanemine etteantud ajaraamistikus. Analüüsimooduli andmemudelid kohanduvad leidma anomaalseid mustreid vastavalt X-tee teenusehaldurite ja administraatorite tagasisidele mudelite poolt leitud potentsiaalsetele intsidentidele.

 

Kratil põhinev lahendus

 

Kratil põhinev lahendus koosneb logiandmete kogujast (Collector), nende salvestamisest ja eeltöötlemisest keskses logibaasis (MongoDB), masinõppe-moodulist X-tee päringute mustri moodustamiseks (train_or_update_historic_averages_models) ning uutest logikirjetest anomaaliate tuvastamiseks (mittevastavused mustrile, find_anomalies). Lahendus sisaldab ka X-tee teenusehalduritele ja administraatoritele mõeldud veebiliidest mudeli kohandamiseks.

 

Masinõppe moodul X-tee päringute mustri moodustamiseks leiab kolme kuu jooksul iga nädala iga kuu iga andmevahetuspaari kohta tunnused päringute keskmise arvu, kestuse, päringute ja vastuste suuruste kohta (AveragesByTimeperiodModel).

 

Süsteemi tuum, mis püüab uutest logikirjetest tuvastada anomaaliaid, teeb seda nelja peamise mudeli alusel:

- ebaõnnestunud päringute osakaal (FailedRequestRatioModel);

- korduvate identifikaatoritega kirjete osakaal (DuplicateMessageIdModel);

- võimalik turvaserveri(te) kellaaegade ebaõigsuse (sünkroniseerimatus) vihje (TimeSyncModel);

- andmevahetust iseloomustavate väärtuste erinevus varasema ajaloo keskmistatud väärtustest (AveragesByTimeperiodModel)

 

Lahenduse täpsem kirjeldus on avaldatud Githubis, selle taustatööde selgitus aga täpsemalt siin >> (mõlemad inglise keeles)

 

Projektis kasutatud tarkvaratehnoloogiad: Python, MongoDB, Django, Apache HTTP server.


Tulemus
 

Tulemus on rakendatud vaid osaliselt (2019 2.kvartal seisuga). Peamised takistused täielikuks rakendamiseks on:

- analüüsitavate andmete osalisus. Mitte kõikide liikmete X-tee turvaserveritest ei ole logisid võimalik koguda, seetõttu jäävad andmed "poolikuteks" ning avalduvad anomaaliatena, mis tegelikult ei ole anomaaliad (vale-positiivsed tulemused). Seetõttu tegelevad X-tee teenusehaldurid ja administraatorid andmeanalüüsi asemel sellega, et toetada liikmeid nende turvaserverite paigaldamisel ning seadistamisel ning monitoorimiseks kättesaadavaks tegemisel;

- analüüsitulemuste hilisus. Tulenevalt logide kogumise võimalikkusest ja loogikast saab lõplikud andmevahetuse logid kokku 7-10 päeva jooksul. Seetõttu on võimalik ka analüüsiga alustada alles peale seda. Tulemuse selgumisel ei pruugi sellega enam midagi mõistlikku ette võtta. Protsessi kiirendamiseks on plaanis lühendada logide kogumis-tsüklit ning osa-analüüs viia läbi koheselt logide saamisel;

- analüüsitulemuste hilisus. Analüüsitavate andmete suur maht (~200 miljonit kirjet kuus), mistõttu igakordne analüüs võtab liiga kaua (tundides) ning tulemuse selgumisel ei pruugi sellega enam midagi mõistlikku ette võtta. Seetõttu tegelevad X-tee teenusehaldurid ja administraatorid ennetava andmeanalüüsi asemel juhtumipõhise järeltöötlusega. Protsessi kiirendamiseks on plaanis logiandmete baas partitsioneerida, luua täiendavad anomaaliate analüüsiks vajalikud indeksid ning lisada arvutusressurssi;

- X-tee andmeliikluses liikmete poolt korduvate identifikaatorite kasutamine, mistõttu ei ole võimalik tõsikindlalt eristada korduvusi. Vastava identifikaatori loomine peab protokolli kohaselt olema liikme pioolt genereeritud kui UUID (unikaalne) kuid osutus, et pole seda. Plaanis on unikaalsete identifikaatorite genereerimine turvaserveri tasemel ning mitte arvestada liikmete endi poolt täidetud identifikaatori välja;

- X-tee andmeliikluse "ebaühtlus". Valitud metoodika tuvastada iga nädala iga tunni iga andmevahetuse paari sageduse, suuruse ja kestuse näitajate põhjal anomaaliaid osutus liialt hüplikuks, süsteem leiab liiga palju potentsiaalseid anomaaliaid, millede kohta ei ole X-tee teenusehalduritel ja administraatoritel infot tagasiside andmiseks ning mudeli kohandamiseks. Mõne andmevahetuse liikme äriloogika ongi üles ehitatud suure hulga andmete "läbikammimisele", kus ka ebaõnnestunud päringu puhul tehakse äriline järeldus. Plaanis on X-tee veateadete eristamine sisulisteks ja tehnilisteks. Plaanis on metoodika rakendamine üle vaadata, keskenduda vaid tehnilistele veateadetele ning suurema mõjuga anomaaliate tuvastamisele ning liikmetele tagasiside andmisele;

- X-tee andmevahetuse osapoolte, asutuste poolt RIAle edastatud kontaktide puudulikkus ning leigus X-teel tegelikult toimuva suhtes. Kontaktisikud vahetuvad, asutused ei teavita sellest RIAt. Kontaktisikud kasutavad oma infosüsteemi vajadusepõhiselt ning "musta kasti" põhimõttel, omamata teadmist selle kohta, mis, miks ja kus täpsemalt toimub. Seetõttu ei ole neil ka selgitusi tuvastatud anomaaliate kohta ning ei oska anda tagasisidedmudeli kohandamiseks. Kontaktisikute andmete kvaliteedi parandamiseks viiakse X-tee alamsüsteemide kontaktid RIHAst üles uude X-tee iseteeninduskeskkonda (plaan 2019 lõpp) ning plaanitakse kuvada asutuse kohta anomaaliad ning küsida tagasisidet selle kaudu (2020).

 

Teostaja

 

X-tee v6 andmevahetuse anomaaliate tuvastamise lahenduse ning sellele eelneva andmekorje ja andmeparanduse realiseeris STACC OÜ. STACC (Software Technology and Applications Competence Center) on Eesti juhtiv andmeteaduse kompetentsikeskus, mis loodi 2009. aastal kahe suurema ülikooli ja juhtivate tarkvarafirmade koostöös. Ettevõtte fookuses on andmeanalüütika ja tehisintellekti tehnoloogiate väljatöötamine ja rakendusuuringud.