Snort կամ Suricata. Մաս 3. Գրասենյակային ցանցի պաշտպանություն
В նախորդ հոդվածը մենք լուսաբանել ենք, թե ինչպես գործարկել Suricata-ի կայուն տարբերակը Ubuntu 18.04 LTS-ում: IDS-ի տեղադրումը մեկ հանգույցի վրա և միացնելով անվճար կանոնների հավաքածուները բավականին պարզ է: Այսօր մենք կպարզենք, թե ինչպես պաշտպանել կորպորատիվ ցանցը՝ օգտագործելով հարձակումների ամենատարածված տեսակները, օգտագործելով Suricata-ն, որը տեղադրված է վիրտուալ սերվերի վրա: Դա անելու համար մեզ անհրաժեշտ է VDS-ը Linux-ում երկու հաշվողական միջուկով: RAM-ի քանակը կախված է ծանրաբեռնվածությունից. ինչ-որ մեկին բավարար է 2 ԳԲ, իսկ ավելի լուրջ առաջադրանքների համար կարող է պահանջվել 4 կամ նույնիսկ 6: Վիրտուալ մեքենայի առավելությունը փորձարկումների հնարավորությունն է. կարող եք սկսել նվազագույն կոնֆիգուրացիան և ավելացնել: անհրաժեշտության դեպքում ռեսուրսներ:
IDS-ն վիրտուալ մեքենայի վրա հեռացնելն առաջին հերթին կարող է անհրաժեշտ լինել թեստերի համար: Եթե դուք երբեք չեք զբաղվել նման լուծումներով, ապա չպետք է շտապեք պատվիրել ֆիզիկական սարքավորումներ և փոխել ցանցի ճարտարապետությունը: Ավելի լավ է համակարգը անվտանգ և ծախսարդյունավետ գործարկել՝ ձեր հաշվարկային կարիքները որոշելու համար: Կարևոր է հասկանալ, որ ամբողջ կորպորատիվ տրաֆիկը պետք է փոխանցվի մեկ արտաքին հանգույցով. տեղական ցանցը (կամ մի քանի ցանցեր) միացնելու համար VDS-ին, որտեղ տեղադրված է IDS Suricata, կարող եք օգտագործել SoftEther - Հեշտ կարգավորվող, խաչաձեւ հարթակ VPN սերվեր, որն ապահովում է ուժեղ գաղտնագրում: Գրասենյակային ինտերնետ կապը կարող է իրական IP չունենալ, ուստի ավելի լավ է այն տեղադրել VPS-ի վրա: Ubuntu-ի պահոցում պատրաստի փաթեթներ չկան, դուք պետք է ներբեռնեք ծրագիրը կամ դրանից նախագծի կայք, կամ ծառայության արտաքին պահոցից Launchpad- ը (եթե վստահում եք նրան).
Դուք կարող եք դիտել հասանելի փաթեթների ցանկը հետևյալ հրամանով.
apt-cache search softether
Մեզ անհրաժեշտ կլինի softther-vpnserver (փորձարկման կազմաձևման սերվերը աշխատում է VDS-ով), ինչպես նաև softther-vpncmd - հրամանի տող կոմունալ ծառայություններ այն կարգավորելու համար:
Սերվերը կարգավորելու համար օգտագործվում է հրամանի տողի հատուկ գործիք.
sudo vpncmd
Մենք մանրամասն չենք խոսի պարամետրի մասին. ընթացակարգը բավականին պարզ է, այն լավ նկարագրված է բազմաթիվ հրապարակումներում և ուղղակիորեն չի առնչվում հոդվածի թեմային: Մի խոսքով, vpncmd-ն սկսելուց հետո դուք պետք է ընտրեք 1-ին կետը՝ սերվերի կառավարման վահանակ գնալու համար։ Դա անելու համար դուք պետք է մուտքագրեք localhost անունը և սեղմեք enter՝ հանգույցի անունը մուտքագրելու փոխարեն: Վահանակում ադմինիստրատորի գաղտնաբառը դրվում է serverpasswordset հրամանով, DEFAULT վիրտուալ հանգույցը ջնջվում է (hubdelete հրաման) և ստեղծվում է նորը Suricata_VPN անունով, և սահմանվում է նաև դրա գաղտնաբառը (hubcreate հրաման): Հաջորդը, դուք պետք է գնաք նոր հանգույցի կառավարման վահանակ՝ օգտագործելով hub Suricata_VPN հրամանը՝ խումբ և օգտվող ստեղծելու համար՝ օգտագործելով groupcreate և usercreate հրամանները: Օգտագործողի գաղտնաբառը սահմանվում է userpasswordset-ի միջոցով:
SoftEther-ն աջակցում է երթևեկության փոխանցման երկու ռեժիմ՝ SecureNAT և Local Bridge: Առաջինը սեփական NAT-ով և DHCP-ով վիրտուալ մասնավոր ցանց կառուցելու սեփական տեխնոլոգիա է: SecureNAT-ը չի պահանջում TUN/TAP կամ Netfilter կամ firewall-ի այլ կարգավորումներ: Ուղղորդումը չի ազդում համակարգի առանցքի վրա, և բոլոր գործընթացները վիրտուալացված են և աշխատում են ցանկացած VPS/VDS-ի վրա՝ անկախ օգտագործվող հիպերվիզորից: Սա հանգեցնում է պրոցեսորի բեռնվածության ավելացման և դանդաղ արագության՝ համեմատած Local Bridge ռեժիմի հետ, որը միացնում է SoftEther վիրտուալ հանգույցը ֆիզիկական ցանցային ադապտերին կամ TAP սարքին:
Կազմաձևումն այս դեպքում դառնում է ավելի բարդ, քանի որ երթուղավորումը տեղի է ունենում միջուկի մակարդակում՝ օգտագործելով Netfilter: Մեր VDS-ը կառուցված է Hyper-V-ի վրա, ուստի վերջին քայլում մենք ստեղծում ենք տեղական կամուրջ և ակտիվացնում TAP սարքը bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes հրամանով: Հանգույցի կառավարման վահանակից դուրս գալուց հետո մենք համակարգում կտեսնենք ցանցային նոր ինտերֆեյս, որը դեռ IP չի նշանակվել.
ifconfig
Հաջորդը, դուք պետք է միացնեք փաթեթների երթուղին ինտերֆեյսների միջև (IP առաջ), եթե այն ոչ ակտիվ է.
sudo nano /etc/sysctl.conf
Մեկնաբանություններից հանեք հետևյալ տողը.
net.ipv4.ip_forward = 1
Պահպանեք փոփոխությունները ֆայլում, դուրս եկեք խմբագրիչից և կիրառեք դրանք հետևյալ հրամանով.
sudo sysctl -p
Հաջորդը, մենք պետք է սահմանենք ենթացանց վիրտուալ ցանցի համար ֆիկտիվ IP-ներով (օրինակ՝ 10.0.10.0/24) և հասցե նշանակենք ինտերֆեյսին.
sudo ifconfig tap_suricata_vp 10.0.10.1/24
Հետո պետք է գրել Netfilter-ի կանոնները։
1. Անհրաժեշտության դեպքում թույլատրեք մուտքային փաթեթները լսողական պորտերի վրա (SoftEther-ի սեփականության արձանագրությունն օգտագործում է HTTPS և պորտ 443)
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT
4. Թույլատրել անցնող փաթեթներ արդեն հաստատված կապերի համար
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
Մենք կթողնենք գործընթացի ավտոմատացումը, երբ համակարգը վերագործարկվի՝ օգտագործելով սկզբնականացման սկրիպտները, որպես տնային աշխատանք:
Եթե ցանկանում եք IP-ն ավտոմատ կերպով տրամադրել հաճախորդներին, ապա ձեզ հարկավոր է նաև տեղադրել ինչ-որ DHCP ծառայություն տեղական կամրջի համար: Սա ավարտում է սերվերի կարգավորումը, և դուք կարող եք գնալ հաճախորդներին: SoftEther-ն աջակցում է բազմաթիվ արձանագրությունների, որոնց օգտագործումը կախված է LAN սարքավորման հնարավորություններից։
netstat -ap |grep vpnserver
Քանի որ մեր թեստային երթուղիչը նույնպես աշխատում է Ubuntu-ի ներքո, եկեք դրա վրա տեղադրենք softther-vpnclient և softther-vpncmd փաթեթները արտաքին պահոցից, որպեսզի օգտագործենք սեփականության արձանագրությունը: Դուք պետք է գործարկեք հաճախորդը.
sudo vpnclient start
Կարգավորելու համար օգտագործեք vpncmd կոմունալ ծրագիրը՝ ընտրելով localhost որպես մեքենա, որի վրա աշխատում է vpnclient-ը: Բոլոր հրամանները կատարվում են վահանակում. ձեզ հարկավոր է ստեղծել վիրտուալ ինտերֆեյս (NicCreate) և հաշիվ (AccountCreate):
Որոշ դեպքերում դուք պետք է նշեք նույնականացման մեթոդը՝ օգտագործելով AccountAnonymousSet, AccountPasswordSet, AccountCertSet և AccountSecureCertSet հրամանները: Քանի որ մենք չենք օգտագործում DHCP, վիրտուալ ադապտերի հասցեն սահմանվում է ձեռքով:
Բացի այդ, մենք պետք է միացնենք ip forward-ը (տարբերակ net.ipv4.ip_forward=1 /etc/sysctl.conf ֆայլում) և կարգավորենք ստատիկ երթուղիները: Անհրաժեշտության դեպքում Suricata-ով VDS-ում կարող եք կարգավորել նավահանգիստների վերահասցեավորումը տեղական ցանցում տեղադրված ծառայություններից օգտվելու համար: Սրա վրա ցանցի միաձուլումը կարելի է համարել ավարտված։
Մեր առաջարկած կոնֆիգուրացիան այսպիսի տեսք կունենա.
Suricata-ի կարգավորում
В նախորդ հոդվածը մենք խոսեցինք IDS-ի աշխատանքի երկու եղանակի մասին՝ NFQUEUE հերթի միջոցով (NFQ ռեժիմ) և զրոյական պատճենի միջոցով (AF_PACKET ռեժիմ): Երկրորդը պահանջում է երկու ինտերֆեյս, բայց ավելի արագ է. մենք կօգտագործենք այն: Պարամետրը լռելյայն սահմանված է /etc/default/suricata-ում: Մենք նաև պետք է խմբագրենք vars բաժինը /etc/suricata/suricata.yaml-ում՝ այնտեղ վիրտուալ ենթացանցը դնելով որպես տուն:
IDS-ն վերագործարկելու համար օգտագործեք հրամանը.
systemctl restart suricata
Լուծումը պատրաստ է, այժմ ձեզ հարկավոր է ստուգել այն վնասակար գործողությունների նկատմամբ դիմադրության համար:
Հարձակումների մոդելավորում
Արտաքին IDS ծառայության մարտական օգտագործման համար կարող են լինել մի քանի սցենար.
Դժվար է նման տարբերակ իրականացնել կորպորատիվ ցանցի ներսում, քանի որ վերլուծության համար փաթեթները պետք է հասնեն համակարգի ինտերֆեյսին, որը նայում է ինտերնետին: Նույնիսկ եթե IDS-ն արգելափակում է դրանք, կեղծ թրաֆիկը կարող է տապալել տվյալների հղումը: Դրանից խուսափելու համար դուք պետք է պատվիրեք VPS բավականաչափ արդյունավետ ինտերնետ կապով, որը կարող է փոխանցել տեղական ցանցի ամբողջ տրաֆիկը և ամբողջ արտաքին տրաֆիկը: Հաճախ դա անելն ավելի հեշտ և էժան է, քան գրասենյակի ալիքը ընդլայնելը: Որպես այլընտրանք՝ հարկ է նշել DDoS-ից պաշտպանության մասնագիտացված ծառայությունները։ Նրանց ծառայությունների արժեքը համեմատելի է վիրտուալ սերվերի արժեքի հետ, և դա չի պահանջում ժամանակատար կոնֆիգուրացիա, բայց կան նաև թերություններ. հաճախորդը ստանում է միայն DDoS պաշտպանություն իր փողի համար, մինչդեռ իր սեփական IDS-ն կարող է կազմաձևվել ինչպես դուք: նման.
Պաշտպանություն այլ տեսակի արտաքին հարձակումներից
Suricata-ն ի վիճակի է դիմակայել ինտերնետից հասանելի կորպորատիվ ցանցային ծառայությունների տարբեր խոցելիությունների շահագործման փորձերին (փոստի սերվեր, վեբ սերվեր և վեբ հավելվածներ և այլն): Սովորաբար, դրա համար IDS-ն տեղադրվում է LAN-ի ներսում սահմանային սարքերից հետո, բայց այն դուրս բերելը գոյության իրավունք ունի։
Պաշտպանություն ներսից
Չնայած համակարգի ադմինիստրատորի լավագույն ջանքերին, կորպորատիվ ցանցի համակարգիչները կարող են վարակվել չարամիտ ծրագրերով: Բացի այդ, տեղի տարածքում երբեմն հայտնվում են խուլիգաններ, ովքեր փորձում են ինչ-որ անօրինական գործողություններ կատարել։ Suricata-ն կարող է օգնել արգելափակել նման փորձերը, չնայած ներքին ցանցը պաշտպանելու համար ավելի լավ է այն տեղադրել պարագծի ներսում և օգտագործել այն կառավարվող անջատիչի հետ միասին, որը կարող է արտացոլել երթևեկությունը մեկ նավահանգիստ: Արտաքին IDS-ն այս դեպքում նույնպես անօգուտ չէ. համենայն դեպս այն կկարողանա բռնել LAN-ում ապրող չարամիտ ծրագրերի փորձերը՝ կապ հաստատել արտաքին սերվերի հետ:
Սկզբից մենք կստեղծենք մեկ այլ թեստ, որը հարձակվում է VPS-ի վրա, իսկ տեղական ցանցի երթուղիչի վրա մենք կբարձրացնենք Apache-ն լռելյայն կոնֆիգուրացիայով, որից հետո IDS սերվերից նրան կփոխանցենք 80-րդ պորտը։ Հաջորդը, մենք նմանակելու ենք DDoS հարձակումը հարձակվող հյուրընկալողի կողմից: Դա անելու համար ներբեռնեք GitHub-ից, կազմեք և գործարկեք մի փոքր xerxes ծրագիր հարձակվող հանգույցի վրա (կարող է ձեզ անհրաժեշտ լինի տեղադրել gcc փաթեթը).
Suricata-ն կտրում է չարագործին, և Apache-ի էջը բացվում է լռելյայն, չնայած մեր հանպատրաստից հարձակմանը և «գրասենյակի» (իրականում տնային) ցանցի բավականին մեռած ալիքին: Ավելի լուրջ առաջադրանքների համար դուք պետք է օգտագործեք Metasploit Framework- ը. Այն նախատեսված է ներթափանցման փորձարկման համար և թույլ է տալիս նմանակել տարբեր հարձակումներ: Տեղադրման հրահանգներ մատչելի նախագծի կայքում։ Տեղադրվելուց հետո անհրաժեշտ է թարմացում.
sudo msfupdate
Փորձարկման համար գործարկեք msfconsole-ը:
Ցավոք, շրջանակի վերջին տարբերակներում բացակայում է ավտոմատ կերպով կոտրելու հնարավորությունը, ուստի շահագործումները պետք է դասավորվեն ձեռքով և գործարկվեն օգտագործման հրամանի միջոցով: Սկզբից արժե որոշել հարձակման ենթարկված մեքենայի վրա բաց նավահանգիստները, օրինակ՝ օգտագործելով nmap (մեր դեպքում այն ամբողջությամբ կփոխարինվի netstat-ով հարձակված հոսթի վրա), այնուհետև ընտրեք և օգտագործեք համապատասխանը: Metasploit մոդուլներ.
Գոյություն ունեն այլ միջոցներ՝ փորձարկելու IDS-ի ճկունությունը հարձակումների դեմ, ներառյալ առցանց ծառայությունները: Հետաքրքրության համար դուք կարող եք կազմակերպել սթրես-թեստավորում՝ օգտագործելով փորձնական տարբերակը IP լարող. Ներքին ներխուժողների գործողությունների արձագանքը ստուգելու համար արժե տեղադրել հատուկ գործիքներ տեղական ցանցի մեքենաներից մեկի վրա: Տարբերակները շատ են և ժամանակ առ ժամանակ դրանք պետք է կիրառվեն ոչ միայն փորձարարական կայքի, այլև աշխատող համակարգերի վրա, միայն թե սա բոլորովին այլ պատմություն է։