Suricata - Öryggisverkfæri fyrir innbrotsuppgötvun og varnir


Suricata er öflug, fjölhæf og opinn uppspretta ógnarskynjunarvél sem býður upp á virkni fyrir innbrotsskynjun (IDS), innbrotsvörn (IPS) og netöryggiseftirlit. Það framkvæmir djúpa pakkaskoðun ásamt mynstri sem passar við blöndu sem er ótrúlega öflug í ógnargreiningu.

Þegar þessi handbók er skrifuð er nýjasta útgáfan af Suricata 6.0.5.

  • IDS/IPS – Suricata er reglubundið innbrotsskynjunar- og forvarnir vél sem nýtir utanaðkomandi reglusett eins og Emerging Threats Suricata reglusett til að fylgjast með netumferð fyrir hvers kyns illgjarnri virkni, stefnubrotum og ógnum.
  • Sjálfvirk samskiptagreining – Suricata vélin finnur sjálfkrafa samskiptareglur eins og HTTP og HTTPS. FTP og SMB á hvaða höfn sem er og notaðu rétta uppgötvunar- og skógarhöggfræði. Þetta kemur sér vel við að greina spilliforrit og CnC rásir.
  • Lua Scripting – Suricata getur kallað fram Lua skriftur sem veita háþróaða uppgötvun spilliforrita til að greina og afkóða umferð um spilliforrit sem annars er erfitt að greina.
  • Multi-threading – Suricata veitir hraða og mikilvægi við ákvörðun netumferðar. Vélin er þróuð til að beita auknum vinnsluafli sem nútíma fjölkjarna vélbúnaðarkubbar bjóða upp á.

Uppsetning Suricata Intrusion Detection Tool í Linux

Í þessum hluta munum við sýna hvernig á að setja upp Suricata á RHEL-undirstaða dreifingar.

Suricata er veitt af Debian/Ubuntu geymslum og auðvelt er að setja það upp með því að nota viðeigandi pakkastjóra. Hins vegar er rétt að hafa í huga að þetta setur ekki upp nýjustu útgáfuna af Suricata. Til að setja upp nýjustu útgáfuna þarftu að setja hana upp frá uppruna sem við munum fjalla um síðar í þessari handbók.

Til að setja upp Suricata með því að nota viðeigandi pakkastjóra skaltu keyra skipunina:

$ sudo apt install suricata -y

Suricata byrjar sjálfkrafa þegar það hefur verið sett upp. Þú getur staðfest þetta á eftirfarandi hátt.

$ sudo systemctl status suricata

Til að setja Suricata á RHEL dreifingu eins og CentOS Stream, Rocky Linux, AlmaLinux, Fedora og RHEL þarftu fyrst að virkja EPEL geymsluna.

$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  [RHEL 9]
$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 7]

Þegar EPEL er virkt skaltu setja upp eftirfarandi nauðsynlega pakka og bæta OISF geymslunni við kerfið þitt.

----------- On Fedora Systems ----------- 
$ sudo dnf install dnf-plugins-core
$ sudo  dnf copr enable @oisf/suricata-6.0

----------- On RHEL Systems ----------- 
$ sudo dnf install yum-plugin-copr
$ sudo dnf copr enable @oisf/suricata-6.0

Næst skaltu setja upp Suricata með því að nota yum pakkastjórann eins og sýnt er.

$ sudo dnf install suricata -y
Or
$ sudo yum install suricata -y

Þegar Suricata hefur verið sett upp skaltu byrja og staðfesta stöðu þess.

$ sudo systemctl start suricata
$ sudo systemctl status suricata

Settu upp Suricata frá Source í Linux

Sjálfgefnar stýrikerfisgeymslur bjóða ekki upp á nýjustu útgáfuna af Suricata. Ef markmið þitt er að setja upp nýjustu útgáfuna af Suricata, þá þarftu að setja hana upp frá upprunanum.

Þegar þessi handbók er skrifuð er nýjasta útgáfan af Suricata 6.0.5. Til að setja upp Suricata frá upprunanum á Ubuntu/Debian og RHEL dreifingum skaltu setja upp eftirfarandi bókasöfn, safnverkfæri og ósjálfstæði.

----------- On Debian Systems ----------- 
$ sudo apt install rustc build-essential cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 libnetfilter-queue-dev libnfnetlink-dev -y

----------- On RHEL Systems ----------- 
$ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc cargo lz4-devel -y

Næst skaltu setja upp suricata-uppfærslutólið til að uppfæra Suricata reglurnar.

$ sudo apt install python3-pip           [On Debian]
$ sudo yum install python3-pip           [On RHEL]
$ pip3 install --upgrade suricata-update

Búðu síðan til táknrænan hlekk á /usr/bin/suricata-update.

$ sudo ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update

Farðu nú yfir í wget skipunina.

$ wget https://www.openinfosecfoundation.org/download/suricata-6.0.6.tar.gz

Þegar þú hefur hlaðið niður skaltu draga út tarball skrána og setja hana upp.

$ sudo tar -xvf suricata-6.0.6.tar.gz
$ cd suricata-6.0.6
$ ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ make install-full

Stilla Suricata í Linux

Til að byrja að stilla Suricata þurfum við að tilgreina innri IP og ytra net. Til að gera þetta skaltu opna stillingarskrána.

$ sudo vim /etc/suricata/suricata.yaml

Fyrir HOME_NET tilskipunina, tilgreindu IP tölu Linux kerfisins þíns.

HOME_NET: "[173.82.235.7]"

Næst skaltu stilla EXTERNAL_NET tilskipunina á “!$HOME_NET“.

EXTERNAL_NET: "!$HOME_NET"

Næst skaltu tilgreina netviðmótið sem Suricata mun skoða netumferð á. Í okkar tilviki er þetta eth0 viðmótið.

Þú getur staðfest virkt netviðmót þitt með því að nota ip skipunina:

$ ip a

Í stillingarskránni skaltu uppfæra viðmótstilskipunina með nafni netviðmótsins.

- interface: eth0

Næst skaltu ganga úr skugga um að sjálfgefna-reglu-slóð eigindin sé stillt á /etc/suricata/rules.

Vistaðu síðan breytingarnar og lokaðu stillingarskránni. Endurræstu síðan Suricata til að breytingarnar eigi við.

$ sudo systemctl status suricata

Uppfærir Suricata reglusett í Linux

Sjálfgefið er að Suricata er með takmarkað sett af uppgötvunarreglum sem staðsettar eru í /etc/suricata/rules skránni. Hins vegar eru þær taldar veikar og árangurslausar við að greina innbrot. Þú þarft að hlaða inn Emerging Threat (ET) reglurnar sem eru taldar umfangsmestu reglusettin fyrir Suricata.

Suricata býður upp á tól sem kallast suricata-uppfærsla sem sækir reglusett frá utanaðkomandi veitendum. Til að fá uppfært reglusett fyrir netþjóninn þinn skaltu keyra eftirfarandi skipun.

$ sudo suricata-update -o /etc/suricata/rules

Frá úttakinu geturðu séð suricata-uppfærsluna sækja ókeypis Emerging Threats ET Open Rules og vista þær í /etc/suricata/rules/suricata regluskrá Suricata. Að auki gefur það til kynna fjölda reglna sem unnið er með. Í þessu dæmi bættust alls 35941 við. Af þeim voru 28221 virkjuð, 18 voru fjarlægð og 1249 breytt.

Bætir Suricata reglusettum við í Linux

Suricata-uppfærslutólið gerir þér kleift að sækja reglur frá reglusettum. Sumir eru ókeypis eins og ET Open settið, á meðan aðrir þurfa greidda áskrift.

Til að skrá sjálfgefið sett af regluveitum skaltu keyra suricata-update skipunina eins og sýnt er.

$ sudo suricata-update list-sources

Til að bæta við reglusetti, til dæmis, tgreen/hunting reglusettinu, keyrðu eftirfarandi skipun.

$ sudo suricata-update enable-source tgreen/hunting

Þegar þú hefur bætt við reglusettinu skaltu keyra suricata-update skipunina einu sinni enn með -o /etc/suricata/rules fánanum.

$ sudo suricata-update -o /etc/suricata/rules

Að prófa Suricata reglur í Linux

Áður en þú byrjar að prófa Suricata er mælt með því að prófa hvort uppsetningin sé í lagi. Til að gera það skaltu keyra eftirfarandi skipun:

$ sudo suricata -T -c /etc/suricata/suricata.yaml -v

Gakktu úr skugga um að engar villur séu tilkynntar. Ef þú ert að keyra RHEL, CentOS Stream, Fedora og Rocky Linux skaltu byrja og virkja Suricata.

$ sudo systemctl start suricata 
$ sudo systemctl enable suricata 

Hingað til höfum við sett upp og stillt Suricata og uppfært reglurnar. ET Open Rule Set inniheldur yfir 30.000 reglur til að greina skaðlega umferð. Í þessum hluta munum við prófa Suricata og athuga hvort það geti greint grunsamlega netumferð.

Við munum prófa ET Open reglusettið með því að líkja eftir innrás eins og mælt er með í Quickstart handbók Suricata.

IDS virknin verður prófuð með auðkenni undirskriftarinnar 2100498 með því að senda HTTP beiðni á testmynids.org vefsíðuna sem er NIDS (Network Intrusion and Detection System) ramma.

$ curl http://testmynids.org/uid/index.html

Þú ættir að fá eftirfarandi úttak.

uid=0(root) gid=0(root) groups=0(root)

HTTP beiðnin sem send er er hönnuð til að kalla fram viðvörun með því að líkja eftir úttak id skipunarinnar sem gæti keyrt á fjarlægu kerfi í hættu í gegnum skel.

Nú skulum við sigta í gegnum annála Suricata fyrir samsvarandi viðvörun. Suricata er með tvær annálaskrár sem eru sjálfgefnar virkar.

/var/log/suricata/fast.log
/var/log/suricata/eve.log

Við munum leita að logfærslu í /var/log/suricata/fast.log skránni sem samsvarar grep skipuninni. Við munum leita að annálafærslum með því að nota regluauðkenni 2100498 úr Quickstart skjölunum.

$ grep 2100948 /var/log/suricata/fast.log

Þú munt fá eftirfarandi úttak sem táknar afskipti. Hér er 173.82.235.7 opinber IP-tala netþjónsins.

09/09/2022-22:17:06.796434  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 13.226.210.123:80 -> 173.82.235.7:33822

Að öðrum kosti geturðu athugað /var/log/suricata/eve.log log skrána fyrir undirskriftakennið 2100498 eins og sýnt er.

$ jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

Þetta var yfirgripsmikil handbók um hvernig á að setja upp og stilla Suricata á Linux. Við höfum skoðað ýmsar uppsetningaraðferðir, hvernig á að stilla Suricata og uppfæra Suricata reglur sem og hvernig á að stjórna Suricata kerfisþjónustu og framkvæma netinnbrotspróf.

Það er von okkar að þú getir nú sett upp og notað Suricata á þægilegan hátt til að vernda kerfið þitt fyrir innbrotum á netkerfi eða skaðlegri umferð.