Ռուսաստանում Splunk անտառահատումների և վերլուծական համակարգի վաճառքի ավարտի կապակցությամբ հարց առաջացավ. ինչո՞վ կարող է փոխարինել այս լուծումը: Տարբեր լուծումների հետ ծանոթանալու ժամանակ անցկացնելուց հետո ես որոշեցի իրական տղամարդու լուծումը. «ELK stack». Այս համակարգի տեղադրումը ժամանակ է պահանջում, բայց արդյունքում դուք կարող եք ստանալ շատ հզոր համակարգ՝ վերլուծելու կարգավիճակը և օպերատիվ արձագանքելու կազմակերպությունում տեղեկատվական անվտանգության միջադեպերին: Այս հոդվածաշարում մենք կդիտարկենք ELK stack-ի հիմնական (կամ գուցե ոչ) հնարավորությունները, կքննարկենք, թե ինչպես կարող եք վերլուծել տեղեկամատյանները, ինչպես կառուցել գրաֆիկներ և վահանակներ, և ինչ հետաքրքիր գործառույթներ կարելի է անել՝ օգտագործելով տեղեկամատյանների օրինակը: Check Point firewall-ը կամ OpenVas անվտանգության սկաները: Սկզբից եկեք տեսնենք, թե ինչ է դա՝ ELK stack-ը և ինչ բաղադրիչներից է այն բաղկացած:
«ELK stack» երեք բաց կոդով նախագծերի հապավումն է՝ Elasticsearch- ը, Լոգստաշը и Կիբանա. Մշակված է Elastic-ի կողմից բոլոր հարակից նախագծերի հետ միասին: Elasticsearch-ը ամբողջ համակարգի առանցքն է, որը համատեղում է տվյալների բազայի, որոնման և վերլուծական համակարգի գործառույթները: Logstash-ը սերվերի կողմից տվյալների մշակման խողովակաշար է, որը միաժամանակ ստանում է տվյալներ բազմաթիվ աղբյուրներից, վերլուծում է տեղեկամատյանը և այնուհետև ուղարկում այն Elasticsearch տվյալների բազա: Kibana-ն թույլ է տալիս օգտվողներին պատկերացնել տվյալները Elasticsearch-ում գծապատկերների և գծապատկերների միջոցով: Դուք կարող եք նաև կառավարել տվյալների բազան Kibana-ի միջոցով: Հաջորդը, մենք ավելի մանրամասն կքննարկենք յուրաքանչյուր համակարգ առանձին:
Լոգստաշը
Logstash-ը տարբեր աղբյուրներից տեղեկամատյանների իրադարձությունների մշակման ծրագիր է, որի միջոցով կարող եք ընտրել դաշտերը և դրանց արժեքները հաղորդագրության մեջ, ինչպես նաև կարող եք կարգավորել տվյալների զտումն ու խմբագրումը: Բոլոր մանիպուլյացիաներից հետո Logstash-ը վերահղում է իրադարձությունները դեպի վերջնական տվյալների պահեստ: Կոմունալը կազմաձևվում է միայն կազմաձևման ֆայլերի միջոցով:
Տիպիկ logstash կոնֆիգուրացիան ֆայլ(ներ) է, որը բաղկացած է տեղեկատվության մի քանի մուտքային հոսքերից (մուտքագրում), այս տեղեկատվության մի քանի զտիչներից (ֆիլտր) և մի քանի ելքային հոսքերից (ելք): Կարծես մեկ կամ մի քանի կազմաձևման ֆայլեր, որոնք ամենապարզ տարբերակում (որն ընդհանրապես ոչինչ չի անում) ունի հետևյալ տեսքը.
input {
}
filter {
}
output {
}
INPUT-ում մենք կարգավորում ենք, թե որ պորտին կուղարկվեն տեղեկամատյանները և որ արձանագրության միջոցով, կամ որ թղթապանակից կարդալ նոր կամ անընդհատ թարմացվող ֆայլերը: FILTER-ում մենք կարգավորում ենք տեղեկամատյանների վերլուծիչը՝ վերլուծելով դաշտերը, խմբագրելով արժեքները, ավելացնելով նոր պարամետրեր կամ ջնջելով դրանք: FILTER-ը Logstash հաղորդագրությունը կառավարելու դաշտ է՝ խմբագրման բազմաթիվ տարբերակներով: Ելքում մենք կարգավորում ենք, թե որտեղ ենք ուղարկում արդեն վերլուծված տեղեկամատյանը, եթե դա elasticsearch է, ուղարկվում է JSON հարցում, որտեղ արժեքներով դաշտերն են ուղարկվում, կամ որպես վրիպազերծման մաս, այն կարող է դուրս գալ stdout կամ գրվել ֆայլում:
Էլաստիկ որոնում
Սկզբում Elasticsearch-ը լուծում է ամբողջական տեքստի որոնման համար, բայց լրացուցիչ հարմարություններով, ինչպիսիք են հեշտ մասշտաբը, կրկնօրինակումը և այլ բաներ, որոնք արտադրանքը դարձրեցին շատ հարմար և լավ լուծում մեծ քանակությամբ տվյալների մեծ ծավալով նախագծերի համար: Elasticsearch-ը ոչ հարաբերական (NoSQL) JSON փաստաթղթերի պահեստավորում և որոնման համակարգ է՝ հիմնված Lucene ամբողջական տեքստի որոնման վրա: Սարքավորման հարթակը Java վիրտուալ մեքենան է, ուստի համակարգը գործելու համար պահանջում է մեծ քանակությամբ պրոցեսոր և RAM ռեսուրսներ:
Յուրաքանչյուր մուտքային հաղորդագրություն, կա՛մ Logstash-ով, կա՛մ հարցման API-ի միջոցով, ինդեքսավորվում է որպես «փաստաթուղթ»՝ հարաբերական SQL-ի աղյուսակի նման: Բոլոր փաստաթղթերը պահվում են ինդեքսի մեջ՝ տվյալների բազայի անալոգը SQL-ում:
Տվյալների բազայում փաստաթղթի օրինակ.
{
"_index": "checkpoint-2019.10.10",
"_type": "_doc",
"_id": "yvNZcWwBygXz5W1aycBy",
"_version": 1,
"_score": null,
"_source": {
"layer_uuid": [
"dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
"dbee3718-cf2f-4de0-8681-529cb75be9a6"
],
"outzone": "External",
"layer_name": [
"TSS-Standard Security",
"TSS-Standard Application"
],
"time": "1565269565",
"dst": "103.5.198.210",
"parent_rule": "0",
"host": "10.10.10.250",
"ifname": "eth6",
]
}
Տվյալների բազայի հետ ամբողջ աշխատանքը հիմնված է JSON հարցումների վրա՝ օգտագործելով REST API, որը կամ փաստաթղթեր է արտադրում ըստ ինդեքսների կամ որոշ վիճակագրություն՝ հարց-պատասխան ձևաչափով: Հարցումների բոլոր պատասխանները պատկերացնելու համար գրվել է Kibana, որը վեբ ծառայություն է։
Կիբանա
Kibana-ն թույլ է տալիս որոնել, առբերել տվյալներ և հարցումների վիճակագրություն elasticsearch տվյալների բազայից, սակայն շատ գեղեցիկ գրաֆիկներ և վահանակներ կառուցված են պատասխանների հիման վրա: Համակարգն ունի նաև elasticsearch տվյալների բազայի կառավարման գործառույթ, հաջորդ հոդվածներում մենք ավելի մանրամասն կանդրադառնանք այս ծառայությանը: Հիմա եկեք ցույց տանք Check Point firewall-ի և OpenVas խոցելիության սկաների օրինակ, որը կարելի է կառուցել:
Check Point-ի վահանակի օրինակ, նկարը կարելի է սեղմել.
OpenVas-ի վահանակի օրինակ, նկարը կարելի է սեղմել.
Ամփոփում
Մենք նայեցինք, թե ինչից է այն բաղկացած ELK բուրգ, մենք մի փոքր ծանոթացանք հիմնական արտադրանքներին, հետագայում դասընթացի ընթացքում մենք առանձին կքննարկենք Logstash կոնֆիգուրացիայի ֆայլ գրելը, Kibana-ում վահանակների տեղադրումը, API հարցումներին ծանոթանալը, ավտոմատացումը և շատ ավելին:
Ուրեմն մնացեք լարված
Source: www.habr.com