13 bevált gyakorlat a mikroszolgáltatások biztonságossá tételéhez

A Microservices architektúra rugalmasságot, méretezhetőséget és szoftverösszetevők módosításának, hozzáadásának vagy eltávolításának lehetőségét biztosítja anélkül, hogy az alkalmazás más részeit érintené.

A rövidebb szoftverfejlesztési ciklusok, a kisebb csapatok és a rugalmas programozási nyelvi lehetőségek mellett lehetővé teszi bizonyos funkciók vagy szolgáltatások méretezését vagy hibaelhárítását anélkül, hogy zavarná a többi összetevőt.

Általában a mikroszolgáltatások lehetővé teszik a nagy monogám alkalmazások felosztását egymástól függetlenül telepíthető külön szolgáltatásokra. Ezek a kisebb független szolgáltatások azonban megnövelik az összetevők számát, ebből fakadóan bonyolult és bonyolult a biztosításuk.

Monolit-vs-microservices architektúra Kép Piros kalap

Általában egy tipikus mikroszolgáltatás-telepítés a hardver, a szolgáltatás vagy az alkalmazás, a kommunikáció, a felhő, a virtualizáció és a hangszerelési rétegekkel rendelkezik. Ezek mindegyikének sajátos biztonsági követelményei, vezérlői és kihívásai vannak.

A mikroszolgáltatásokhoz kapcsolódó biztonsági kihívások

A mikroszolgáltatások általában széles körben elosztott rendszerek összetett hozzáférési szabályokkal, nagyobb forgalommal és nagyobb támadási felülettel. Ezenkívül a legtöbb mikroszolgáltatási felhő felhőkörnyezeteken fut, amelyek szintén eltérő biztonsági konfigurációkkal és vezérlőkkel rendelkeznek.

Az API-k, portok és összetevők nagy száma miatt előfordulhat, hogy a hagyományos tűzfalak nem nyújtanak megfelelő biztonságot. Ezek a problémák sebezhetőbbé teszik a mikroszolgáltatások telepítését a különféle kiberfenyegetésekkel szemben, mint például a középső ember, az injekciós támadások, a helyek közötti szkriptelés, a DDoS és mások.

A hálózati biztonság egy másik kihívás a mikroszolgáltatásokkal kapcsolatban. Különösen az identitás és a hozzáférés-szabályozás válik bonyolultabbá. Az egyéb sérülékenységek közé tartozik a nem biztonságos kód és a szolgáltatáskereső rendszerek hibái.

Bár a mikroszolgáltatások biztonságossá tétele nehezebb, mint a monolitikus alkalmazásoké, hatékonyan megvédheti őket egy jó stratégia kialakításával és a legjobb gyakorlatok követésével.

Ideális esetben az architektúra elosztott megközelítést igényel, amelynek le kell fednie az összes különböző összetevőt.

A tipikus kezelési területek közé tartozik

  • Alkalmazások, mikroszolgáltatások és felhasználók védelme
  • Az identitás- és hozzáférés-kezelés biztosítása
  • Adatok védelme
  • Növelje a szolgáltatások közötti kommunikáció biztonságát
  • A mikroszolgáltatások és biztonsági rendszerek felügyelete

A mikroszolgáltatások biztosításának legjobb gyakorlatai

Az egyik legjobb stratégia a legjobb gyakorlatok, eszközök és vezérlők kombinációjának alkalmazása a teljes ökoszisztéma védelme érdekében. A tényleges megközelítés a szolgáltatások típusától, az alkalmazásoktól, a felhasználóktól, a környezeti és egyéb tényezőktől függően eltérő lehet.

Ha úgy dönt, hogy mikroszolgáltatásokat használ, gondoskodnia kell arról, hogy megfeleljen a szolgáltatások, kapcsolatok és adatok összes biztonsági követelményének.

Nézzünk most meg néhány hatékony mikroszolgáltatási biztonsági gyakorlatot.

#1. Építsen biztonságot a kezdetektől fogva 👮

Tegye a biztonságot a fejlesztési ciklus részévé. Ideális esetben már a kezdetektől integrálja a biztonságot a mikroszolgáltatások fejlesztésébe és telepítésébe. A biztonság ilyen módon történő kezelése egyszerű, hatékony és olcsóbb, mint a szoftverfejlesztés befejezéséhez közeledő hozzáadására várni.

  15 legjobb virtuális postafiók ingyenes szolgáltatás

#2. Használja a Depment Mechanism védelmet

A mélységben való védelem (DiP) egy olyan technika, amelyben több biztonsági réteget alkalmaz a szolgáltatásokra és adatokra. A gyakorlat megnehezíti a támadók számára a több rétegen való behatolást, így erős biztonságot nyújt a szolgáltatások és az adatok számára.

Ellentétben a peremvédelmi megoldásokkal, például a tűzfalakkal, a mélyreható védelem koncepciója más. Olyan eszközök kombinációjára támaszkodik, mint például a víruskereső, a tűzfal, a javításkezelés, a levélszemétszűrő szoftver és mások, hogy több biztonsági réteget biztosítson a rendszerben.

Mélyreható védelem, többrétegű biztonsági kép: Imperva

Ezzel a megközelítéssel először azonosítani kell az érzékeny szolgáltatásokat, majd alkalmazni kell körülöttük a megfelelő biztonsági rétegeket.

#3. Telepítse a biztonságot konténer 📦 szinten

A mikroszolgáltatások leggyakrabban konténertechnológiára támaszkodnak. Mint ilyen, a konténerek belső és külső rögzítése a támadási felület és a kockázatok csökkentésének egyik módja. Ideális esetben a legkevesebb kiváltságos biztonsági elv megcélzása bevált gyakorlat, és stratégiák kombinációját igényli, beleértve, de nem kizárólagosan;

  • Az engedély korlátozása a szükséges minimumra
  • Kerülje el a szolgáltatások és bármi más futtatását a sudo vagy a privilegizált fiókok használatával.
  • Korlátozza vagy szabályozza a rendelkezésre álló erőforrásokhoz való hozzáférést és felhasználást. Például az operációs rendszer erőforrásaihoz való hozzáférés korlátozása a tárolók által segít megelőzni az adatok ellopását vagy kompromittálását.
  • Ne tároljon titkokat a konténerlemezen.
  • Használjon megfelelő szabályokat az erőforrásokhoz való hozzáférés elkülönítésére.

Szintén létfontosságú annak biztosítása, hogy a tárolóképek ne legyenek sebezhető pontokban vagy biztonsági problémákban. A konténerek rendszeres biztonsági és sebezhetőségi vizsgálata segít a kockázatok azonosításában.

A tipikus képszkennelő eszközök közé tartozik Clair, Horgonyés több.

#4. Telepítsen többtényezős hitelesítést 🔒

A többtényezős hitelesítés engedélyezése növeli a kezelőfelület biztonságát.

A hozzáférést biztosító felhasználóknak meg kell adniuk felhasználónevüket és jelszavukat egy másik igazolási mód mellett, például a telefonjukra vagy egy megadott e-mail címre küldött kóddal. A technika megnehezíti a támadók számára, akik esetleg lopott vagy feltört hitelesítési adatokat használnak, hogy hozzáférjenek a mikroszolgáltatásokhoz, mivel nem tudják biztosítani a második hitelesítést.

#5. Felhasználói azonosító és hozzáférési token használata

A mikroszolgáltatások telepítése során számos alkalmazás és szolgáltatás biztonságos engedélyezést és hozzáférés-szabályozást igényel. Az olyan engedélyezési keretrendszer, mint az OAuth 2.0 és az OpenID, lehetővé teszi a tokenek biztonságos feldolgozását, ezáltal védi a mikroszolgáltatásokat. Következésképpen ez lehetővé teszi a harmadik féltől származó alkalmazások számára, hogy hozzáférjenek a felhasználók egyéb szolgáltatásaihoz vagy adataihoz.

Egy tipikus telepítéskor a fő alkalmazás felszólítja a felhasználót, hogy engedélyezze a harmadik féltől származó szolgáltatást. Ennek elfogadása után az alkalmazás létrehoz egy hozzáférési tokent a munkamenethez.

Különösen az OAuth az egyik leghatékonyabb stratégia a felhasználói identitás és a hozzáférés szabályozására. Bár számos más engedélyezési protokoll létezik, és saját maga is elkészíthető, a legjobb gyakorlat a OAuth mivel szabványosabb, stabilabb és széles körben elfogadott.

#6. Hozzon létre egy API-átjárót

Általában a mikroszolgáltatások több komponensből állnak, amelyek különböző hálózatokon vannak elosztva, és a rendszerek és kliensek széles skálájáról elérhetők. A mikroszolgáltatások nyilvánosságra hozatala növeli a sebezhetőségeket és a biztonsági kockázatokat. Megvédésük egyik módja egyetlen és biztonságos belépési pont létrehozása, amely segít a külső rendszerek és ügyfelek minden hozzáférésének központosításában.

  Kiterjesztett valóság (AR): Trendek, keretrendszerek és eszközök

Ennek elérése érdekében telepítsen egy API-átjárót, amely minden bejövő kérést biztonsági problémákat keres, mielőtt azokat a megfelelő mikroszolgáltatásokhoz irányítaná. Az API-átjáró az ügyfélalkalmazások és a mikroszolgáltatások között helyezkedik el. Ezután korlátozza a mikroszolgáltatások nyilvánosságra hozatalát, miközben további kéréskezelési funkciókat biztosít, például hitelesítést, SSL-lezárást, protokollfordítást, megfigyelést, kérés-útválasztást, gyorsítótárazást stb.

Ezzel a megközelítéssel az API átjáró az összes külső szolgáltatást a mikroszolgáltatásokhoz irányítja, miközben támogatja a mélyreható védelem elvét is.

Microservices API átjáró képe Élőkönyv

A tipikus API-átjárók közé tartozik NGINX, Kong, Tyk, Nagykövet, AWS API átjáróés több.

Ha többet szeretne megtudni az API biztonságáról, tekintse meg a Miért és hogyan biztonságos API-végpont című útmutatónkat.

#7. Profil API-k a telepítési zóna alapján

Szerepalapú korlátozásokat valósítson meg annak biztosításával, hogy a felhasználók csak a szükséges API-khoz és szolgáltatásokhoz férhessenek hozzá. Mivel a legtöbb rosszindulatú szoftver gyakran több ember számára teszi elérhetővé a szolgáltatást, a hozzáférés csak jogosult felhasználókra való korlátozása csökkenti a kockázatokat. Az expozíció csökkentésének egyik módja az API-k címkézése azon felhasználók alapján, akiknek hozzá kell férniük. Általában az API-k lehetnek;

  • Ethernet API-k – Az adatközponton kívüli külső világnak kitett szolgáltatásokhoz.
  • Corporate Zone API-k – ezek a belső privát forgalomra szolgálnak
  • DMZ API-k – az internetről származó forgalom kezelésére
  • Hibrid zóna API-k – adatközpontok telepítéséhez

#8. Biztosítsa a szolgáltatások közötti kommunikációt

A hatékony gyakorlat magában foglalja a kérések hitelesítését és engedélyezését, amikor két mikroszolgáltatás kommunikál.

Általában három fő technika használható a szolgálatok közötti kommunikáció biztosítására. Ezek a Trust the network, a JSON Web Token (JWT) és a Mutual Transport Layer Security (mTLS vagy Mutual TLS).

A szolgálatok közötti kommunikáció biztosítása a JWT Image segítségével Élőkönyv

A három közül a legnépszerűbb az mTLS. Ebben a megközelítésben minden mikroszolgáltatásnak nyilvános/privát kulcspárt kell hordoznia. Az ügyfél mikroszolgáltatás ezután a kulcspár segítségével hitelesíti magát a fogadó mikroszolgáltatáshoz az mTLS-en keresztül.

A hitelesítés során minden mikroszolgáltatás generál egy tanúsítványt. Ezt követően mindegyik mikroszolgáltatás a másik tanúsítványát fogja használni a hitelesítéshez.

Míg a TLS integritást és bizalmas kezelést biztosít az átvitt adatokhoz, lehetővé teszi az ügyfél számára a mikroszolgáltatás azonosítását is. A kliens mikroszolgáltatás általában ismeri a másik mikroszolgáltatást. Mivel azonban a TLS egyirányú, a fogadó mikroszolgáltatás nem tudja ellenőrizni az ügyfél mikroszolgáltatását, és a támadók kihasználhatják ezt a hibát. Másrészt az mTLS olyan eszközt biztosít, amelyben mindegyik mikroszolgáltatás azonosítani tudja a másikat.

#9. Díjkorlát 🚏 ügyfélforgalom

A külső forgalom korlátozása megakadályozza az olyan problémákat, mint a szolgáltatásmegtagadási (DoS) támadások, valamint az olyan esetek, amikor egyes ügyfelek igénybe veszik az alkalmazás sávszélességének nagy részét. Az egyik megközelítés különböző szabályok alkalmazása, amelyek nyomon követhetik és szabályozhatják az ügyféltől küldött vagy fogadott forgalom sebességét az IP, idő stb. alapján.

  Hogyan lehet felnagyítani egy fénykép egy részét iPhone-on és iPaden

Állítsa be a szolgáltatásokat úgy, hogy lassítsanak, ha több sikertelen bejelentkezési kísérletet észlelnek az API-kba vagy bármilyen más gyanús tevékenységet.

A lassú rendszer elriasztaná a támadókat, és valószínűleg feladná a szolgáltatások elérésére irányuló kísérletet. Besorolhat korlátot az API-átjáró segítségével, a kódon keresztül vagy bármilyen más technikával. Általában a legtöbb SaaS-környezet API-sebesség-korlátozással rendelkezik, hogy minimalizálja a felhasználók általi visszaéléseket és a támadásokat.

#10. Használjon hangszerelési menedzsereket

A hangszerelési menedzserek lehetővé teszik a konfigurációs, koordinációs és egyéb mikroszolgáltatás-kezelési feladatok automatizálását a biztonság fokozása mellett. Az eszközök általában lehetővé teszik több tároló kezelését, a metaadatokhoz való hozzáférés korlátozását, a munkaterhelések elkülönítését, a naplók gyűjtését stb.

Egyes hangszerelési eszközök további funkciókkal is rendelkeznek, amelyek lehetővé teszik a fejlesztők számára érzékeny információk, például SSL-tanúsítványok, titkosítási kulcsok, jelszavak és azonosítótoken tárolását és megosztását.

A hatékony mikroszolgáltatások hangszerelésének két általánosan használt módszere;

  • A hangszerelés kódolása mikroszolgáltatásként
  • Az API-átjárók használata a hangszerelési réteg biztosítására

Az API-átjárón keresztül történő összehangolás nem javasolt a szolgáltatások méretezésére vonatkozó kihívások miatt.

Mikroszolgáltatás hangszerelési réteg – Kép Globallogic

A tipikus hangszerelés-kezelési eszközök közé tartozik Kubernetes, Istio, Azure Kubernetes szolgáltatás (AKS)stb.

Ha többet szeretne megtudni, fedezze fel a Container Orchestration for DeOps oldalt.

#11. Figyelje az összes rendszert és szolgáltatást

Mivel a mikroszolgáltatások elosztott rendszerekre támaszkodnak, megbízható és hatékony felügyeleti stratégiával kell rendelkeznie minden egyes összetevő számára.

A folyamatos megfigyelés lehetővé teszi a biztonsági kockázatok időben történő észlelését és kezelését. Ennek érdekében a mikroszolgáltatások felügyeleti megoldásainak széles skálája létezik, beleértve Prométheusz, Statsd, InfluxDB, Logstashstb.

Monitoring a mikroszolgáltatási architektúrán belül

Használja a megfelelő eszközöket a belső rendszerek és szolgáltatások figyelésére. Néhány bevált gyakorlat:

  • A naplózás engedélyezése az alkalmazási rétegben. tudsz Splunk, Graphana, ELK veremés egyéb eszközök, amelyek naplókat gyűjtenek az alkalmazás, a tároló, a hálózat és az infrastruktúra szintjén.
  • Figyelje a használati mutatókat
  • Használja az olyan mutatók trendjeit, mint a CPU, a memória, a válaszidő, a hibák, az értesítések és egyebek, hogy észlelje a meglévő vagy potenciális támadásra utaló szokatlan tevékenységeket.
  • Vizsgálja meg a naplókat olyan területeken, mint például a bejövő ügyfélkérelmek, adatbázisrekordok, tárolók és egyebek az inkonzisztenciák vagy szokatlan tevékenységek azonosítása érdekében.

#12. Automatizálja a biztonsági tevékenységeket

Automatizálja a biztonsági folyamatokat, például a frissítések telepítését, a sebezhetőségek vizsgálatát, a megfigyelést, a házirendek betartatását és egyéb tevékenységeket. Ezenkívül ellenőrizze a frissítéseket, hogy megbizonyosodjon arról, hogy biztonságosak, és nem vezetnek be új sebezhetőséget.

A frissítések után a biztonsági szoftvernek ideális esetben tesztelnie kell az összes tárolót és mikroszolgáltatást, hogy kiderüljön, előfordulhat-e korábban előfordult sebezhetőség vagy biztonsági probléma.

#13. Védje 🛡️ adatait mindenkor

Védje az adatokat átvitel közben és nyugalmi állapotban. Ideális esetben kényszerítse ki a HTTPS használatát az összes kommunikációhoz, az átviteli adatok biztonsága érdekében, és titkosítsa az összes nyugalmi érzékeny adatot. Kerülje a kódon kívüli egyszerű szöveges jelszavak, kulcsok, hitelesítő adatok és érzékeny adatok továbbítását és tárolását.

A legjobb stratégia az, ha szabványos technológiákat használunk az összes érzékeny adat mielőbbi titkosítására. Ezenkívül a lehető legkésőbb fejtse vissza az adatokat az expozíció csökkentése érdekében.

Következtetés

A mikroszolgáltatások elosztott összetevőkre támaszkodnak, hogy olyan előnyöket biztosítsanak, mint például a nagyobb rugalmasság és a telepítési lehetőségek. A mikroszolgáltatások használatakor azonban a szervezeteknek a belső biztonsági szabályzatokat és stratégiákat a felhőalapúbb és elosztottabb megközelítés felé kell igazítaniuk.

Ideális esetben a támadási felület csökkentése, a mikroszolgáltatási környezet, az API-k, az alkalmazások és az adatok védelme.