Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Π’ nakaraang artikulo tinalakay namin kung paano patakbuhin ang stable na bersyon ng Suricata sa Ubuntu 18.04 LTS. Ang pag-set up ng isang IDS sa isang node at pagpapagana ng mga libreng set ng panuntunan ay medyo diretso. Ngayon ay malalaman natin kung paano protektahan ang isang corporate network gamit ang mga pinakakaraniwang uri ng pag-atake gamit ang Suricata na naka-install sa isang virtual server. Para magawa ito, kailangan namin ng VDS sa Linux na may dalawang computing core. Ang halaga ng RAM ay depende sa pag-load: 2 GB ay sapat na para sa isang tao, at 4 o kahit 6 ay maaaring kailanganin para sa mas seryosong mga gawain. Ang bentahe ng isang virtual machine ay ang kakayahang mag-eksperimento: maaari kang magsimula sa isang minimal na pagsasaayos at pagtaas mapagkukunan kung kinakailangan.

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisinalarawan: Reuters

Pagkonekta ng mga network

Ang pag-alis ng IDS sa isang virtual machine sa unang lugar ay maaaring kailanganin para sa mga pagsubok. Kung hindi ka pa nakikitungo sa gayong mga solusyon, hindi ka dapat magmadali upang mag-order ng pisikal na hardware at baguhin ang arkitektura ng network. Pinakamainam na patakbuhin ang system nang ligtas at matipid upang matukoy ang iyong mga pangangailangan sa pagkalkula. Mahalagang maunawaan na ang lahat ng trapiko ng korporasyon ay kailangang dumaan sa isang panlabas na node: upang ikonekta ang isang lokal na network (o ilang mga network) sa isang VDS na may naka-install na IDS Suricata, maaari mong gamitin SoftEther - Isang madaling i-configure, cross-platform na VPN server na nagbibigay ng malakas na pag-encrypt. Maaaring walang totoong IP ang isang koneksyon sa Internet sa opisina, kaya mas mainam na i-set up ito sa isang VPS. Walang mga handa na pakete sa imbakan ng Ubuntu, kakailanganin mong i-download ang software mula sa alinman site ng proyekto, o mula sa isang panlabas na imbakan sa serbisyo Launchpad (kung may tiwala ka sa kanya):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Maaari mong tingnan ang listahan ng magagamit na mga pakete gamit ang sumusunod na command:

apt-cache search softether

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Kakailanganin namin ang softether-vpnserver (ang server sa configuration ng pagsubok ay tumatakbo sa VDS), pati na rin ang softether-vpncmd - command line utilities para sa pag-configure nito.

sudo apt-get install softether-vpnserver softether-vpncmd

Ang isang espesyal na command line utility ay ginagamit upang i-configure ang server:

sudo vpncmd

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Hindi namin pag-uusapan nang detalyado ang tungkol sa setting: ang pamamaraan ay medyo simple, mahusay itong inilarawan sa maraming mga publikasyon at hindi direktang nauugnay sa paksa ng artikulo. Sa madaling salita, pagkatapos simulan ang vpncmd, kailangan mong piliin ang item 1 para pumunta sa server management console. Upang gawin ito, kailangan mong ipasok ang pangalan localhost at pindutin ang enter sa halip na ilagay ang pangalan ng hub. Ang password ng administrator ay nakatakda sa console gamit ang serverpasswordset command, ang DEFAULT virtual hub ay tinanggal (hubdelete command) at isang bago ay nilikha na may pangalang Suricata_VPN, at ang password nito ay nakatakda din (hubcreate command). Susunod, kailangan mong pumunta sa management console ng bagong hub gamit ang hub Suricata_VPN command para gumawa ng grupo at user gamit ang groupcreate at usercreate command. Ang password ng user ay itinakda gamit ang userpasswordset.

Sinusuportahan ng SoftEther ang dalawang traffic transfer mode: SecureNAT at Local Bridge. Ang una ay isang proprietary technology para sa pagbuo ng isang virtual private network na may sarili nitong NAT at DHCP. Ang SecureNAT ay hindi nangangailangan ng TUN/TAP o Netfilter o iba pang mga setting ng firewall. Ang pagruruta ay hindi nakakaapekto sa core ng system, at lahat ng mga proseso ay virtualized at gumagana sa anumang VPS / VDS, anuman ang hypervisor na ginamit. Nagreresulta ito sa pagtaas ng pag-load ng CPU at mas mabagal na bilis kumpara sa Local Bridge mode, na nag-uugnay sa SoftEther virtual hub sa isang pisikal na network adapter o TAP device.

Ang pagsasaayos sa kasong ito ay nagiging mas kumplikado, dahil ang pagruruta ay nangyayari sa antas ng kernel gamit ang Netfilter. Ang aming VDS ay binuo sa Hyper-V, kaya sa huling hakbang ay gumawa kami ng lokal na tulay at i-activate ang TAP device gamit ang bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes command. Pagkatapos lumabas sa hub management console, makakakita tayo ng bagong network interface sa system na hindi pa naitatalaga ng IP:

ifconfig

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Susunod, kakailanganin mong paganahin ang packet routing sa pagitan ng mga interface (ip forward), kung ito ay hindi aktibo:

sudo nano /etc/sysctl.conf

Alisin sa komento ang sumusunod na linya:

net.ipv4.ip_forward = 1

I-save ang mga pagbabago sa file, lumabas sa editor at ilapat ang mga ito gamit ang sumusunod na command:

sudo sysctl -p

Susunod, kailangan nating tukuyin ang isang subnet para sa virtual network na may mga kathang-isip na IP (halimbawa, 10.0.10.0/24) at magtalaga ng address sa interface:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Pagkatapos ay kailangan mong magsulat ng mga panuntunan sa Netfilter.

1. Kung kinakailangan, payagan ang mga papasok na packet sa mga listening port (SoftEther proprietary protocol ay gumagamit ng HTTPS at port 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. I-set up ang NAT mula sa 10.0.10.0/24 subnet hanggang sa pangunahing IP server

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Payagan ang pagpasa ng mga packet mula sa subnet 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Payagan ang pagpasa ng mga packet para sa mga naitatag na koneksyon

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Iiwan namin ang automation ng proseso kapag na-restart ang system gamit ang mga script ng initialization sa mga mambabasa bilang takdang-aralin.

Kung gusto mong awtomatikong magbigay ng IP sa mga kliyente, kakailanganin mo ring mag-install ng ilang uri ng serbisyo ng DHCP para sa lokal na tulay. Nakumpleto nito ang pag-setup ng server at maaari kang pumunta sa mga kliyente. Sinusuportahan ng SoftEther ang maraming mga protocol, ang paggamit nito ay nakasalalay sa mga kakayahan ng kagamitan sa LAN.

netstat -ap |grep vpnserver

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Dahil ang aming pagsubok na router ay tumatakbo din sa ilalim ng Ubuntu, i-install natin ang softether-vpnclient at softether-vpncmd na mga pakete mula sa isang panlabas na imbakan dito upang magamit ang proprietary protocol. Kakailanganin mong patakbuhin ang kliyente:

sudo vpnclient start

Upang i-configure, gamitin ang vpncmd utility, piliin ang localhost bilang machine kung saan tumatakbo ang vpnclient. Ang lahat ng mga utos ay ginawa sa console: kakailanganin mong lumikha ng isang virtual na interface (NicCreate) at isang account (AccountCreate).

Sa ilang mga kaso, dapat mong tukuyin ang paraan ng pagpapatunay gamit ang mga utos ng AccountAnonymousSet, AccountPasswordSet, AccountCertSet, at AccountSecureCertSet. Dahil hindi kami gumagamit ng DHCP, ang address para sa virtual adapter ay manu-manong itinakda.

Bilang karagdagan, kailangan nating paganahin ang ip forward (ang net.ipv4.ip_forward=1 na parameter sa /etc/sysctl.conf file) at i-configure ang mga static na ruta. Kung kinakailangan, sa VDS na may Suricata, maaari mong i-configure ang port forwarding upang magamit ang mga serbisyong naka-install sa lokal na network. Dito, maituturing na kumpleto ang pagsasama-sama ng network.

Ang aming iminungkahing configuration ay magiging ganito:

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Pag-set up ng Suricata

Π’ nakaraang artikulo napag-usapan namin ang tungkol sa dalawang mode ng pagpapatakbo ng IDS: sa pamamagitan ng NFQUEUE queue (NFQ mode) at sa pamamagitan ng zero copy (AF_PACKET mode). Ang pangalawa ay nangangailangan ng dalawang interface, ngunit mas mabilis - gagamitin namin ito. Ang parameter ay nakatakda bilang default sa /etc/default/suricata. Kailangan din nating i-edit ang seksyon ng vars sa /etc/suricata/suricata.yaml, na itinakda ang virtual subnet doon bilang tahanan.

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Upang i-restart ang IDS, gamitin ang command:

systemctl restart suricata

Ang solusyon ay handa na, ngayon ay maaaring kailanganin mong subukan ito para sa paglaban sa mga nakakahamak na aksyon.

Pagtulad sa mga pag-atake

Maaaring mayroong ilang mga sitwasyon para sa paggamit ng labanan ng isang panlabas na serbisyo ng IDS:

Proteksyon laban sa mga pag-atake ng DDoS (pangunahing layunin)

Mahirap ipatupad ang gayong opsyon sa loob ng corporate network, dahil ang mga packet para sa pagsusuri ay dapat makarating sa interface ng system na tumitingin sa Internet. Kahit na hinarangan sila ng mga IDS, maaaring ibagsak ng huwad na trapiko ang link ng data. Upang maiwasan ito, kailangan mong mag-order ng VPS na may sapat na produktibong koneksyon sa Internet na maaaring pumasa sa lahat ng trapiko sa lokal na network at lahat ng panlabas na trapiko. Kadalasan ay mas madali at mas murang gawin ito kaysa palawakin ang channel ng opisina. Bilang kahalili, nararapat na banggitin ang mga espesyal na serbisyo para sa proteksyon laban sa DDoS. Ang halaga ng kanilang mga serbisyo ay maihahambing sa halaga ng isang virtual server, at hindi ito nangangailangan ng pagsasaayos ng oras, ngunit mayroon ding mga disadvantages - ang kliyente ay tumatanggap lamang ng proteksyon ng DDoS para sa kanyang pera, habang ang kanyang sariling mga IDS ay maaaring i-configure bilang mo gaya ng.

Proteksyon laban sa mga panlabas na pag-atake ng iba pang mga uri

Nakayanan ng Suricata ang mga pagtatangka na pagsamantalahan ang iba't ibang mga kahinaan sa mga serbisyo ng corporate network na naa-access mula sa Internet (mail server, web server at mga web application, atbp.). Karaniwan, para dito, ang mga IDS ay naka-install sa loob ng LAN pagkatapos ng mga aparato sa hangganan, ngunit ang pagkuha nito sa labas ay may karapatang umiral.

Proteksyon mula sa mga tagaloob

Sa kabila ng pinakamahusay na pagsisikap ng system administrator, ang mga computer sa corporate network ay maaaring mahawaan ng malware. Bilang karagdagan, kung minsan ay lumilitaw ang mga hooligan sa lokal na lugar, na sumusubok na magsagawa ng ilang mga ilegal na operasyon. Makakatulong ang Suricata na harangan ang mga naturang pagtatangka, bagama't upang maprotektahan ang panloob na network ay mas mahusay na i-install ito sa loob ng perimeter at gamitin ito kasabay ng isang pinamamahalaang switch na maaaring mag-mirror ng trapiko sa isang port. Ang isang panlabas na IDS ay hindi rin inutil sa kasong ito - hindi bababa sa ito ay makakahuli ng mga pagtatangka ng malware na naninirahan sa LAN upang makipag-ugnayan sa isang panlabas na server.

Upang magsimula, gagawa kami ng isa pang pagsubok na umaatake sa VPS, at sa lokal na network ng router ay itataas namin ang Apache na may default na pagsasaayos, pagkatapos nito ay ipapasa namin ang ika-80 port dito mula sa server ng IDS. Susunod, gagayahin namin ang pag-atake ng DDoS mula sa umaatakeng host. Upang gawin ito, mag-download mula sa GitHub, mag-compile at magpatakbo ng isang maliit na xerxes program sa umaatake na node (maaaring kailanganin mong i-install ang gcc package):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

Ang resulta ng kanyang trabaho ay ang mga sumusunod:

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Pinutol ni Suricata ang kontrabida, at ang pahina ng Apache ay bubukas bilang default, sa kabila ng aming biglaang pag-atake at ang medyo patay na channel ng network ng "opisina" (talagang tahanan). Para sa mas seryosong gawain, dapat mong gamitin Metasploit Framework. Ito ay dinisenyo para sa pagsubok sa pagtagos at nagbibigay-daan sa iyong gayahin ang iba't ibang mga pag-atake. Mga tagubilin sa pag-install ay magagamit sa website ng proyekto. Pagkatapos ng pag-install, kinakailangan ang isang pag-update:

sudo msfupdate

Para sa pagsubok, patakbuhin ang msfconsole.

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Sa kasamaang palad, ang mga pinakabagong bersyon ng framework ay walang kakayahang awtomatikong mag-crack, kaya ang mga pagsasamantala ay kailangang manu-manong pagbukud-bukurin at patakbuhin gamit ang command na gamitin. Upang magsimula, ito ay nagkakahalaga ng pagtukoy sa mga port na bukas sa inatake na makina, halimbawa, gamit ang nmap (sa aming kaso, ito ay ganap na papalitan ng netstat sa inaatakeng host), at pagkatapos ay piliin at gamitin ang naaangkop na Mga module ng Metasploit

May iba pang paraan upang subukan ang katatagan ng isang IDS laban sa mga pag-atake, kabilang ang mga online na serbisyo. Para sa kapakanan ng pag-usisa, maaari mong ayusin ang pagsubok ng stress gamit ang trial na bersyon IP stresser. Upang suriin ang reaksyon sa mga aksyon ng mga panloob na intruder, sulit na mag-install ng mga espesyal na tool sa isa sa mga makina sa lokal na network. Mayroong maraming mga pagpipilian at paminsan-minsan dapat silang ilapat hindi lamang sa pang-eksperimentong site, kundi pati na rin sa mga gumaganang sistema, tanging ito ay isang ganap na naiibang kuwento.

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Snort o Suricata. Bahagi 3: Pagprotekta sa Network ng Opisina

Pinagmulan: www.habr.com

Magdagdag ng komento