Keretrendszer-frissítések
Sok fejlesztő úgy véli, hogy a szoftverfejlesztéshez használt keretrendszereket és kódtárakat elsősorban a funkciók vagy a személyes beállítások határozzák meg. A választott keretrendszer azonban fontos döntés, nemcsak a tervezés és a funkcionalitás szempontjából, hanem biztonsági szempontból is. Alkalmazásai védelmére egy modern biztonsági funkciókkal rendelkező keretrendszer választása és folyamatos frissítése a legjobb módszer.
A keretrendszert körültekintően válassza meg
Egy keretrendszer kiválasztásakor a leglényegesebb biztonsági tényező a támogatottság. A legjobb keretrendszerek bevált biztonsági elemekkel rendelkeznek, és a keretrendszer fejlesztését és tesztelését végző, nagy közösségek támogatják őket. Nincs 100%-osan hibamentes szoftver, de jó, ha egy biztonsági rés felfedezése után számíthat rá, hogy gyorsan bezárják vagy áthidaló megoldást találnak rá.
A „jól támogatott” gyakran ugyanazt jelenti, mint a „modern”. A régebbi keretrendszereket általában leváltják, vagy végül csökken a népszerűségük. Még akkor is érdemes az Ön által igényelt funkciókkal rendelkező, modern kódtárat választani, ha nagy tapasztalattal bír, vagy sok alkalmazást írt már egy régebbi keretrendszerrel. A modern keretrendszerek általában a korábbi iterációk tanulságaira építenek, így az új alkalmazásokhoz való kiválasztása a veszélyforrások felületének csökkentésének egyik formája. Még egy alkalmazással kell foglalkoznia, hogy felfedez-e biztonsági rést a régebbi keretrendszerben, amelyben az örökölt alkalmazások meg vannak írva.
A biztonságos tervezésről és a veszélyforrások csökkentéséről további információt a Microsoft Azure Well-Architected Framework – Security című témakörben talál.
Frissítse folyamatosan keretrendszerét
A szoftverfejlesztési keretrendszerek (például a Java Spring és a .NET Core) rendszeresen bocsátanak ki frissítéseket és új verziókat. Ezek a frissítések új funkciókat, régi funkciók eltávolítását, és gyakran biztonsági hibajavításokat és fejlesztéseket is tartalmaznak. Amikor lehetővé tesszük, hogy a keretrendszerek elavulttá váljanak, az "technikai adósságot" okoz. Minél újabb elavultak vagyunk, annál nehezebb és kockázatosabb lesz, ha a kódot a legújabb verzióra tesszük fel. A régi verzióknál maradva ezen felül az eredeti keretrendszer-választáshoz hasonlóan, több olyan biztonsági kockázatnak teszi ki magát, amelyek az újabb keretrendszerekben már javítva lettek.
2016 és 2017 között például több mint 30 biztonsági rést találtak az Apache Struts-keretrendszerben. A fejlesztői csapat gyorsan megoldotta ezeket a biztonsági réseket, de egyes vállalatok nem alkalmazták a javításokat, és adatsértés formájában fizették ki az árat. Gondoskodjon keretrendszerei és kódtárai naprakészségéről.
Hogyan frissíthetem a keretrendszeremet?
Bizonyos keretrendszerek, amilyen a Java vagy a .NET, telepítést igényelnek, és általában ismert ütemben vannak kibocsátva. Érdemes figyelni az új kiadásokat, és a kód egy részét tervezetten az új kiadások kipróbálására felhasználni. A .NET Core például egy kiadási jegyzetoldalt tart fenn, amelyet ellenőrizheti, hogy megtalálja-e a legújabb elérhető verziókat.
A csomagkezelőn keresztül speciálisabb kódtárakat, például JavaScript-keretrendszereket vagy .NET-összetevőket is frissíthet. Az NPM és a Webpack népszerű, a legtöbb IDE és fordítóeszköz által is támogatott választás webes projektekhez. A .NET-ben a NuGet használatával kezelhetők az összetevők függőségei. Az alapvető keretrendszer frissítéséhez, a kód elágaztatásához, az összetevők frissítéséhez és a teszteléshez hasonlóan jó módszer a függőségek új verziójának ellenőrzésére.
Megjegyzés:
A dotnet
parancssori eszköz rendelkezik nuGet-csomagok add package
hozzáadására vagy remove package
eltávolítására szolgáló lehetőséggel, de nem rendelkezik megfelelő update package
paranccsal. Projektjében mégis futtathatja a dotnet add package <package-name>
parancsot, és az automatikusan a legújabb verzióra frissíti a csomagot. A függőségek így egyszerűen, az IDE megnyitása nélkül frissíthetők.
Használja ki a beépített védelmet
Mindig tekintse át a keretrendszerei által nyújtott biztonsági funkciókat. Soha ne alkalmazzon saját biztonsági eszközt, ha rendelkezésre áll szabványos technika vagy képesség. Ezen kívül szorítkozzon a bevált algoritmusokra és munkafolyamatokra, ezeket ugyanis többnyire számos szakértő vizsgálta meg tüzetesen, bírálták és megerősítették őket, így számíthat rá, hogy megbízhatók és biztonságosak.
A .NET Core-keretrendszer számtalan biztonsági funkcióval rendelkezik. Íme néhány alapvető kiindulási hely a dokumentációban:
- Hitelesítés – Identitáskezelés
- Authorization
- Adatvédelem
- Biztonságos konfiguráció
- Biztonsági bővíthetőségi API-k
Ezeket a funkciókat a szakterületük szakértői írták, majd tesztekkel próbálták biztosítani, hogy a kívánt módon és csak a kívánt módon működjenek. Más keretrendszerek hasonló funkciókat kínálnak; kérdezze meg a gyártót, amely biztosítja a keretrendszert, hogy megtudja, mi van az egyes kategóriákban.
Figyelmeztetés
A saját biztonsági vezérlők írása a keretrendszer által biztosítottak helyett nem csak időpazarlás, hanem kevésbé biztonságos is.
Microsoft Defender for Cloud
Amikor az Azure-t használja a webalkalmazások üzemeltetésére, Felhőhöz készült Defender figyelmezteti, ha a keretrendszerek elavultak a javaslatok lap részeként. Ne felejtsen el időről időre megnézni, hogy vannak-e az alkalmazásokkal kapcsolatos figyelmeztetések.
Összesítés
Ha csak mód van rá, válasszon modern keretrendszert alkalmazásai elkészítéséhez, mindig használja a beépített biztonsági funkciókat, és gondoskodjon a frissítésekről. Ezek az egyszerű szabályok segítenek biztosítani, hogy alkalmazása szilárd alapokról induljon.