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.
Ebben a cikkben bemutatjuk a felhőbeli alkalmazások fejlesztésekor figyelembe veendő biztonsági tevékenységeket és vezérlőket. A Microsoft Security Development Lifecycle (SDL) implementálási és ellenőrzési fázisai során megfontolandó biztonsági kérdések és fogalmak. A cél az, hogy segítsen meghatározni azokat a tevékenységeket és Azure-szolgáltatásokat, amelyekkel biztonságosabb alkalmazásokat fejleszthet.
A cikk a következő SDL-fázisokat ismerteti:
- Implementation
- Verification
Implementation
A megvalósítási fázis középpontjában a korai megelőzés ajánlott eljárásainak kialakítása, valamint a biztonsági problémák észlelése és a kódból való eltávolítása áll. Tegyük fel, hogy az alkalmazást olyan módokon használják, ahogy nem szándékozta használni. Ez segít védekezni az alkalmazás véletlen vagy szándékos visszaélése ellen.
Kódértékelések végrehajtása
A kód beadása előtt végezzen kódellenőrzéseket a kód általános minőségének növelése és a hibák létrehozásának kockázatának csökkentése érdekében. A Visual Studio használatával kezelheti a kód-felülvizsgálati folyamatot.
Statikus kódelemzés végrehajtása
A statikus kódelemzés (más néven forráskód-elemzés) a kódvizsgálat részeként történik. A statikus kódelemzés általában statikus kódelemző eszközök futtatására utal, amelyek potenciális biztonsági réseket keresnek a nem futtatott kódban. A statikus kódelemzés olyan technikákat használ, mint a szennyezettség-ellenőrzés és az adatfolyam-elemzés.
Az Azure Marketplace olyan fejlesztői eszközöket kínál, amelyek statikus kódelemzést végeznek, és segítenek a kódértékelésekben.
Az alkalmazás minden bemenetének ellenőrzése és tisztítása
Kezelje az összes bemenetet nem megbízhatóként, hogy megvédje az alkalmazást a webalkalmazások leggyakoribb biztonsági réseitől. A nem megbízható adatok injektálási támadások eszköze. Az alkalmazás bemenete tartalmazza az URL-cím paramétereit, a felhasználótól érkező bemenetet, az adatbázisból vagy egy API-ból származó adatokat, valamint minden olyan adatot, amelyet a felhasználó esetleg manipulálhat. Az alkalmazásnak ellenőriznie kell, hogy az adatok szintaktikailag és szemantikailag érvényesek-e, mielőtt az alkalmazás bármilyen módon felhasználja az adatokat (beleértve az adatok felhasználónak való megjelenítését is).
Ellenőrizze a bemenetet az adatfolyam korai szakaszában, hogy csak a megfelelően formázott adatok kerülhessenek be a munkafolyamatba. Nem szeretné, hogy a rosszul formázott adatok megmaradjanak az adatbázisban, vagy meghibásodást okozzanak az alsóbb réteg összetevőjében.
A feketelista és az engedélyező lista két általános megközelítési mód a bemeneti szintaxis érvényesítésére.
Letiltási kísérletek annak ellenőrzésére, hogy egy adott felhasználói bemenet nem tartalmaz-e "ismerten rosszindulatú" tartalmat.
Engedélyezési kísérletek annak ellenőrzésére, hogy egy adott felhasználói bemenet egyezik-e az "ismert jó" bemenetek halmazával. A karakteralapú engedélyezési lista az engedélyezési listák egyik formája, ahol egy alkalmazás ellenőrzi, hogy a felhasználói bevitel csak "ismert jó" karaktereket tartalmaz-e, vagy hogy a bemenet egy ismert formátumnak felel meg.
Ez lehet például annak ellenőrzése, hogy egy felhasználónév csak alfanumerikus karaktereket tartalmaz-e, vagy hogy pontosan két számot tartalmaz-e.
A biztonságos szoftverek létrehozásának előnyben részesített módszere az engedélyezés. A feketelistázás hajlamos a hibákra, mert lehetetlen a potenciálisan rossz bemenetek teljes listáját összeállítani.
Végezze el ezt a munkát a kiszolgálón, ne az ügyféloldalon (vagy a kiszolgálón és az ügyféloldalon).
Az alkalmazás kimenetének ellenőrzése
A vizuálisan vagy a dokumentumon belül megjelenő kimeneteket mindig kódolni kell és meg kell szökni. Az elkerülés, más néven kimeneti kódolás, segít biztosítani, hogy a nem megbízható adatok ne legyenek eszközei injektálási támadásoknak. A menekülés az adatérvényesítéssel kombinálva rétegzett védelmet biztosít a rendszer egészének biztonságának növelése érdekében.
A menekülés gondoskodik arról, hogy minden kimenetként jelenjen meg. A menekülés azt is tudatja az értelmezővel, hogy az adatok nem hajthatók végre, és ez megakadályozza a támadások működését. Ez egy másik gyakori támadási technika, az úgynevezett helyek közötti szkriptelés (XSS).
Ha egy harmadik féltől származó webes keretrendszert használ, az OWASP XSS-megelőzési csalilap használatával ellenőrizheti a webhelyeken a kimeneti kódolási lehetőségeket.
Paraméteres lekérdezések használata az adatbázissal való kapcsolatfelvételkor
Soha ne hozzon létre beágyazott adatbázis-lekérdezést "menet közben" a kódban, és küldje el közvetlenül az adatbázisba. Az alkalmazásba beszúrt rosszindulatú kódok az adatbázis ellopását, törlését vagy módosítását okozhatják. Az alkalmazással rosszindulatú operációsrendszer-parancsokat is futtathat az adatbázist üzemeltető operációs rendszeren.
Ehelyett használjon paraméteres lekérdezéseket vagy tárolt eljárásokat. Paraméterezett lekérdezések használata esetén biztonságosan meghívhatja az eljárást a kódjából, és átadhat neki egy sztringet annak veszélye nélkül, hogy azt a lekérdezési utasítás részeként kezelné.
Standard kiszolgálófejlécek eltávolítása
Az olyan fejlécek, mint a Server, az X-Powered-By és az XAspNet-Version információkat fednek fel a kiszolgálóról és a mögöttes technológiákról. Javasoljuk, hogy az alkalmazás ujjlenyomatának elkerülése érdekében tiltsa le ezeket a fejléceket. Tekintse meg a standard kiszolgálófejlécek eltávolítását az Azure-webhelyeken.
Termelési adatok elkülönítése
A "valós" adatokat, vagy a valódi adatokat nem szabad fejlesztési, tesztelési vagy más célra felhasználni, mint az üzlet céljai szerint. Minden fejlesztéshez és teszteléshez maszkolt (anonimizált) adatkészletet kell használni.
Ez azt jelenti, hogy kevesebben férnek hozzá a valós adataihoz, ami csökkenti a támadási felületet. Azt is jelenti, hogy kevesebb alkalmazott látja a személyes adatokat, ami kiküszöböli a bizalmasság esetleges megsértését.
Erős jelszóházirend implementálása
A találgatásos és szótáralapú találgatások elleni védelemhez erős jelszóházirendet kell alkalmaznia, amely biztosítja, hogy a felhasználók összetett jelszót hozzanak létre (például 12 karakter minimális hosszúságú, alfanumerikus és speciális karaktereket igényelnek).
A külső bérlőkben lévő Microsoft Entra külső azonosító segít a jelszókezelésben azáltal, hogy önkiszolgáló jelszó-visszaállítást és egyebeket biztosít.
Az alapértelmezett fiókok elleni védelemhez ellenőrizze, hogy az összes kulcs és jelszó lecserélhető-e, és hogy az erőforrások telepítése után létre lettek-e hozva vagy lecserélve.
Ha az alkalmazásnak automatikusan létre kell hoznia a jelszavakat, győződjön meg arról, hogy a létrehozott jelszavak véletlenszerűek, és hogy nagy entrópiával rendelkeznek.
Fájlfeltöltések ellenőrzése
Ha az alkalmazás engedélyezi a fájlfeltöltést, fontolja meg a kockázatos tevékenységhez szükséges óvintézkedéseket. Sok támadás első lépése egy rosszindulatú kód beolvasása egy támadás alatt álló rendszerbe. A fájlfeltöltés segít a támadónak a feladat végrehajtásában. Az OWASP megoldásokat kínál a fájlok ellenőrzésére, hogy a feltöltött fájl biztonságos legyen.
A kártevőirtók elleni védelem segít azonosítani és eltávolítani a vírusokat, kémprogramokat és egyéb rosszindulatú szoftvereket. Telepítheti a Microsoft Antimalware-t vagy a Microsoft-partner végpontvédelmi megoldását (Trend Micro, Broadcom, McAfee, Microsoft Defender Víruskereső Windows rendszeren és Endpoint Protection).
A Microsoft Antimalware olyan funkciókat tartalmaz, mint a valós idejű védelem, az ütemezett vizsgálat, a kártevők szervizelése, az aláírásfrissítések, a motorfrissítések, a minták jelentése és a kizárási események gyűjtése. A Microsoft Antimalware és a partnermegoldások integrálhatók a Microsoft Defender for Cloud szolgáltatással a könnyű üzembe helyezés és a beépített észlelések (biztonsági riasztások és események) érdekében.
Ne tárolja a gyorsítótárban az érzékeny tartalmat.
Ne tároljon bizalmas tartalmakat a böngésző gyorsítótárában. A böngészők a gyorsítótárazással és az előzményekkel kapcsolatos információkat tárolhatják. A gyorsítótárazott fájlokat az Internet Explorer esetében az Ideiglenes internetfájlok mappához hasonló mappában tárolja a rendszer. Amikor ezekre az oldalakra ismét hivatkozik, a böngésző megjeleníti a lapokat a gyorsítótárából. Ha bizalmas információk (cím, hitelkártyaadatok, társadalombiztosítási szám, felhasználónév) jelennek meg a felhasználó számára, előfordulhat, hogy az adatok a böngésző gyorsítótárában találhatók, és a böngésző gyorsítótárának vizsgálatával vagy a böngésző Vissza gombjának lenyomásával olvashatók le.
Verification
Az ellenőrzési fázis átfogó erőfeszítést igényel annak biztosítására, hogy a kód megfeleljen az előző fázisokban megállapított biztonsági és adatvédelmi követelményeknek.
Biztonsági rések keresése és javítása az alkalmazásfüggőségekben
Az alkalmazás és a függő kódtárak vizsgálatával azonosíthatja az ismert sebezhető összetevőket. A vizsgálat elvégzéséhez elérhető termékek közé tartozik az OWASP függőségi ellenőrzése, az Snyk és a Black Duck.
Az alkalmazás tesztelése működési állapotban
A dinamikus alkalmazásbiztonsági tesztelés (DAST) az alkalmazások operációs állapotban történő tesztelésének folyamata, amely biztonsági réseket keres. A DAST-eszközök a végrehajtás során elemzik a programokat, hogy biztonsági réseket találjanak, például memóriasérülést, nem biztonságos kiszolgálókonfigurációt, helyek közötti szkriptelést, felhasználói jogosultsági problémákat, SQL-injektálást és egyéb kritikus biztonsági problémákat.
A DAST eltér a statikus alkalmazások biztonsági tesztelésétől (SAST). A SAST-eszközök elemzik a forráskódot vagy a kód lefordított verzióit, ha a kód nem fut a biztonsági hibák keresése érdekében.
Végezze el a DAST-t, lehetőleg biztonsági szakember ( behatolástesztelő vagy sebezhetőség-vizsgáló) segítségével. Ha egy biztonsági szakember nem érhető el, a DAST-t webes proxyolvasóval és némi betanítással végezheti el. Korán csatlakoztassa a DAST-szkennert, hogy ne vezessen be nyilvánvaló biztonsági problémákat a kódba. A webalkalmazás biztonságirés-ellenőrzőinek listáját az OWASP webhelyén találja.
Hajtsa végre a fuzz tesztelést
A fuzz tesztelés során programhibát idézhet elő azáltal, hogy szándékosan helytelen vagy véletlenszerű adatokat vezet be egy alkalmazásba. A programhiba indukálása segít felfedni az alkalmazás kiadását megelőző lehetséges biztonsági problémákat.
A biztonsági kockázatészlelés a Microsoft egyedi fuzz tesztelési szolgáltatása, amely biztonsági szempontból kritikus hibákat keres a szoftverekben.
Támadási felület áttekintése
A támadási felület áttekintése a kód befejezése után segít biztosítani, hogy az alkalmazás vagy a rendszer bármilyen tervezési vagy implementálási változtatását figyelembe lehessen venni. Segít annak biztosításában, hogy a változások eredményeként létrehozott új támadási vektorok , beleértve a fenyegetésmodelleket is, felülvizsgálva és enyhítve legyenek.
Az alkalmazás beolvasásával készíthet képet a támadási felületről. A Microsoft az Attack Surface Analyzer nevű támadási felületelemző eszközt kínálja. Számos kereskedelmi dinamikus tesztelési és biztonságirés-ellenőrző eszköz vagy szolgáltatás közül választhat, köztük az OWASP Támadási felületérzékelő, az Arachni és a w3af. Ezek a vizsgálati eszközök bejárják az alkalmazást, és leképezik az alkalmazás weben elérhető részeit. Az Azure Marketplace-en is kereshet hasonló fejlesztői eszközöket.
Biztonsági behatolástesztelés végrehajtása
Az alkalmazás biztonságának biztosítása ugyanolyan fontos, mint bármely más funkció tesztelése. A behatolástesztelést a buildelési és üzembehelyezési folyamat szokásos részévé teheti. Rendszeres biztonsági tesztek és biztonságirés-vizsgálat ütemezése az üzembe helyezett alkalmazásokon, valamint a nyitott portok, végpontok és támadások figyelése.
Biztonsági ellenőrző tesztek futtatása
Az Azure-hoz készült Secure DevOps Kitből (AzSK) származó Azure Tenant Security Solution (AzTS) SVT-eket tartalmaz az Azure platform több szolgáltatásához. Ezeket az SVT-ket rendszeres időközönként futtatja annak érdekében, hogy az Azure-előfizetése és az alkalmazást alkotó különböző erőforrások biztonságos állapotban legyenek. Ezeket a teszteket az AzSK folyamatos integrációs/folyamatos üzembe helyezési (CI/CD) bővítményeinek használatával is automatizálhatja, ami visual Studio-bővítményként teszi elérhetővé az SVT-eket.
Következő lépések
Az alábbi cikkekben olyan biztonsági vezérlőket és tevékenységeket ajánlunk, amelyek segíthetnek biztonságos alkalmazások tervezésében és üzembe helyezésében.