Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Erre a Power Platform jól felépített biztonsági ellenőrzőlistára vonatkozó javaslatra vonatkozik:
SE:02 | Biztonságos fejlesztési életciklust tarthat fenn egy megerősített, többnyire automatizált és auditálható szoftver ellátási lánc használatával. Biztonságos kialakítást építhet be fenyegetésmodellezéssel a biztonságot legyőző implementációk elleni védelem érdekében. |
---|
Ez az útmutató a kód és a fejlesztési környezet biztonságossá tételére vonatkozó javaslatokat ismerteti a fejlesztési ciklus során ajánlott biztonsági eljárások alkalmazásával.
A számítási feladatok középpontjában az üzleti logikát megvalósító összetevők állnak. Ezek az összetevők kevés kódolást igénylő elemek, például vászonalapú alkalmazások és folyamatok, valamint kódközpontú elemek, például beépülő modulok keverékei lehetnek. A számítási feladatot alkotó összes összetevőnek biztonsági hibáktól mentesnek kell lennie a titoktartás, az integritás és a rendelkezésre állás biztosítása érdekében.
Az infrastruktúra síkjának identitás- és hálózati vezérlőkkel való biztonságossá tétele fontos, de nem elég. Előzheti meg a számítási feladatok és a Power Platform feltört tevékenységek gyenge megvalósítását ezekben a számítási feladatokban az általános biztonsági helyzet megerősítése érdekében. A biztonság fejlesztési életciklusba való integrálásának folyamata lényegében egy keményedési folyamat. Az erőforrások megerősítéséhez hasonlóan a kódfejlesztés szigorítása is kontextusfüggő. A hangsúly a biztonság növelésén van, nem pedig az alkalmazás funkcionális követelményein.
Meghatározások
Kifejezés | Definíció |
---|---|
Biztonsági fejlesztési életciklus (SDL) | A Microsoft által biztosított gyakorlatok, amelyek támogatják a biztonsági garanciát és a megfelelőségi követelményeket. |
Szoftverfejlesztési életciklus (SDLC) | Többlépcsős, szisztematikus folyamat szoftverrendszerek fejlesztésére. |
Fő tervezési stratégiák
A biztonsági intézkedéseket több ponton kell integrálni a meglévő szoftverfejlesztési életciklusba (SDLC) a következők biztosítása érdekében:
- A tervezési döntések nem vezetnek biztonsági résekhez.
- A kevés kódolást igénylő és a kódközpontú összetevők, valamint a konfiguráció nem okoznak biztonsági réseket a kihasználható megvalósítás és a nem megfelelő kódolási gyakorlatok miatt.
- Kevés kódolást igénylő és kódközpontú összetevők és üzembe helyezési folyamatok nincsenek illetéktelenül módosítva.
- Az incidensek által feltárt biztonsági rések mérséklődnek.
- A megfelelőségi követelmények nem sérülnek vagy csökkennek.
- A naplózás minden környezetben implementálva van.
A következő szakaszok biztonsági stratégiákat tartalmaznak az SDLC gyakran használt fázisaihoz.
Követelmények fázis
A követelmények fázisának célja a számítási feladatok vagy a számítási feladatok új funkcióinak funkcionális és nem funkcionális követelményeinek összegyűjtése és elemzése. Ez a fázis azért fontos, mert megkönnyíti a munkaterhelés céljaihoz igazított védőkorlátok létrehozását. A számítási feladatok adatainak és integritásának védelme alapvető követelmény kell, hogy legyen a fejlesztési életciklus minden szakaszában.
Vegyünk például egy olyan számítási feladatot, amelyben a felhasználók adatokat visznek be és módosítanak egy alkalmazáson belül. A biztonsági kialakítási döntéseknek ki kell terjedniük a felhasználó adatokkal való interakciójának biztosítására, például a felhasználói identitás hitelesítésére és engedélyezésére, valamint az adatokon csak engedélyezett műveletek engedélyezésére. A nem funkcionális követelmények közé tartozik a rendelkezésre állás, a használhatóság és a karbantarthatóság. A biztonsági döntéseknek tartalmazniuk kell a szegmentálási határokat, a tűzfal bejövő és kimenő forgalmát, valamint az egyéb horizontális biztonsági szempontokat.
Mindezeknek a döntéseknek a számítási feladat biztonsági helyzetének megfelelő meghatározásához kell vezetniük. Dokumentálja a biztonsági követelményeket egy egyeztetett specifikációban, és tükrözze azokat a hátralékban. A dokumentumnak kifejezetten meg kell határoznia azokat a biztonsági befektetéseket, valamint azokat a kompromisszumokat és kockázatokat, amelyeket a vállalkozás hajlandó vállalni, ha a befektetéseket az üzleti érdekelt felek nem hagyják jóvá. Dokumentálhatja például, hogy IP-tűzfalat kell használni a környezetekben Power Platform a szervezeti adatok véd azáltal, hogy Dataverse csak az engedélyezett IP-helyekre korlátozza a hozzáférést. Ha az üzleti érdekeltek nem hajlandók viselni a Felügyelt környezetek-hez hasonló megoldások használatának többletköltségeit, készen kell állniuk arra, hogy elfogadják a szervezeti erőforrások nyilvános helyekről, például kávézóból való elérésének kockázatát. Egy másik példaként képzelje el, hogy az alkalmazásnak egy külső adatforrás kell csatlakoznia. Power Platform Előfordulhat, hogy erre kész összekötővel rendelkezik, de előfordulhat, hogy nem támogatja a biztonsági csapatok által jóváhagyott hitelesítési követelményeket. Ebben az esetben előfordulhat, hogy a biztonsági érdekelt felek hajlandóak elfogadni a jóvá nem hagyott hitelesítési módszer használatának kockázatát. Másik lehetőségként kipróbálhatja egy egyéni összekötő használatát, miközben mérlegeli a megnövekedett fejlesztési idő és a projekt lehetséges késésének előnyeit.
A biztonsági követelmények összegyűjtése kritikus része ennek a fázisnak. Ezen erőfeszítés nélkül a tervezési és megvalósítási fázisok ki nem mondott döntéseken fognak alapulni, ami biztonsági hiányosságokhoz vagy változó követelményekhez vezethet, ami növeli a fejlesztési időt. Előfordulhat, hogy később módosítania kell az implementációt a biztonság érdekében, ami költséges lehet.
Tervezési fázis
Ebben a fázisban a biztonsági követelmények technikai követelményekké alakulnak át. A műszaki specifikációban dokumentálja az összes tervezési döntést, hogy elkerülje a kétértelműséget a megvalósítás során. Íme néhány tipikus feladat:
Határozza meg az architektúra biztonsági dimenzióját. Fedje át az architektúrát biztonsági vezérlőkkel. Például a hálózatelkülönítési határokon praktikus vezérlők, a munkaterhelés összetevőihez szükséges identitástípusok és hitelesítési módszerek, valamint a használandó titkosítási módszerek típusa.
Értékelje ki a platform által biztosított megfizethetőségeket. Fontos megérteni a felelősség megosztását közted és Power Platform közötted. Kerülje az átfedést vagy a duplikációt a natív biztonsági vezérlőkkel Power Platform . Jobb biztonsági lefedettséget kap, és a fejlesztési erőforrásokat az alkalmazás igényeinek megfelelően csoportosíthatja át.
Például ahelyett, hogy olyan egyéni logikát hozna létre, amely reaktív módon azonosítja az alkalmazások és folyamatok jóvá nem hagyott használati mintáit, és riasztásokat küld róluk, használja az adatveszteség-megelőzési szabályzatokat az összekötők használatának kategorizálásához.
Csak megbízható referenciaimplementációkat, sablonokat, kódösszetevőket, szkripteket és kódtárakat válasszon. A tervnek meg kell határoznia a biztonságos verziókövetést is. Az alkalmazásfüggőségeket megbízható felektől kell beszerezni. A külső szállítóknak képesnek kell lenniük arra, hogy megfeleljenek a biztonsági követelményeknek , és megosszák felelős közzétételi tervüket. Minden biztonsági eseményt azonnal jelenteni kell, hogy megtehesse a szükséges intézkedéseket. Előfordulhat továbbá, hogy a szervezet letilt bizonyos kódtárakat vagy referenciaimplementációkat. Például még ha biztonságos és biztonsági résektől mentes is, előfordulhat, hogy továbbra sem engedélyezett, mert a szervezet által még nem jóváhagyott funkciókat, licencelési korlátozásokat vagy a referencia-implementáció támogatási modelljét használja.
Az útmutató betartásának biztosítása érdekében vezessen listát a jóváhagyott és/vagy jóvá nem hagyott keretrendszerekről, könyvtárakról és szállítókról, és győződjön meg arról, hogy a készítők ismerik ezt a listát. Ha lehetséges, helyezzen védőkorlátokat a fejlesztési folyamatokba a lista támogatásához. Amennyire csak lehetséges, automatizálja az eszközök használatát a függőségek biztonsági rések keresésére.
Az alkalmazás titkos kulcsainak biztonságos tárolása. Biztonságosan implementálhatja az alkalmazás által használt titkos alkalmazástitkok és előmegosztott kulcsok használatát. A hitelesítő adatokat és az alkalmazás titkos kulcsait soha nem szabad a számítási feladat (alkalmazás vagy folyamat) forráskódjában tárolni. Használjon külső erőforrásokat, például a Azure Key Vault annak biztosítására, hogy ha a forráskód elérhetővé válik egy potenciális támadó számára, ne lehessen további hozzáférést szerezni.
Biztonságosan csatlakozhat adataihoz. Használja ki az erős biztonsági funkciókat, amelyek Microsoft Dataverse az adatok védelmét szolgálják, például a szerepköralapú és oszlopszintű biztonságot. Más adatforrások esetén használjon biztonságos hitelesítési módszerekkel rendelkező összekötőket. Kerülje az olyan lekérdezéseket, amelyek egyszerű szövegként tárolják a felhasználónevet és a jelszót. Kerülje a HTTP protokollt egyéni összekötők létrehozásához.
Határozza meg, hogy a végfelhasználók hogyan használják a számítási feladatot és az adatokat. Gondolja át, hogy a felhasználók közvetlen hozzáféréssel rendelkeznek-e az adatokhoz, milyen szintű hozzáférésre van szükségük, és honnan férnek hozzá az adatokhoz. Gondolja át, hogyan fogják megosztani az alkalmazásokat a végfelhasználókkal. Győződjön meg arról, hogy csak azok férhetnek hozzá, akiknek hozzá kell férniük az alkalmazáshoz és az adatokhoz. Kerülje az olyan összetett biztonsági modelleket, amelyek a biztonsági blokkolók elkerülését célzó kerülő megoldásokat ösztönzik.
Kerülje a kemény kódolást. Kerülje az URL-címek és kulcsok nem változtatható kódolását. Kerülje például a háttérszolgáltatás URL-címének vagy kulcsának nem változtatható kódolását egy Power Automate HTTP-műveletben. Ehelyett használjon egyéni összekötőt, vagy használjon környezeti változót az URL-címhez, és Azure Key Vault API-kulcshoz.
Teszttervek meghatározása. Határozzon meg egyértelmű teszteseteket a biztonsági követelményekhez. Értékelje ki, hogy automatizálhatja-e ezeket a teszteket a folyamatokban. Ha a csapata manuális tesztelési folyamatokkal rendelkezik, adja meg a tesztek biztonsági követelményeit.
Feljegyzés
Ebben a fázisban fenyegetésmodellezést végezhet. A fenyegetésmodellezés megerősítheti, hogy a tervezési döntések összhangban vannak-e a biztonsági követelményekkel, és feltárja azokat a hiányosságokat, amelyeket enyhítenie kell. Ha a számítási feladat rendkívül bizalmas adatokat kezel, fektessen be biztonsági szakértőkbe, akik segíthetnek a fenyegetésmodellezésben.
A kezdeti fenyegetésmodellezési gyakorlatnak a tervezési fázisban kell történnie, amikor a szoftver architektúráját és magas szintű tervezését meghatározzák. Ha ezt ebben a fázisban teszi, azonosíthatja a lehetséges biztonsági problémákat, mielőtt beépítené őket a rendszer struktúrájába. Ez a gyakorlat azonban nem egyszeri tevékenység. Ez egy folyamatos folyamat, amelynek folytatódnia kell a szoftver fejlődése során.
További információkért lásd Ajánlások a fenyegetéselemzéshez.
Fejlesztési és tesztelési fázis
Ebben a fázisban a cél a kód-, build- és üzembe helyezési folyamatok biztonsági hibáinak és illetéktelen módosításának megelőzése.
Legyen jól képzett a biztonságos kódkezelési gyakorlatokban
A fejlesztőcsapatnak képzéssel kell rendelkeznie a biztonságos kódolási gyakorlatokról. A fejlesztőknek például ismerniük kell a biztonsági fogalmakat Microsoft Dataverse a legkisebb jogosultságú biztonsági modell megvalósításához, a modellvezérelt alkalmazások tartalombiztonsági szabályzatait a megbízható tartományokba való beágyazás korlátozásához, valamint az összekötő/helyszíni átjáró hitelesítési módszereit.
A fejlesztőknek el kell végezniük ezt a képzést, mielőtt elkezdenek dolgozni a számítási feladatokon Power Platform .
Végezzen belső társkód-felülvizsgálatokat a Folyamatos tanulás előléptet.
Kódelemző eszközök használata
A megoldás-ellenőrzőt az erőforrásokhoz Power Platform kell használni, és bármely hagyományos kód forráskódjában ellenőrizhetők a lehetséges biztonsági hibák, beleértve a hitelesítő adatok jelenlétét a kódban. Azonosítsa a hitelesítő adatok és a titkos kulcsok kitettségének lehetséges példányait a forráskódban és a konfigurációs fájlokban. Itt az ideje, hogy áttekintse, hogyan fogják kezelni a kapcsolati hitelesítő adatokat éles környezetben.
Fuzz tesztelés végrehajtása
Használjon helytelenül formázott és váratlan adatokat a biztonsági rések ellenőrzéséhez és a hibakezelés ellenőrzéséhez, ami különösen fontos az olyan megoldások esetében, amelyek tartalmazzák Power Pages.
Írj csak annyi kódot
Ha csökkenti a kód lábnyomát, csökkenti a biztonsági hibák esélyét is. A kód duplikálása helyett használja újra a már használatban lévő kódokat és kódtárakat, amelyek biztonsági ellenőrzésen estek át. Nyílt forráskódú szoftverek észlelése és a verzió, a biztonsági rés és a jogi kötelezettségek ellenőrzése. Egyre több nyílt forráskódú Power Platform erőforrás áll rendelkezésre, ezért ezt nem szabad figyelmen kívül hagyni. Ha lehetséges, ezt a tervezési fázisban meg kell vitatni az utolsó pillanatban felmerülő problémák elkerülése érdekében.
Véd fejlesztői környezetek
A fejlesztői munkaállomásokat erős hálózati és identitásvezérlőkkel kell védeni a kitettség megelőzése érdekében. Győződjön meg arról, hogy a biztonsági frissítéseket gondosan alkalmazza.
A forráskódot is védeni kell. A szükséges mértékben biztosítson hozzáférést a kódtárakhoz, és a lehető legnagyobb mértékben csökkentse a biztonsági rések kitettségét a támadások elkerülése érdekében. Alapos folyamattal ellenőrizheti a kódot a biztonsági rések szempontjából. Erre a célra használjon biztonsági csoportokat, és valósítson meg egy üzleti indokláson alapuló jóváhagyási folyamatot.
Biztonságos kódtelepítések
Nem elég csak a kód biztosítása. Ha kihasználható folyamatokban fut, minden biztonsági erőfeszítés hiábavaló és hiányos. A build- és kiadási környezeteket is védeni kell, mert meg szeretné akadályozni, hogy a rossz szereplők rosszindulatú kódot futtassanak a folyamatban.
Naprakész leltár készítése az alkalmazásba integrált összes összetevőről
Az alkalmazásba integrált minden új összetevő növeli a támadási felületet. A megfelelő elszámoltathatóság és riasztások biztosítása érdekében új összetevők hozzáadásakor vagy frissítésekor leltárt kell készítenie ezekről az összetevőkről. Rendszeresen ellenőrizze, hogy a jegyzékfájl megegyezik-e a buildelési folyamat tartalmával. Ezzel biztosíthatja, hogy ne kerüljenek váratlanul új összetevők, amelyek hátsó ajtókat vagy más kártevőket tartalmaznak.
Javasoljuk, hogy a folyamatokat használja Power Platform az üzemelő példányokhoz. Folyamatok kiterjesztése GitHub műveletekkel. Ha GitHub-munkafolyamatokat használ, előnyben részesítse a Microsoft által írt feladatokat. Ellenőrizze a feladatokat is, mert azok a folyamat biztonsági környezetében futnak.
Ismerje meg a szolgáltatásnév üzembe helyezéshez való használatát.
Termelési fázis
A gyártási fázis az utolsó felelősségteljes lehetőség a biztonsági rések kijavítására. Jegyezze fel a gyártás során kiadott arany képet.
Verziószámmal ellátott összetevők megtartása
Vezessen katalógust az összes üzembe helyezett eszközről és azok verzióiról. Ezek az információk hasznosak lehetnek az incidensek osztályozásakor, a problémák enyhítésekor, valamint a rendszer működőképes állapotba való visszaállításakor. A verziószámmal ellátott eszközök összehasonlíthatók a normál biztonsági rés besorolásáról és kitettségeiről (CVE) közzétett értesítésekkel is. Az összehasonlítások elvégzéséhez automatizálást kell használnia.
Vészhelyzeti javítások
Az automatizált folyamattervezésnek rugalmasnak kell lennie a normál és a vészhelyzeti üzembe helyezések támogatásához is. Ez a rugalmasság fontos a gyors és felelősségteljes biztonsági javítások támogatásához.
Egy kiadás általában több jóváhagyási kapuhoz van társítva. Fontolja meg vészhelyzeti folyamat létrehozását a biztonsági javítások felgyorsítása érdekében. A folyamat magában foglalhatja a csapatok közötti kommunikációt. A folyamatnak lehetővé kell tennie a gyors előre- és visszaállítási üzembe helyezéseket, amelyek a normál üzembe helyezési életcikluson kívül előforduló biztonsági javításokat, kritikus hibákat és kódfrissítéseket kezelik.
Feljegyzés
Mindig helyezze előtérbe a biztonsági javításokat a kényelemmel szemben. A biztonsági javítás nem vezethet regresszióhoz vagy hibához. Ha vészhelyzeti csővezetéken keresztül szeretné felgyorsítani a javítást, alaposan mérlegelje, hogy mely automatizált tesztek kerülhetők meg. Értékelje ki az egyes tesztek értékét a végrehajtási időhöz képest. Például az egységtesztek általában gyorsan befejeződnek. Az integráció vagy a végpontok közötti tesztek hosszú ideig futhatnak.
Tartsa külön a különböző környezeteket
Az éles adatokat nem szabad alacsonyabb környezetekben** használni, mert előfordulhat, hogy ezek a környezetek nem rendelkeznek az éles környezetben érvényes szigorú biztonsági vezérlőkkel. Ne csatlakozzon nem éles alkalmazásból éles adatbázishoz, és kerülje a nem üzemi összetevők éles hálózatokhoz való csatlakoztatását.
Progresszív expozíció használata
Progresszív expozíció használata funkciók kiadásához a felhasználók egy részhalmaza számára a kiválasztott feltételek alapján. Ha problémák merülnek fel, a hatás minimálisra csökken ezekre a felhasználókra. Ez a megközelítés gyakori kockázatcsökkentési stratégia, mivel csökkenti a felületet. Ahogy a funkció kiforrottabbá válik, és egyre jobban bízik a biztonsági garanciákban, fokozatosan kiadhatja a felhasználók szélesebb körének.
Karbantartás fázis
Ennek a fázisnak az a célja, hogy a biztonsági helyzet idővel ne romoljon. Az SDLC egy folyamatos agilis folyamat. Az előző fázisokban tárgyalt fogalmak erre a fázisra vonatkoznak, mivel a követelmények idővel változnak.
Folyamatos fejlesztés. Folyamatosan értékelje és javítsa a szoftverfejlesztési folyamat biztonságát a kódértékelések, a visszajelzések, a tanulságok és a változó fenyegetések, valamint az általuk elérhetővé tett új funkciók figyelembevételével Power Platform.
Az elavult vagy már nem használt örökölt eszközök leszerelése. Ez csökkenti az alkalmazás felületét.
Karbantartás incidensjavításokat is tartalmaz. Ha problémákat találnak az éles környezetben, azonnal integrálni kell őket a folyamatba, hogy ne ismétlődjenek meg.
Folyamatosan javíthatja biztonságos kódolási gyakorlatait, hogy lépést tartson a fenyegetési környezettel.
SDL bemenet Microsoft Power Platform
A Power Platform a biztonságos kialakítás kultúrája és módszertana alapján készült. A kultúra és a módszertan folyamatosan a fejlődik a Microsoft iparágvezető biztonsági fejlesztési életciklusának (SDL) és fenyegetési modellezési gyakorlatainak köszönhetően.
A fenyegetésmodellezés felülvizsgálatának folyamata biztosítja, hogy a tervezési fázisban azonosítják és csökkentik a fenyegetéseket, és ellenőrzi azok megfelelő kezelését.
A fenyegetésmodellezés az üzemben lévő szolgáltatások módosításait is figyelembe veszi, a rendszeres ellenőrzéseknek köszönhetően. A STRIDE modellre való támaszkodás segít megoldani a nem biztonságos kialakítással kapcsolatos leggyakoribb problémákat.
A Microsoft SDL-je megfelel az OWASP Software Assurance Maturity Model (SAMM) modelljének. Mindkettő azon az elképzelésen alapszik, hogy a biztonságos kialakítás alapvető része a webalkalmazás biztonságának. További információ: OWASP Top 10 Risks: Mitigations in Power Platform.
Power Platform Megkönnyítése
Microsoft A biztonsági fejlesztési életciklus (SDL) biztonságos eljárásokat javasol, amelyek alkalmazhatók a fejlesztési életciklusra. További információ: Microsoft Biztonsági fejlesztési életciklus.
A Defender for DevOps és a SAST (statikus alkalmazásbiztonsági tesztelési) eszközök a GitHub Advanced Security részeként találhatók Azure DevOps. Ezek az eszközök segíthetnek nyomon követni a szervezet biztonsági pontszámát.
A megoldás-ellenőrzési funkcióval funkciógazdag statikus elemzési ellenőrzést végezhet a megoldásán a legjobb gyakorlatok készletére alapozott szabályok alapján, és gyorsan azonosíthatja ezeket a problémamintákat. Lásd: Megoldás-ellenőrző használata a megoldások ellenőrzéséhez.
Kapcsolódó információk
- Alkalmazáséletciklus-kezelés (ALM) Microsoft Power Platform
- A csővezetékek áttekintése Power Platform
- Alkalmazáséletciklus-kezelés a Power Platform
- Solution Architect sorozat: Tervezze meg az alkalmazás életciklus-kezelését Power Platform
- Használjon környezeti változókat a megoldásokban
- Használja a megoldásellenőrzőt a megoldások érvényesítéséhez
- Copilot Studio Biztonság és irányítás
Biztonsági ellenőrzőlista
Tekintse meg az ajánlások teljes készletét.