Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

Այս հոդվածը Sysmon սպառնալիքների վերլուծության շարքի առաջին մասն է: Շարքի մնացած բոլոր մասերը.

Մաս 1. Ներածություն Sysmon Log-ի վերլուծությանը (մենք այստեղ ենք)
Մաս 2. Sysmon իրադարձությունների տվյալների օգտագործումը սպառնալիքները բացահայտելու համար
Մաս 3. Sysmon սպառնալիքների խորը վերլուծություն գրաֆիկների միջոցով

Եթե ​​դուք աշխատում եք տեղեկատվական անվտանգության ոլորտում, հավանաբար հաճախ պետք է հասկանաք շարունակվող հարձակումները: Եթե ​​դուք արդեն ունեք մարզված աչք, կարող եք ոչ ստանդարտ գործունեություն փնտրել «հում» չմշակված տեղեկամատյաններում, օրինակ՝ աշխատող PowerShell սկրիպտը: DownloadString հրամանով կամ VBS սկրիպտ, որը ձևացնում է, որ Word ֆայլ է. պարզապես պտտվում է Windows-ի իրադարձությունների մատյանում վերջին գործողությունների միջով: Բայց սա իսկապես մեծ գլխացավանք է։ Բարեբախտաբար, Microsoft-ը ստեղծեց Sysmon-ը, որը շատ ավելի հեշտ է դարձնում հարձակման վերլուծությունը:

Ցանկանու՞մ եք հասկանալ Sysmon-ի մատյանում ցուցադրվող սպառնալիքների հիմքում ընկած հիմնական գաղափարները: Ներբեռնեք մեր ուղեցույցը WMI իրադարձությունները որպես լրտեսության միջոց և դու հասկանում ես, թե ինչպես են ինսայդերները կարող գաղտնի կերպով դիտարկել մյուս աշխատակիցներին: Windows-ի իրադարձությունների մատյանի հետ աշխատելու հիմնական խնդիրը ծնող գործընթացների մասին տեղեկատվության բացակայությունն է, այսինքն. դրանից անհնար է հասկանալ գործընթացների հիերարխիան։ Մյուս կողմից, Sysmon գրանցամատյանի գրառումները պարունակում են ծնող գործընթացի ID-ն, նրա անունը և գործարկվող հրամանի տողը: Շնորհակալություն, Microsoft:

Մեր շարքի առաջին մասում մենք կանդրադառնանք, թե ինչ կարող եք անել Sysmon-ի հիմնական տեղեկատվության հետ: XNUMX-րդ մասում մենք լիովին կօգտվենք մայր գործընթացի տեղեկատվությունից՝ ստեղծելու ավելի բարդ համապատասխանության կառուցվածքներ, որոնք հայտնի են որպես սպառնալիքների գրաֆիկներ: Երրորդ մասում մենք կդիտարկենք մի պարզ ալգորիթմ, որը սկանավորում է սպառնալիքի գրաֆիկը՝ անսովոր գործունեություն որոնելու համար՝ վերլուծելով գրաֆիկի «կշիռը»: Եվ վերջում, դուք կպարգևատրվեք սպառնալիքների հայտնաբերման կոկիկ (և հասկանալի) հավանականական մեթոդով:

Մաս 1. Ներածություն Sysmon Log-ի վերլուծությանը

Ի՞նչը կարող է օգնել ձեզ հասկանալ իրադարձությունների մատյանի բարդությունները: Ի վերջո - SIEM: Այն նորմալացնում է իրադարձությունները և պարզեցնում դրանց հետագա վերլուծությունը: Բայց մենք այդքան հեռուն գնալու կարիք չունենք, համենայն դեպս՝ սկզբում: Սկզբում SIEM-ի սկզբունքները հասկանալու համար բավական կլինի փորձել հրաշալի անվճար Sysmon կոմունալ ծրագիրը։ Եվ նրա հետ աշխատելը զարմանալիորեն հեշտ է: Շարունակեք այդպես, Microsoft!

Ի՞նչ առանձնահատկություններ ունի Sysmon-ը:

Մի խոսքով, գործընթացների մասին օգտակար և ընթեռնելի տեղեկատվություն (տես ստորև նկարները): Դուք կգտնեք մի շարք օգտակար մանրամասներ, որոնք չկան Windows-ի իրադարձությունների մատյանում, բայց ամենակարևորը հետևյալ դաշտերն են.

  • Գործընթացի ID (տասնորդական, ոչ վեցանկյուն!)
  • Ծնողական գործընթացի ID
  • Գործընթացի հրամանի տող
  • Ծնողական գործընթացի հրամանի տող
  • Ֆայլի պատկերի հեշ
  • Ֆայլի պատկերների անունները

Sysmon-ը տեղադրված է և՛ որպես սարքի դրայվեր, և՛ որպես ծառայություն՝ ավելի մանրամասն այստեղ Դրա հիմնական առավելությունը տեղեկամատյանները վերլուծելու ունակությունն է մի քանի աղբյուրները, տեղեկատվության հարաբերակցությունը և ստացված արժեքների ելքը մեկ իրադարձությունների տեղեկամատյանի թղթապանակին, որը գտնվում է ճանապարհի երկայնքով Microsoft -> Windows -> Sysmon -> Գործառնական. Windows-ի տեղեկամատյանների իմ սեփական ուսումնասիրությունների ընթացքում ես հայտնաբերեցի, որ ես անընդհատ ստիպված էի անցնել, ասենք, PowerShell logs պանակի և Security պանակի միջև՝ թերթելով իրադարձությունների մատյանները՝ փորձելով ինչ-որ կերպ փոխկապակցել արժեքները երկուսի միջև: . Սա երբեք հեշտ գործ չէ, և ինչպես ես հետագայում հասկացա, ավելի լավ էր անմիջապես համալրել ասպիրինով:

Sysmon-ը քվանտային թռիչք է կատարում՝ տրամադրելով օգտակար (կամ ինչպես վաճառողները սիրում են ասել՝ գործող) տեղեկատվություն՝ օգնելու հասկանալ հիմքում ընկած գործընթացները: Օրինակ, ես սկսեցի գաղտնի նիստ wmiexec, մոդելավորելով խելացի ինսայդերի շարժումը ցանցի ներսում: Ահա այն, ինչ դուք կտեսնեք Windows-ի իրադարձությունների մատյանում.

Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

Windows-ի գրանցամատյանը ցույց է տալիս որոշ տեղեկություններ գործընթացի մասին, բայց դա քիչ օգուտ ունի: Գումարած պրոցեսի ID-ները տասնվեցական ձևով???

Պրոֆեսիոնալ ՏՏ մասնագետի համար, ով հասկանում է հակերության հիմունքները, հրամանի տողը պետք է կասկածելի լինի: Օգտագործելով cmd.exe-ն այնուհետև մեկ այլ հրաման գործարկելու և ելքը տարօրինակ անունով ֆայլ վերահղելու համար ակնհայտորեն նման է մոնիտորինգի և վերահսկման ծրագրերի գործողություններին: հրաման և կառավարում (C2)Այս կերպ WMI ծառայությունների միջոցով ստեղծվում է կեղծ կեղև:
Այժմ եկեք նայենք Sysmon մուտքի համարժեքին, նկատելով, թե որքան լրացուցիչ տեղեկատվություն է այն տալիս մեզ.

Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

Sysmon-ի առանձնահատկությունները մեկ սքրինշոթում. գործընթացի մասին մանրամասն տեղեկատվություն ընթեռնելի ձևով

Դուք տեսնում եք ոչ միայն հրամանի տողը, այլև ֆայլի անունը, գործարկվող հավելվածի ուղին, այն, ինչ Windows-ը գիտի դրա մասին («Windows Command Processor»), նույնացուցիչը: ծնողական գործընթաց, հրամանի տող ծնող, որը գործարկեց cmd shell-ը, ինչպես նաև հիմնական գործընթացի իրական ֆայլի անունը: Ամեն ինչ մեկ տեղում, վերջապես!
Sysmon-ի մատյանից կարող ենք եզրակացնել, որ մեծ հավանականությամբ այս կասկածելի հրամանի տողը, որը մենք տեսանք «հում» մատյաններում, աշխատողի նորմալ աշխատանքի արդյունք չէ: Ընդհակառակը, այն ստեղծվել է C2-ի նման գործընթացով՝ wmiexec, ինչպես ես նշեցի ավելի վաղ, և ուղղակիորեն առաջացել է WMI սպասարկման գործընթացի (WmiPrvSe) կողմից: Այժմ մենք ունենք ցուցանիշ, որ հեռավոր հարձակվողը կամ ինսայդերը փորձարկում է կորպորատիվ ենթակառուցվածքը:

Ներկայացնում ենք Get-Sysmonlogs-ը

Իհարկե, շատ լավ է, երբ Sysmon-ը տեղեկամատյանները դնում է մեկ տեղում: Բայց, հավանաբար, ավելի լավ կլիներ, եթե մենք կարողանայինք մուտք գործել առանձին տեղեկամատյանների դաշտեր ծրագրավորմամբ, օրինակ՝ PowerShell հրամանների միջոցով: Այս դեպքում դուք կարող եք գրել մի փոքրիկ PowerShell սկրիպտ, որը կավտոմատացնի հնարավոր սպառնալիքների որոնումը:
Ես առաջինը չէի, որ նման միտք ունեցա։ Եվ լավ է, որ որոշ ֆորումի գրառումներում և GitHub-ում նախագծերը Արդեն բացատրվել է, թե ինչպես կարելի է օգտագործել PowerShell-ը Sysmon-ի տեղեկամատյանը վերլուծելու համար: Իմ դեպքում ես ուզում էի խուսափել յուրաքանչյուր Sysmon դաշտի համար վերլուծական սցենարի առանձին տողեր գրելուց: Այսպիսով, ես օգտագործեցի ծույլ տղամարդու սկզբունքը և կարծում եմ, որ արդյունքում ստացա մի հետաքրքիր բան:
Առաջին կարևոր կետը թիմի կարողությունն է Get-WinEvent կարդացեք Sysmon-ի տեղեկամատյանները, զտեք անհրաժեշտ իրադարձությունները և ստացեք արդյունքը PS փոփոխականին, ինչպես այստեղ.

$events = Get-WinEvent  -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}

Եթե ​​ցանկանում եք ինքներդ փորձարկել հրամանը, ցուցադրելով բովանդակությունը $events զանգվածի առաջին տարրում՝ $events[0]: Հաղորդագրություն, ելքը կարող է լինել մի շարք տեքստային տողերի՝ շատ պարզ ձևաչափով. Sysmon դաշտ, երկու կետ, այնուհետև արժեքը:

Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

Ուռա՜ Sysmon մուտքի դուրսբերում JSON պատրաստի ձևաչափով

Դուք նույնն եք մտածում, ինչ ես: Մի փոքր ավելի ջանք գործադրելով, դուք կարող եք ելքը վերածել JSON ձևաչափված տողի, այնուհետև այն ուղղակիորեն ներբեռնել PS օբյեկտի մեջ՝ օգտագործելով հզոր հրամանը: ConvertFrom-Json .
Ես կցուցադրեմ փոխակերպման PowerShell կոդը, որը շատ պարզ է, հաջորդ մասում: Առայժմ տեսնենք, թե ինչ կարող է անել իմ նոր հրամանը՝ get-sysmonlogs, որը ես տեղադրել եմ որպես PS մոդուլ։
Իրադարձությունների գրանցամատյանի անհարմար ինտերֆեյսի միջոցով Sysmon log-ի վերլուծության մեջ խորասուզվելու փոխարեն, մենք կարող ենք առանց ջանքերի որոնել աճող գործունեությունը անմիջապես PowerShell նիստից, ինչպես նաև օգտագործել PS հրամանը: որտեղ (alias – «?») որոնման արդյունքները կրճատելու համար.

Sysmon սպառնալիքների վերլուծության ուղեցույց, մաս 1

WMI-ի միջոցով գործարկված cmd պատյանների ցանկը: Էժան սպառնալիքների վերլուծություն մեր սեփական Get-Sysmonlogs թիմի հետ

Հրաշալի՜ Ես ստեղծեցի մի գործիք՝ Sysmon-ի տեղեկամատյանում հարցման համար, կարծես դա տվյալների բազա է: Մեր հոդվածում մասին IQ Նշվեց, որ այս գործառույթը կկատարի դրանում նկարագրված զովացուցիչ կոմունալ ծրագիրը, թեև պաշտոնապես դեռևս իրական SQL նման ինտերֆեյսի միջոցով: Այո, EQL էլեգանտ, բայց դրան կանդրադառնանք երրորդ մասում։

Sysmon և գրաֆիկի վերլուծություն

Եկեք նահանջենք և մտածենք այն մասին, թե ինչ ենք հենց նոր ստեղծել: Ըստ էության, մենք այժմ ունենք Windows-ի իրադարձությունների տվյալների բազա, որը հասանելի է PowerShell-ի միջոցով: Ինչպես արդեն նշեցի, գրառումների միջև կան կապեր կամ հարաբերություններ՝ ParentProcessId-ի միջոցով, այնպես որ կարելի է ձեռք բերել գործընթացների ամբողջական հիերարխիա:

Եթե ​​կարդացել եք շարքը «Անորսալի չարամիտ ծրագրի արկածները» Դուք գիտեք, որ հաքերները սիրում են ստեղծել բարդ բազմափուլ հարձակումներ, որոնցում յուրաքանչյուր գործընթաց խաղում է իր փոքր դերը և պատրաստում է ցատկահարթակ հաջորդ քայլի համար: Պարզապես «հում» գերանից նման բաներ որսալը չափազանց դժվար է։
Բայց իմ Get-Sysmonlogs հրամանով և լրացուցիչ տվյալների կառուցվածքով, որը մենք կդիտարկենք ավելի ուշ տեքստում (իհարկե, գրաֆիկ), մենք ունենք սպառնալիքները հայտնաբերելու գործնական միջոց, որը պարզապես պահանջում է ճիշտ գագաթային որոնում կատարել:
Ինչպես միշտ մեր DYI բլոգային նախագծերի դեպքում, որքան շատ աշխատեք սպառնալիքների մանրամասները փոքր մասշտաբով վերլուծելու վրա, այնքան ավելի շատ կհասկանաք, թե որքան բարդ է սպառնալիքների հայտնաբերումը ձեռնարկության մակարդակում: Եվ այս գիտակցությունը չափազանց մեծ է կարևոր կետ.

Առաջին հետաքրքիր բարդություններին կհանդիպենք հոդվածի երկրորդ մասում, որտեղ կսկսենք Sysmon-ի իրադարձությունները միմյանց հետ կապել շատ ավելի բարդ կառուցվածքների մեջ։

Source: www.habr.com

Добавить комментарий