Trace Id is missing
Ugrás a tartalomtörzsre
Microsoft Biztonság

Mi az a DevSecOps?

Megtudhatja, hogyan integrálhat biztonsági eljárásokat a szoftverfejlesztési életciklus minden fázisába a többfelhős környezetben.

DevSecOps definiálva

A DevSecOps, ami a fejlesztés, a biztonság és az üzemeltetés rövidítése, egy olyan keretrendszer, amely a biztonságot a szoftverfejlesztési életciklus minden fázisába integrálja. A szervezetek azért alkalmazzák ezt a megközelítést, hogy csökkentsék egy biztonsági réseket tartalmazó kód kiadásának kockázatát. Az együttműködés, az automatizálás és a letisztult folyamatok révén a csapatok megosztják a biztonsággal kapcsolatos felelősséget, ahelyett, hogy a végső pillanatra halasztanák, amikor a problémák kezelése sokkal nehezebb és költségesebb lehet. A DevSecOps egy többfelhős biztonsági stratégia kritikus összetevője.

DevSecOps és DevOps

A hagyományos szoftverfejlesztés során a projektek a tervezés, a kialakítás, a fejlesztés, az integráció és a tesztelés különböző fázisaira oszlanak, amelyek több hónapon vagy akár éveken keresztül egymás után zajlanak. Bár ez a megközelítés nagyon alapos, sok szervezet úgy találta, hogy túl lassú, ami megnehezíti az ügyfelek folyamatos termékfejlesztéssel kapcsolatos elvárásainak teljesítését. Ráadásul a biztonságot általában csak a legvégén építik be, ami a vállalatokat a biztonsági incidens kockázatának teszi ki.

A versenyképesség megőrzése érdekében sok vállalat olyan DevOps-modellt alkalmaz, amely a kisebb, kiváló minőségű kódcsomagok szállítását helyezi előtérbe a hosszabb ideig tartó, funkciógazdag projektek helyett. Ebben a keretrendszerben a szoftverfejlesztési és üzemeltetési csapatok együttműködnek annak érdekében, hogy a tesztelést és az integrációt a teljes folyamatba beépítsék. Az automatizálás, a standardizált folyamatok és az együttműködés révén a csapatok gyorsan, a minőség feláldozása nélkül dolgozhatnak.

A DevSecOps a DevOps kiterjesztése, amely a biztonságot a folyamat minden aspektusába beépíti. A cél a biztonsági problémák kezelése a projekt kezdetétől fogva. Ebben a keretrendszerben nemcsak a minőségbiztosításért és a kódintegrációért, hanem a biztonságért is felelősséget vállal az egész csapat. A gyakorlatban ez azt jelenti, hogy a csapatok a tervezés során megvitatják a biztonsági szempontokat, és már a fejlesztési környezetben elkezdik a biztonsági problémákkal kapcsolatos tesztelést, ahelyett, hogy a projekt végéig várnának. Ennek a megközelítésnek egy másik neve a balra tolódó biztonság.

Miért fontos a DevSecOps?

A támadók számos módszerrel férhetnek hozzá a szervezet adataihoz és eszközeihez, de gyakori taktika a szoftveres biztonsági rések kihasználása. Az ilyen típusú incidensek költségesek, időigényesek, és a súlyosságuktól függően kárt tehetnek a vállalat hírnevében. A DevSecOps keretrendszer csökkenti a szoftver helytelen konfigurációkkal és más Biztonsági résekkel kapcsolatos további információkbiztonsági résekkel történő üzembe helyezésének kockázatát, amelyeket a rosszindulatú szereplők kihasználhatnak.

A DevSecOps fő összetevői

A sikeres DevSecOps folyamat a következő összetevőket tartalmazza:

  • Folyamatos integráció

    A folyamatos integrációval a fejlesztők naponta többször is véglegesítik a kódot egy központi adattárban. Ezután a kód automatikusan integrálódik és tesztelésre kerül. Ez a megközelítés lehetővé teszi a csapatok számára, hogy az integrációs problémákat és hibákat a folyamat korai szakaszában észleljék, és ne csak a folyamat végén foglalkozzanak velük, amikor már több megoldandó probléma is felmerülhet.

  • Folyamatos teljesítés

    A folyamatos teljesítés a folyamatos integrációra épül, és automatizálja a kód buildkörnyezetből átmeneti környezetbe történő áthelyezésének folyamatát. Ha már előkészítési állapotba került, az egységteszt mellett a szoftvert automatikusan tesztelik, hogy megbizonyosodjanak arról, hogy a felhasználói felület működik, a kód sikeresen integrálódott, az API-k megbízhatóak, és hogy a szoftver képes kezelni a várható forgalommennyiségeket. Ennek a megközelítésnek az a célja, hogy következetesen olyan éles üzemre kész kódot biztosítson, amely értéket nyújt az ügyfeleknek.

  • Folyamatos biztonság

    A biztonság beépítése a teljes szoftverfejlesztési életciklusba a DevSecOps kulcsfontosságú eleme. Ez magában foglalja a fenyegetések modellezését a folyamat korai szakaszában, valamint az automatizált biztonsági tesztelést a teljes életciklus során, kezdve a fejlesztők saját környezetével. A szoftverek korai és gyakori, alapos biztonsági tesztelésével a szervezetek hatékonyan és minimális problémával szállíthatják a szoftvert.

  • Kommunikáció és együttműködés

    A DevSecOps nagymértékben függ az egyének és a csapatok szoros együttműködésétől. A folyamatos integráció megköveteli, hogy az emberek együttműködjenek a kódban előforduló ütközések kezelésében, és a csapatoknak hatékonyan kell kommunikálniuk, hogy azonos célokat képviselhessenek.

A DevSecOps implementálása

A biztonság hozzáadása a DevOps-folyamathoz gondos tervezést igényel. Kezdje lassan, olyan folyamatokkal, amelyek a legkevesebb súrlódást okozzák a munkatársak körében, és a legnagyobb biztonsági előnyökkel járnak. Íme néhány módja annak, hogy a biztonságot hozzáadjuk egy tipikus DevOps futamhoz.

  • Tervezés és fejlesztés

    A biztonság korai bevezetése a fejlesztési futamokba nem csak segít csökkenteni a későbbi biztonsági rések számát, de időt is megtakarít, mivel könnyebb a problémákat a kód megalkotása és integrálása előtt kezelni. A tervezés és fejlesztés során használja a fenyegetések modellezését az alkalmazást fenyegető potenciális veszélyforrások azonosítására és csökkentésére. Ez segít abban, hogy már a legelején beépítse a biztonságot az alkalmazásba. A biztonsági problémák feltárása érdekében, mielőtt a kódot a megosztott adattárba véglegesítenék, alkalmazzon automatikus ellenőrzéseket, például az integrált fejlesztőkörnyezet biztonsági beépülő moduljait, amelyek azonnali visszajelzést adnak a fejlesztőknek, ha az általuk írt kódban potenciális biztonsági kockázat van. A kód felülvizsgálata során kérjen fel egy biztonsági szakértelemmel rendelkező személyt, aki javaslatokat fogalmaz meg a javításokra vonatkozóan.

  • Kód véglegesítése

    A sikeres DevSecOps folyamat egyik kulcsa a folyamatos integráció. A fejlesztők általában naponta több alkalommal véglegesítik a kódot egy központi adattárban, hogy az integrációs problémákat időben észleljék. Ehhez a fázishoz fontos automatizált biztonsági ellenőrzéseket hozzáadni. Ez magában foglalhatja harmadik féltől származó kódárak és függőségek vizsgálatát, az egységtesztelést és a statikus alkalmazásbiztonsági tesztelést. Emellett fontos, hogy szerepköralapú hozzáférés-vezérlést helyezzen üzembe, hogy megvédje a folyamatos integrációs és teljesítési infrastruktúrát a rosszindulatú kód futtatására vagy a hitelesítő adatok ellopására törekvő támadóktól.

  • Fejlesztés és tesztelés

    Az automatizált biztonsági szkriptek tesztkörnyezetben való futtatása segít felderíteni a korábban nem észlelt lehetséges problémákat. Az ebben a fázisban futtatható biztonsági tesztek közé tartozik a dinamikus alkalmazásbiztonsági tesztelés, az infrastruktúra vizsgálata, a tárolóvizsgálat, a felhőkonfiguráció ellenőrzése és a biztonsági elfogadás tesztelése.

  • Éles környezet

    Miután az alkalmazást üzembe helyezték, egyes szervezetek behatolásteszteket végeznek, hogy megpróbálják megtalálni a gyenge pontokat az éles környezetben. A behatolástesztelés során a felhasználók a támadók gondolkodásmódját alkalmazzák, és módszereket keresnek az alkalmazás feltörésére.

  • Művelet

    Még a legjobb DevSecOps folyamat sem fog mindent észlelni, ezért kritikus fontosságú az alkalmazások folyamatos ellenőrzése a biztonsági rések és fenyegetések szempontjából. Az elemzési adatok segítségével értékelheti, hogy javul-e a biztonsági helyzet, és kiemelheti az optimalizálandó területeket.

DevSecOps eszközök és technológiák

A biztonsági eszközök kiválasztásakor fontos, hogy olyanokat válasszon, amelyek jól működnek a jelenlegi DevOps technológiával. Így könnyebben beépítheti a biztonságot a teljes folyamatba. Az alábbiakban felsorolunk néhány eszközt, amelyekre szüksége lehet:

  • Infrastruktúra mint kódvizsgálat

    A hatékonyság növelése érdekében a DevSecOps-csapatok jellemzően olyan nyílt forráskódú eszközöket használnak, mint a Terraform, hogy az infrastruktúrát, például a hálózatokat, virtuális gépeket és terheléselosztókat ne manuálisan, hanem kódon keresztül építhessék ki és kezelhessék. A Terraform segít biztosítani, hogy az infrastruktúra beállítása és frissítése több száz vagy több ezer kiszolgálón következetesen történjen. Annak érdekében, hogy csökkentsék a hibás konfigurációk éles környezetben történő üzembe helyezésének kockázatát, az infrastruktúra kódként történő vizsgálatát végző eszközök automatikusan ellenőrzik az infrastruktúrát a kód szintjén, hogy megfelel-e a biztonsági szabályzatoknak és standardoknak.

  • Statikus alkalmazásbiztonsági tesztelés

    A DevSecOps fejlesztők még a kód összeállítása előtt elkezdik tesztelni egyéni kódjukat biztonsági rések szempontjából. Ez segít nekik a problémák kijavításában anélkül, hogy befolyásolná a buildet. A statikus alkalmazásbiztonsági tesztelési eszközök automatikus ellenőrzésekkel és valós idejű visszajelzésekkel könnyítik meg ezt a folyamatot. Számos eszköz pontosan azonosítja, hogy melyik kód kockázatos, és ajánlott javításokat kínál.

  • Szoftverösszetétel-elemzés

    A csapatok többek között harmadik féltől származó beépülő modulok és keretrendszerek használatával hatékonyabban építhetnek alkalmazásokat és funkciókat. Ezek az előre elkészített eszközök időt takarítanak meg, de kockázatokat is jelenthetnek, például a licenceléssel kapcsolatos problémákat, rosszul megírt kódot vagy biztonsági réseket. A szoftverösszetétel-elemző eszközök azonosítják a nyílt forráskódú összetevőket az alkalmazásokban, és értékelik azokat a jogvédett vagy ingyenes adatbázisokkal összehasonlítva, hogy felderítsék a licencjogok megsértését, valamint a biztonsági és minőségi problémákat.

  • Interaktív alkalmazásbiztonsági tesztelés

    A minőségbiztosítási tesztelés során vagy az alkalmazás használatakor az interaktív alkalmazásbiztonsági eszközök átvizsgálják a kódot, hogy megtalálják a biztonsági réseket, és jelentéseket készítenek, amelyek azonosítják, hogy a kódban hol található a probléma.

  • Dinamikus alkalmazásbiztonsági tesztelés

    A dinamikus alkalmazásbiztonsági tesztelés emulálja azokat a módszereket, amelyekkel a rosszindulatú szereplő támadhatja az alkalmazást. Ez a tesztelés az alkalmazás futtatása közben történik, és előre meghatározott használati eseteken alapul.

  • Tárolók vizsgálata

    A tárolókat széles körben használják a DevSecOpsban, mert segítenek a fejlesztőknek az önálló kódegységek egyszerű üzembe helyezésében. A tárolón belül egy tárolólemezkép található, amely tartalmazza a tároló folyamatait futtató kódot. Ezek a lemezképek azonban gyakran meglévő lemezképek felhasználásával készülnek, vagy nyilvános adattárakból származnak. Tárolóvizsgálati eszközök, tárolók vizsgálata és összevetése a nyilvános vagy saját fejlesztésű biztonságirés-adatbázisokkal a lehetséges biztonsági problémák felderítése érdekében.

DevSecOps ajánlott eljárások

A DevSecOps legalább annyira a kultúra átalakításáról szól, mint a folyamatokról és az eszközökről. Íme néhány ajánlott eljárás, amely segít abban, hogy a keretrendszer adoptálása a lehető legegyszerűbb legyen.

  • A kultúra átalakítása

    Ismerje fel, hogy az emberek nehezen tudnak változtatni a munkamódszerükön, és konfliktusok alakulhatnak ki. Az adoptáció elősegítése érdekében világosan közölje a szervezet céljait és elvárásait, biztosítson számos lehetőséget a nyílt párbeszédre, és számoljon azzal, hogy rugalmasnak kell lennie, amíg a csapatok megtalálják a számukra legmegfelelőbb eszközöket, folyamatokat és ütemezést.

  • Követelmények és metrikák meghatározása

    Hozzon létre egy minimális biztonsági alapszintet. Útmutatásért tekintse meg az iparági és jogszabályi követelményeket, vagy az Open Worldwide Application Security Project (OWASP) Top 10 webalkalmazásokat érintő kritikus kockázatát, valamint a SANS – A 25 leggyakoribb szoftverhibát. Miután meghatározta a követelményeket, határozza meg, hogy milyen metrikákat szeretne nyomon követni az előrehaladás ellenőrzése érdekében.

  • Kezdje kicsiben

    A biztonsági automatizálási eszközök számos lehetőséget kínálnak a kód problémáinak ellenőrzésére, de ha mindet bekapcsolja, különösen a DevSecOps bevezetésének korai szakaszában, az túlterhelheti a csapatot. Legyen körültekintő azzal kapcsolatban, hogy milyen eszközöket alkalmaz, és hány problémát keres.

  • Fenyegetésmodellezés végrehajtása

    Fejlesszen egy fenyegetésmodellezési folyamatot, amely lehet teljesen egyszerű vagy olyan részletes és technikai jellegű, amilyenre csak szüksége van. Ezzel a megközelítéssel valósághű biztonsági nézetet dokumentálhat az alkalmazásról, amely a következőket tartalmazza:

    • Hogyan élhetnek vissza a támadók az alkalmazás kialakításával.
    • A biztonsági rések javításának módja.
    • A különböző problémák prioritása.
  • Az automatizálás implementálása

    Az automatizálás kulcsfontosságú a DevSecOps folyamat minőségének és sebességének biztosításához. Ha a folyamatos integráció és a folyamatos kézbesítés életciklusának minden fázisába beágyazza az automatikus biztonsági vizsgálatokat, akkor anélkül javíthatja alkalmazásai biztonságát, hogy jelentősen lelassítaná a folyamatot.

  • Függőségek kezelése

    A fejlesztők többsége külső csomagokat és kódtárakat használ az alkalmazások hatékony létrehozásához. A probléma az, hogy e megoldások némelyikének lehetnek biztonságot veszélyeztető hibái, és a fejlesztők nem mindig ügyelnek arra, hogy naprakészen tartsák őket. A kockázat csökkentése érdekében győződjön meg arról, hogy az Ön által használt összetevők biztonsági kockázatok szempontjából ellenőrzöttek, és dolgozzon ki standardizált eljárást a frissítésükre.

  • Értékelés és fejlesztés

    Rendszeresen értékelheti, hogyan működik a folyamat, és szükség szerint módosíthatja, hogy a szervezet elérje a kitűzött célokat. A futam befejezését követő, vádaskodás nélküli utólagos vizsgálat segíthet feltárni a fejlődési lehetőségeket. Az elemzési adatok és a fenyegetésfelderítés is segíthetnek meghatározni, hogy vannak-e olyan biztonsági igények, amelyeket a jelenlegi megközelítés nem teljesít.

DevSecOps natív felhős alkalmazásokhoz

A Natív felhős alkalmazásoknatív felhős alkalmazásokat a felhő számára tervezték, és általában gyártósemlegesek, így egyik felhőből átvihetők a másikba. A nagyfokú skálázhatóság és rugalmasság érdekében a fejlesztőcsapatok jellemzően mikroszolgáltatások, tárolók és automatizálás segítségével építik őket, így ideálisak a DevSecOps folyamathoz. A folyamatos biztonság, a folyamatos integráció és a folyamatos teljesítés beépítése a natív felhős alkalmazások fejlesztési folyamatába lehetővé teszi a skálázhatóságot anélkül, hogy a biztonság rovására menne. A kód és a teljes DevOps-folyamat biztonságossá tételéhez olyan automatizált biztonsági megoldásokat használhat, mint a DevOps-hoz készült Microsoft Defender. Miután üzembe helyezte az alkalmazást a felhőben, továbbra is figyelheti a kockázatokat. A Felhőbeli kiszolgálóműködés-védelmi platformok (CWPP)Felhőbeli számítási feladatok védelmi platformjai (CWPP) hozzájárulnak az alkalmazások és a mögöttes adatok védelmének biztosításához azáltal, hogy észlelik és elhárítják a számítási feladatokat fenyegető veszélyeket a többfelhős környezetekben. A Felhőbiztonsági állapot kezelése (CSPM)Felhőbeli biztonsági helyzet kezelése (CSPM) megoldásai felderítik és kezelik a környezetében található hibás konfigurációkat és biztonsági réseket.

További információ a Microsoft Biztonságról

Felhőhöz készült Microsoft Defender

Átfogó natív felhős alkalmazásvédelmi platformmal gondoskodhat a többfelhős és hibrid környezetek védelméről a fejlesztéstől a futtatókörnyezetig.

Microsoft Defender for Cloud Apps

Korszerűsítse alkalmazásai védelmét, védje adatait, és növelje alkalmazásainak biztonsági helyzetét ezzel a szolgáltatott szoftvermegoldással.

Microsoft Defender Felhőbiztonsági állapotkezelés

A felhőbiztonsági állapot kezelésével a többfelhős környezetben előforduló kritikus kockázatokra összpontosíthat.

DevOps-hoz készült Microsoft Defender

Egységes DevOps-biztonságkezelést használhat a többfelhős és a többfolyamatos környezetekben.

Gyakori kérdések

  • A DevSecOps egy olyan folyamat, amely integrálja a biztonságot a teljes szoftverfejlesztési életciklusba. A szervezetek azért alkalmazzák ezt a megközelítést, hogy csökkentsék egy biztonsági réseket tartalmazó kód kiadásának kockázatát. Az együttműködés, az automatizálás és a letisztult folyamatok révén a csapatok megosztják a biztonsággal kapcsolatos felelősséget, ahelyett, hogy a végső pillanatra halasztanák, amikor sokkal nehezebb és költségesebb lehet a problémák kezelése.

  • A DevSecOps a fejlesztés, a biztonság és az üzemeltetés rövidítése. A folyamat a biztonságnak a szoftverfejlesztés minden fázisába történő integrálására irányul.

  • A „Shift left“ a DevSecOps egyik koncepciója, amely a biztonsági eljárások beépítésére utal a fejlesztési folyamat legelejétől kezdve.

  • A DevSecOps keretrendszer magában foglalja a folyamatos integrációt, a folyamatos teljesítést és a folyamatos biztonságot. Ez egy olyan módszer, amellyel a védelmi, üzemeltetési és biztonsági csapatok együtt dolgoznak, és közös felelősséget vállalnak a minőségi szoftver gyors biztosításáért, miközben csökkentik a biztonsági réseket.

  • Nincs egységes DevSecOps-folyamat, de az ilyen projektek futtatásának általános módja az, hogy a munkát futamokra osztják, amelyek mindegyike a következő komponenseket tartalmazza: tervezés és fejlesztés, építés és tesztelés, valamint éles környezet. A futam során a csapatok automatizálással folyamatosan kezelik a minőségbiztosítási problémákat, integrálják és folyamatosan tesztelik a biztonsági kockázatokat.

A Microsoft követése