A Logstash egy hatékony eszköz, amelyet adatáramlás kezelésére és feldolgozására használnak. A konfiguráció automatikus újratöltésének lehetősége, amely a --config.reload.automatic paraméterrel aktiválható, biztosítja, hogy a futó konfigurációs fájlokban végrehajtott változtatások azonnal életbe lépjenek, anélkül, hogy újra kellene indítani a Logstash-t. Így a rendszer folyamatosan képes feldolgozni az adatokat, miközben a konfigurációs változtatások zökkenőmentesen érvényesülnek. A Logstash segítségével titkosított Beats és sima szöveges syslog adatokat is képesek vagyunk fogadni és feldolgozni. Az eszközt különböző célokra használhatjuk: adatokat kérhetünk, küldhetünk, transzformálhatunk, megjeleníthetünk vagy adatbázisba tölthetünk.

Az SSH, vagyis a Secure Shell protokoll, titkosított kapcsolatokat hoz létre két rendszer között. Az SSH lehetővé teszi az adminisztrátorok és automatizált folyamatok számára, hogy távoli terminál munkameneteket nyissanak, fájlokat másoljanak, vagy biztonságos alagútkapcsolatokat építsenek ki nem megbízható kapcsolatokkal rendelkező hálózatok között. Az SSH az aszimmetrikus kulcspárok segítségével kommunikál, és bár hasonlóan működik a TLS-hez, nem igényel tanúsítványokat és hitelesítő hatóságokat (CA-kat).

A távoli rendszerek adminisztrálásához, mint például az Ansible (amelyet az ezt követő fejezetekben részletesen bemutatunk), az SSH alapvető eszközként szolgál. Az SSH ideális megoldás lehet adatcsatornák titkosításához olyan programok esetén, amelyek nem rendelkeznek beépített titkosítással, vagy távoli hálózatok közötti adatátvitelhez. Az SSH alagútkapcsolatokkal bármilyen távoli IP-címre és portra irányíthatjuk az adatokat, biztonságosan védve az információkat.

A SSH alapú alagútkapcsolatok két típusra bonthatók: előre irányított alagútkapcsolat és visszafelé irányított alagútkapcsolat. Az előre irányított alagútkapcsolat egy helyi portot kapcsol össze egy távoli IP-címhez és porthoz, így minden, a helyi porton keresztül érkező adat a távoli végpontra kerül továbbításra. A visszafelé irányított alagútkapcsolat a távoli végponthoz csatlakozik, majd lehetővé teszi, hogy távoli szolgáltatások adatokat küldjenek vissza a csatornán keresztül az eredeti gazdagéphez.

Mindezek az eszközök segítenek abban, hogy a távoli rendszerek közötti adatátvitel titkosított és biztonságos módon történjen, még akkor is, ha a TLS használata nem lehetséges vagy nem támogatott.

Az SSH beállításához szükséges a megfelelő szoftverek telepítése. Az OpenSSH telepítése az alábbi parancsokkal történhet Ubuntu rendszerre:

bash
$ sudo apt install openssh-server
$ sudo ufw allow ssh $ sudo systemctl restart ssh

Red Hat Enterprise Linux (RHEL), Rocky Linux és CentOS rendszerek esetén az SSH szolgáltatás neve sshd, nem pedig ssh, és az alábbi parancsokat kell futtatni:

bash
$ sudo dnf install openssh-server $ sudo firewall-cmd --zone=public --add-service=ssh --permanent $ sudo firewall-cmd --reload $ sudo systemctl restart sshd

Miután az OpenSSH telepítése megtörtént, a rendszer képes fogadni a távoli felhasználók bejelentkezését felhasználónév és jelszó megadásával. Az SSH kulcsok létrehozása lehetővé teszi a felhasználók számára, hogy jelszó megadása nélkül csatlakozzanak a rendszerhez. Az SSH kulcspárok biztosítják a brute-force támadások elleni védelmet, és javítják a felhasználói élményt. A kulcspárok létrehozásakor 4096 bites kulcsokat ajánlott generálni:

bash
$ ssh-keygen -b 4096 -f ~/.ssh/j_id_rsa

A rendszer ezután jelszót kér a kulcs védelme érdekében, amit érdemes beállítani, mivel így a kulcs biztonságosabbá válik. Miután a kulcs létrejött, indítsuk el az SSH ügynököt, amely a kulcsokat memóriában tárolja, így nem szükséges minden bejelentkezéskor újra megadni a jelszót:

bash
$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/j_id_rsa

Az SSH konfigurációs fájlok használatával könnyedén kezelhetjük a különböző kulcsokat és kapcsolódási beállításokat, például portokat, felhasználóneveket, és egyéb paramétereket. Az SSH globális konfigurációs fájlja a /etc/ssh/ssh_config vagy /etc/sshd/sshd_config elérési úton található, míg a felhasználói konfigurációk az egyes felhasználók ~/.ssh/config fájljaiban tárolódnak. A konfigurációs fájlok segítenek abban, hogy ne kelljen mindig manuálisan beállítani a kulcsokat, portokat és egyéb paramétereket, hanem ezek automatikusan betöltődjenek a bejelentkezéskor.

Az SSH kulcsok terjesztésére a ssh-copy-id parancs használható, amely a nyilvános kulcsot a távoli szerverre másolja:

bash
$ ssh-copy-id -i ~/.ssh/j_id_rsa.pub [email protected]

Miután a kulcs sikeresen átmásolásra került, a távoli szerver már képes fogadni az SSH kapcsolódásokat anélkül, hogy minden alkalommal jelszót kellene megadni.

A biztonságos adatátvitel biztosításának fontos része az SSH kulcsok és konfigurációk megfelelő kezelése. A kulcsok, konfigurációk és alagútkapcsolatok helyes használata segít abban, hogy a rendszer és a rajta keresztül küldött adatok védve legyenek mindenféle külső fenyegetéssel szemben.

Hogyan kezeljük a fenyegetettségi intelligenciát Redis és Logstash segítségével?

A fenyegetettségi intelligencia kezelésében kulcsszerepet játszanak a hatékony adatkezelési és -szinkronizálási módszerek. Ezen belül különösen fontos a Redis leader-follower modell alkalmazása, amely lehetővé teszi a kulcs-érték párok hatékony tárolását és elérését a kibővített biztonsági és titkosítási környezetekben. A Redis és Logstash integrációja pedig egy új szintre emeli az ilyen típusú adatkezelés automatizálását és skálázhatóságát, különösen akkor, amikor az adatok különböző forrásokból származnak, és valós idejű elemzést igényelnek.

A Redis-leader-follower modell egyik hátránya, hogy ha a leader adatbázis valamilyen okból törlődik vagy kiürül, az összes követő (follower) is elveszíti az összes tárolt kulcsot. Ez azonban általában csak adminisztrátori hiba következményeként fordul elő. Fontos megjegyezni, hogy a Logstash instance, amely a Redis kulcsokat beállítja, felelős azok továbbításáért az Elasticsearch vagy más adatbázisok számára is, így az adatoknak mindig biztosított a biztonsági mentése.

A Logstash nem rendelkezik beépített szűrővel a Redis kezelésére, de mivel rendelkezik Ruby szűrővel, saját Redis szűrőt hozhatunk létre, amely képes a kulcs-érték párok beírására a Redis adatbázisba, valamint a valós idejű adatokat a gyorsítótár ellenőrzésére. Ezen kívül lehetőséget biztosít arra, hogy az elemzők saját indikátorokat küldjenek CSV fájlokban a Redis-be, így ha a gyorsítótár kiürül, könnyedén újra feltölthetjük azt, vagy közvetlenül a kiberbiztonsági nyomozások során felfedezett új indikátorokat adhatunk hozzá a meglévő adatrendszereinkhez a további gazdagítás érdekében.

A fenyegetettségi intelligencia csomópont létrehozása a következő lépésekkel kezdődik. Ez a csomópont Filebeatet futtat, amely időszakosan lekéri az indikátorokat egy előre konfigurált listából, és továbbítja azokat egy Logstash példányhoz ugyanazon a szerveren. A Logstash példány az indikátorok értékét feldolgozza, kulcs-érték párokat hoz létre, és tárolja őket a Redis leader példányában, miközben az Elasticsearch-be továbbítja azokat hosszú távú tárolás céljából.

A Redis konfigurációja a következő módon történik: A /etc/redis/redis.conf fájlban módosítani kell a következő beállításokat: a Redis-t úgy állítjuk be, hogy minden interfészről hallgasson, miközben SSL és TLS titkosítást alkalmazunk az adatvédelmi előírásoknak megfelelően. A konfigurációban szereplő tls-port 6379-es érték azt jelzi, hogy csak titkosított (TLS) adatforgalmat várunk a kapcsolat során. A supervisor és requirepass beállítások pedig biztosítják, hogy a Redis működése biztonságos és hozzáférhető legyen a megfelelő felhasználók számára.

Miután a Redis konfigurációja befejeződött, folytathatjuk a Logstash beállítását. A Logstash felelős lesz az indikátorok fogadásáért, akár a Filebeat-től, akár egyéni elemzői feltöltésektől. Ezen indikátorok feldolgozása után a Logstash hozzáadja azokat a Redis leader gyorsítótárhoz, majd opcionálisan tárolja őket Elasticsearch-ben is. A Logstash tehát setterként működik, kulcs-érték párokat adva a Redis leader gyorsítótárhoz. Később a Logstash getterek ezekből az értékekből olvasnak és hasonlítanak össze az élő adatáramlásokkal.

A Logstash beállítása során a következő bemeneteket kell definiálni: az Elastic Agent és a Beats adatokat a 5044-es porton, valamint egyéni indikátorokat HTTP-n keresztül a 8080-as porton. Ezen bemenetek lehetővé teszik, hogy a rendszer külön kezelje a Filebeat és Elastic Agent által gyűjtött indikátorokat, valamint a saját egyedi indikátorokat, amelyeket az elemzők CSV fájlokban tölthetnek fel.

Miután az adatokat fogadtuk, a következő lépés az adatok előfeldolgozása. A Filebeat szolgáltatásból érkező fenyegetettségi intelligencia modul az indikátorokat JSON formátumban tárolja, így azokat egy Ruby szűrő segítségével feldolgozzuk, és a megfelelő mezőkbe helyezzük. Ezáltal minden szükséges információ elérhetővé válik a további adatfeldolgozáshoz és elemzéshez.

A rendszer biztonsági szempontból is nagy figyelmet igényel, mivel a Redis és Logstash használata mellett elengedhetetlen, hogy az adatforgalom titkosított és megfelelően ellenőrzött legyen. A titkosítási kulcsok, tanúsítványok és a hozzáférési jogosultságok mind kulcsszerepet játszanak abban, hogy a rendszer biztonságosan és hatékonyan működjön, miközben minden adatvédelmi előírásnak is megfeleljen.

A fenyegetettségi intelligenciát kezelő rendszerek esetében fontos figyelembe venni, hogy az adatok folyamatos frissítése és a gyors reagálás alapvető. Az adatok szinkronizálása és tárolása nemcsak a biztonságot, hanem az operációs hatékonyságot is javítja, miközben lehetőséget ad a gyors és pontos válaszadásra a kibertámadásokra. Az ilyen rendszerek folyamatos fejlesztése és finomhangolása elengedhetetlen ahhoz, hogy naprakész információk álljanak rendelkezésre a legújabb fenyegetések kezelése érdekében.