Snort ці Suricata. Частка 3: абараняем офісную сетку

В папярэдняй артыкуле мы распавялі, як запусціць стабільную версію Suricata у Ubuntu 18.04/2 LTS. Наладзіць IDS на адным вузле і падключыць бясплатныя наборы правіл даволі нескладана. Сёння мы разбяромся, як з дапамогай усталяванай на віртуальным серверы Suricata абараніць карпаратыўную сетку ён найбольш распаўсюджаных відаў нападаў. Для гэтага нам спатрэбіцца VDS на Linux з двума вылічальнымі ядрамі. Аб'ём аператыўнай памяці залежыць ад нагрузкі: камусьці хопіць і 4 ГБ, а для больш сур'ёзных задач можа запатрабавацца 6 ці нават XNUMX. Плюс віртуальнай машыны ў магчымасці эксперыментаў: можна пачаць з мінімальнай канфігурацыі і нарошчваць рэсурсы па меры неабходнасці.

Snort ці Suricata. Частка 3: абараняем офісную сеткуфота: Reuters

Аб'ядноўваем сеткі

Вынас IDS на віртуальную машыну ў першую чаргу можа спатрэбіцца для тэстаў. Калі вы ніколі не мелі справы з падобнымі рашэннямі, кідацца заказваць фізічнае жалеза і мяняць архітэктуру сеткі не варта. Лепш абкатаць сістэму бяспечна і без лішніх затрат, каб вызначыць патрэбнасці ў вылічальных рэсурсах. Важна разумець, што ўвесь карпаратыўны трафік пры гэтым давядзецца прапусціць праз адзіны знешні вузел: для падлучэння лакальнай сеткі (або некалькіх сетак) да VDS з усталяванай IDS Suricata можна выкарыстоўваць SoftEther - просты ў наладзе кросплатформавы сервер VPN, які забяспечвае надзейнае шыфраванне. Офіснае падлучэнне да інтэрнэту можа не мець рэальнага IP, таму яго лепш падняць на VPS. У рэпазітары Ubuntu гатовых пакетаў няма, ПА прыйдзецца пампаваць альбо з сайта праекта, альбо з вонкавага рэпазітара на сэрвісе Стартавая пляцоўка (калі вы яму давяраеце):

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

Паглядзець спіс даступных пакетаў можна з дапамогай наступнай каманды:

apt-cache search softether

Snort ці Suricata. Частка 3: абараняем офісную сетку

Нам спатрэбіцца softether-vpnserver (сервер у тэставай канфігурацыі запушчаны на VDS), а таксама softether-vpncmd - утыліты каманднага радка для яго налады.

sudo apt-get install softether-vpnserver softether-vpncmd

Для настройкі сервера выкарыстоўваецца спецыяльная ўтыліта каманднага радка:

sudo vpncmd

Snort ці Suricata. Частка 3: абараняем офісную сетку

Падрабязна расказваць пра настройку мы не будзем: працэдура даволі нескладаная, яна добра апісана ў шматлікіх публікацыях і непасрэдна да тэмы артыкула не адносіцца. Калі сцісла, пасля запуску 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 ці іншага файрвала. Маршрутызацыя не закранае ядры сістэмы, а ўсе працэсы віртуалізаваны і працуюць на любым VPS/VDS па-за залежнасцю ад выкарыстоўванага гіпервізара. Гэта прыводзіць да падвышанай нагрузкі на працэсар і зніжэнню хуткасці ў параўнанні з рэжымам Local Bridge, які злучае віртуальны хаб SoftEther з фізічным сеткавым адаптарам ці прыладай TAP.

Налада ў гэтым выпадку ўскладняецца, паколькі маршрутызацыя адбываецца на ўзроўні ядра пры дапамозе Netfilter. Нашы VDS пабудаваны на Hyper-V, таму на апошнім кроку мы ствараем лакальны мост і які актывуецца прылада TAP камандай bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Пасля выхаду з кансолі кіравання хабам мы ўбачым у сістэме новы сеткавы інтэрфейс, якому яшчэ не прысвоены IP:

ifconfig

Snort ці Suricata. Частка 3: абараняем офісную сетку

Далей давядзецца ўключыць маршрутызацыю пакетаў паміж інтэрфейсамі (ip forward), калі яна неактыўная:

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 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. Наладжваем NAT з падсеткі 10.0.10.0/24 на асноўны IP сервера

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

3. Дазваляем праходзілыя пакеты з падсеткі 10.0.10.0/24

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 падтрымлівае мноства пратаколаў, выкарыстанне якіх залежыць ад магчымасцяў абсталявання лакальнай сеткі.

netstat -ap |grep vpnserver

Snort ці Suricata. Частка 3: абараняем офісную сетку

Паколькі наш тэставы роўтар таксама працуе пад Ubuntu, усталюем на ім з вонкавага рэпазітара пакеты softether-vpnclient і softether-vpncmd, каб скарыстацца фірмовым пратаколам. Трэба будзе запусціць кліент:

sudo vpnclient start

Для налады выкарыстоўваем утыліту vpncmd, выбраўшы localhost у якасці машыны, на якой запушчаны vpnclient. Усе каманды робяцца ў кансолі: запатрабуецца стварыць віртуальны інтэрфейс (NicCreate) і ўліковы запіс (AccountCreate).

У некаторых выпадках неабходна задаць спосаб аўтэнтыфікацыі з дапамогай каманд AccountAnonymousSet, AccountPasswordSet, AccountCertSet і AccountSecureCertSet. Паколькі мы не выкарыстоўваем DHCP, адрас для віртуальнага адаптара задаецца ўручную.

Акрамя таго, нам спатрэбіцца ўключыць ip forward (параметр net.ipv4.ip_forward=1 у файле /etc/sysctl.conf) і наладзіць статычныя маршруты. Пры неабходнасці на VDS з Suricata можна наладзіць пракід партоў для выкарыстання ўсталяваных у лакальнай сетцы сэрвісаў. На гэтым аб'яднанне сетак можна лічыць скончаным.

Выглядаць прапанаваная намі канфігурацыя будзе прыкладна так:

Snort ці Suricata. Частка 3: абараняем офісную сетку

Наладжваем Suricata

В папярэдняй артыкуле мы расказвалі пра два рэжымы працы IDS: праз чаргу NFQUEUE (рэжым NFQ) і праз zero copy (рэжым AF_PACKET). Другі патрабуе наяўнасці двух інтэрфейсаў, але адрозніваецца больш высокай хуткадзейнасцю - мы будзем выкарыстоўваць менавіта яго. Параметр зададзены па змаўчанні ў /etc/default/suricata. Таксама нам спатрэбіцца адрэдагаваць падзел vars у /etc/suricata/suricata.yaml, прапісаўшы тамака віртуальную падсетку ў якасці хатняй.

Snort ці Suricata. Частка 3: абараняем офісную сетку

Для перазапуску IDS выкарыстоўваем каманду:

systemctl restart suricata

Рашэнне гатова, зараз вам можа запатрабавацца праверыць яго на ўстойлівасць да дзеянняў зламыснікаў.

Мадэлюем атакі

Сцэнарыяў баявога прымянення знешняга сэрвісу IDS можа быць некалькі:

Абарона ад нападаў DDoS (асноўнае прызначэнне)

Рэалізаваць такі варыянт усярэдзіне карпаратыўнай сеткі складана, паколькі пакеты для аналізу павінны патрапіць на які глядзіць у інтэрнэт інтэрфейс сістэмы. Нават калі IDS іх заблакуе, паразітны трафік можа пакласці канал перадачы даных. Каб гэтага пазбегнуць, трэба замовіць VPS з досыць прадукцыйным інтэрнэт-падлучэннем, здольным прапусціць увесь трафік лакальнай сеткі і ўвесь вонкавы трафік. Зрабіць гэта часта прасцей і танней, чым пашыраць офісны канал. У якасці альтэрнатывы варта згадаць спецыялізаваныя сервісы для абароны ад DDoS. Кошт іх паслуг параўнальны з коштам віртуальнага сервера, пры гэтым не запатрабуецца працаёмкая налада, але ёсць і недахопы - за свае грошы кліент атрымлівае толькі абарону ад DDoS, тады як уласную IDS можна канфігураваць як заўгодна.

Абарона ад вонкавых нападаў іншых тыпаў

Suricata здольная зладзіцца са спробамі эксплуатацыі розных уразлівасцяў у даступных з інтэрнэту сэрвісах карпаратыўнай сеткі (паштовы сервер, вэб-сервер і вэб-прыкладанні і г.д.). Звычайна для гэтага IDS усталёўваюць усярэдзіне лакалак пасля памежных прылад, але і вынас вонкі мае права на існаванне.

Абарона ад унутраных зламыснікаў

Нягледзячы на ​​??ўсе намаганні сістэмнага адміністратара, кампутары карпаратыўнай сеткі могуць быць заражаныя шкоднасным ПА. Акрамя таго ў лакалцы часам з'яўляюцца хуліганы, якія спрабуюць выконваць нейкія неправамерныя аперацыі. Suricata здольная дапамагчы заблакаваць такія спробы, хоць для абароны ўнутранай сеткі яе лепш усталяваць усярэдзіне перыметра і выкарыстоўваць у пары з умелым люстэркаваць трафік у адзін порт кіраваным камутатарам. Вонкавая IDS у гэтым выпадку таксама не бескарысная – прынамсі яна зможа адлавіць спробы якія жывуць у ЛВС зловредов звязацца з вонкавым серверам.

Для пачатку створым яшчэ адзін тэставы атакавалы VPS, а на роўтары лакальнай сеткі паднімем Apache з канфігурацыяй па змаўчанні, пасля чаго пракінем на яго 80-й порт з сервера IDS. Далей будзем імітаваць напад DDoS з атакавалага вузла. Для гэтага спампоўваем з GitHub, скампілюем і запусцім на атакавалым вузле невялікую праграму xerxes (можа запатрабавацца ўсталёўка пакета gcc):

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

Вынік яе працы аказаўся наступным:

Snort ці Suricata. Частка 3: абараняем офісную сетку

Suricata адсякае злыдня, а старонка Apache па змаўчанні адчыняецца, нягледзячы на ​​наш імправізаваны напад і даволі дохлы канал «офіснай» (насамрэч хатняй) сеткі. Для больш сур'ёзных задач варта выкарыстоўваць Metasploit Framework. Ён прызначаны для правядзення тэстаў на пранікненне і дазваляе імітаваць самыя розныя напады. Інструкцыя па ўстаноўцы даступная на сайце праекту. Пасля ўсталёўкі запатрабуецца абнаўленне:

sudo msfupdate

Для тэставання запускаем msfconsole.

Snort ці Suricata. Частка 3: абараняем офісную сетку

Нажаль, у апошніх версіях фреймворка адсутнічае магчымасць аўтаматычнага ўзлому, таму эксплоіты прыйдзецца перабіраць уручную і запускаць з дапамогай каманды use. Для пачатку варта вызначыць адчыненыя на атакаванай машыне порты, напрыклад, з дапамогай nmap (у нашым выпадку яго суцэль заменіць netstat на атакаваным вузле), а потым падабраць і выкарыстаць падыходныя модулі Metasploit

Існуюць і іншыя сродкі праверкі ўстойлівасці IDS да нападаў, уключаючы анлайн-сэрвісы. Дзеля цікаўнасці можна задаволіць стрэсавае тэставанне з дапамогай трыяльнай версіі IP Stresser. Каб праверыць рэакцыю на дзеянні ўнутраных зламыснікаў, варта ўстанавіць спецыяльныя інструменты на адну з машын лакальнай сеткі. Варыянтаў маса і перыядычна іх варта ўжываць не толькі да эксперыментальнага палігона, але і да працоўных сістэм, толькі гэта ўжо зусім іншая гісторыя

Snort ці Suricata. Частка 3: абараняем офісную сетку

Snort ці Suricata. Частка 3: абараняем офісную сетку

Крыніца: habr.com

Дадаць каментар