Návrh zabezpečených aplikací v Azure

V tomto článku prezentujeme aktivity zabezpečení a kontrolní mechanismy, které je potřeba vzít v úvahu při návrhu aplikací pro cloud. Školicí materiály spolu s bezpečnostními dotazy a koncepty, které je potřeba vzít v úvahu během fází požadavků a návrhu životního cyklu SDL (Microsoft Security Development Lifecycle). Cílem je pomoct definovat aktivity a služby Azure, které můžete použít k návrhu bezpečnější aplikace.

V tomto článku jsou popsané následující fáze SDL:

  • Školení
  • Požadavky
  • Návrh

Školení

Než začnete s vývojem cloudové aplikace, potřebujete čas pochopit zabezpečení a ochranu osobních údajů v Azure. Tímto krokem můžete snížit počet a závažnost zneužitelných ohrožení zabezpečení ve vaší aplikaci. Budete připraveni správně reagovat na neustále se měnící hrozbu.

Během fáze trénování využijte následující zdroje informací, abyste se seznámili se službami Azure, které jsou k dispozici vývojářům, a s osvědčenými postupy zabezpečení v Azure:

  • Příručka pro vývojáře k Azure vám ukáže, jak začít s Azure. V této příručce se dozvíte, které služby můžete použít ke spouštění aplikací, ukládání dat, začlenění inteligentních funkcí, vytváření aplikací IoT a nasazování řešení efektivnějším a bezpečnějším způsobem.

  • Úvodní příručka pro vývojáře Azure poskytuje základní informace pro vývojáře, kteří chtějí začít používat platformu Azure pro potřeby vývoje.

  • Sady SDK a nástroje popisují nástroje, které jsou dostupné v Azure.

  • Azure DevOps Services poskytuje nástroje pro spolupráci na vývoji. Mezi tyto nástroje patří vysoce výkonné kanály, bezplatné úložiště Git, konfigurovatelné panely Kanbanu a rozsáhlé automatizované a cloudové zátěžové testování. Centrum prostředků DevOps kombinuje naše zdroje informací o postupech DevOps, správě verzí Gitu, agilních metodách, způsobu práce s DevOps v Microsoftu a o tom, jak můžete vyhodnotit vlastní průběh DevOps.

  • Prvních pět položek zabezpečení, které je potřeba zvážit před odesláním do produkčního prostředí , ukazuje, jak pomoci zabezpečit webové aplikace v Azure a chránit vaše aplikace před nejběžnějšími a nebezpečnými útoky webových aplikací.

  • Secure DevOps Kit pro Azure je kolekce skriptů, nástrojů, rozšíření a automatizace, které vyhovují komplexním potřebám předplatného Azure a zabezpečení prostředků týmů DevOps, které používají rozsáhlou automatizaci. Sada Secure DevOps Kit pro Azure vám může ukázat, jak hladce integrovat zabezpečení do vašich nativních pracovních postupů DevOps. Sada se zabývá nástroji, jako jsou ověřovací testy zabezpečení (SVT), které můžou vývojářům pomoct psát zabezpečený kód a testovat zabezpečenou konfiguraci svých cloudových aplikací v programovacích a počátečních fázích vývoje.

  • Osvědčené postupy a vzory zabezpečení Azure – kolekce osvědčených postupů zabezpečení, které se mají použít při návrhu, nasazení a správě cloudových řešení pomocí Azure. Pokyny jsou určené jako prostředek pro IT profesionály. Může to zahrnovat návrháře, architekty, vývojáře a testery, kteří vytvářejí a nasazují zabezpečená řešení Azure.

Požadavky

Fáze definice požadavků je zásadním krokem při definování toho, co je aplikace a co dělá při jejím vydání. Fázepožadavkůch V této fázi také zahájíte kroky, které provedete v rámci SDL, abyste zajistili, že uvolníte a nasadíte zabezpečenou aplikaci.

Zvažte problémy se zabezpečením a ochranou osobních údajů.

Tato fáze je nejlepší čas zvážit základní problémy se zabezpečením a ochranou osobních údajů. Definování přijatelných úrovní zabezpečení a ochrany osobních údajů na začátku projektu pomáhá týmu:

  • Seznamte se s riziky souvisejícími s problémy se zabezpečením.
  • Identifikace a oprava chyb zabezpečení během vývoje
  • Použijte zavedené úrovně zabezpečení a ochrany osobních údajů v celém projektu.

Při psaní požadavků na aplikaci nezapomeňte zvážit bezpečnostní prvky, které vám pomůžou udržet aplikaci a data v bezpečí.

Pokládání bezpečnostních otázek

Položte otázky týkající se zabezpečení, například:

  • Obsahuje moje aplikace citlivá data?

  • Shromažďuje moje aplikace nebo ukládá data, která vyžadují, abych dodržovala oborové standardy a programy dodržování předpisů, jako je Federal Financial Institution Examination Council (FFIEC) nebo standardy pcI DSS (Payment Card Industry Data Security Standards)?

  • Shromažďuje moje aplikace citlivá osobní nebo zákaznická data, která je možné použít samostatně nebo s jinými informacemi, k identifikaci, kontaktování nebo vyhledání jedné osoby?

  • Shromažďuje moje aplikace nebo obsahuje data, která je možné použít pro přístup k informacím o zdravotním, vzdělávacím, finančním nebo pracovním poměru jednotlivce? Identifikace citlivosti dat během fáze požadavků vám pomůže klasifikovat data a identifikovat metodu ochrany dat, kterou používáte pro vaši aplikaci.

  • Kde a jak se ukládají moje data? Zvažte, jak monitorovat služby úložiště, které vaše aplikace používá pro jakékoli neočekávané změny (například pomalejší doby odezvy). Dokážete ovlivnit protokolování, abyste shromáždili podrobnější data a analyzovali problém podrobněji?

  • Je moje aplikace dostupná veřejnosti (na internetu) nebo pouze interně? Pokud je vaše aplikace dostupná veřejnosti, jak chráníte data, která se můžou shromažďovat před nesprávným způsobem? Pokud je vaše aplikace dostupná jenom interně, zvažte, kdo ve vaší organizaci by měl mít přístup k aplikaci a jak dlouho by měl mít přístup.

  • Rozumíte modelu identity před zahájením návrhu aplikace? Můžete určit, že uživatelé jsou tím, kdo říkají, a co má uživatel oprávnění dělat?

  • Provádí moje aplikace citlivé nebo důležité úkoly (například převod peněz, odemčení dveří nebo doručování léků)? Zvažte, jak ověříte, že uživatel provádějící citlivou úlohu má oprávnění k provedení úkolu a jak ověříte, že je osoba, o které se jedná. Autorizace (AuthZ) je akce udělení oprávnění ověřeného objektu zabezpečení k něčemu. Ověřování (AuthN) představuje výzvu strany k legitimním přihlašovacím údajům.

  • Provádí moje aplikace nějaké rizikové softwarové aktivity, jako je povolení uživatelům nahrávat nebo stahovat soubory nebo jiná data? Pokud vaše aplikace provádí rizikové aktivity, zvažte, jak vaše aplikace chrání uživatele před zpracováním škodlivých souborů nebo dat.

Kontrola OWASP top 10

Zvažte kontrolu OWASP Top 10 Rizika zabezpečení aplikací. OWASP Top 10 řeší kritická rizika zabezpečení webových aplikací. Povědomí o těchto bezpečnostních rizicích vám může pomoct při rozhodování o požadavcích a návrhu, která minimalizují tato rizika ve vaší aplikaci.

Důležité je přemýšlet o bezpečnostních prvcích, které brání porušení zabezpečení. Chcete ale také předpokládat, že dojde k porušení zabezpečení . Za předpokladu, že porušení zabezpečení pomáhá zodpovědět některé důležité otázky předem, takže je nemusíte odpovídat v nouzovém stavu:

  • Jak zjistím útok?
  • Co mám dělat, když dojde k útoku nebo porušení zabezpečení?
  • Jak se mám zotavit z útoku, jako je únik dat nebo manipulace?

Návrh

Fáze návrhu je důležitá pro stanovení osvědčených postupů pro návrh a funkční specifikace. Je také zásadní pro provádění analýzy rizik, která pomáhá zmírnit problémy se zabezpečením a ochranou osobních údajů v celém projektu.

Pokud máte zavedené požadavky na zabezpečení a používáte koncepty zabezpečeného návrhu, můžete se vyhnout nebo minimalizovat příležitosti pro chybu zabezpečení. Chyba zabezpečení je dohled nad návrhem aplikace, která může uživateli umožnit provádět škodlivé nebo neočekávané akce po vydání aplikace.

Během fáze návrhu se také zamyslete nad tím, jak můžete použít zabezpečení ve vrstvách; jedna úroveň obrany nemusí nutně stačit. Co se stane, když se útočník dostane přes firewall webových aplikací (WAF)? Chcete, aby se proti teto útoku bránila jiná bezpečnostní kontrola.

S ohledem na to probereme následující koncepty zabezpečeného návrhu a bezpečnostní prvky, které byste měli řešit při návrhu zabezpečených aplikací:

  • Použijte zabezpečenou knihovnu kódování a softwarovou architekturu.
  • Vyhledejte ohrožené komponenty.
  • Při návrhu aplikace používejte modelování hrozeb.
  • Omezte prostor pro útoky.
  • Přijměte zásadu identity jako primární hraniční síť zabezpečení.
  • Vyžadovat opětovné ověření pro důležité transakce.
  • Řešení správy klíčů použijte k zabezpečení klíčů, přihlašovacích údajů a dalších tajných kódů.
  • Chraňte citlivá data.
  • Implementujte míry bezpečné pro selhání.
  • Využijte výhod zpracování chyb a výjimek.
  • Použijte protokolování a upozorňování.

Použití zabezpečené knihovny kódování a softwarové architektury

Pro vývoj použijte zabezpečenou knihovnu kódování a softwarovou architekturu, která má vložené zabezpečení. Vývojáři můžou místo vývoje bezpečnostních prvků používat existující, ověřené funkce (šifrování, vstupní kanalizaci, kódování výstupu, klíče nebo připojovací řetězec a cokoli jiného, co by bylo považováno za bezpečnostní kontrolu). To pomáhá chránit před chybami návrhu a implementace související se zabezpečením.

Ujistěte se, že používáte nejnovější verzi architektury a všechny funkce zabezpečení, které jsou v této rozhraní k dispozici. Microsoft nabízí komplexní sadu vývojových nástrojů pro všechny vývojáře, kteří pracují na libovolné platformě nebo jazyce a poskytují cloudové aplikace. Pomocí jazyka podle svého výběru můžete kódovat výběrem z různých sad SDK. Můžete využít plně funkční integrovaná vývojová prostředí (IDE) a editory, které mají pokročilé možnosti ladění a integrované podpora Azure.

Microsoft nabízí různé jazyky, architektury a nástroje , které můžete použít k vývoji aplikací v Azure. Příkladem je Azure pro vývojáře v .NET a .NET Core. Pro každý jazyk a architekturu, které nabízíme, najdete rychlé starty, kurzy a reference k rozhraní API, které vám pomůžou rychle začít.

Azure nabízí různé služby, které můžete použít k hostování webů a webových aplikací. Tyto služby vám umožňují vyvíjet ve vašem oblíbeném jazyce, ať už jde o .NET, .NET Core, Javu, Ruby, Node.js, PHP nebo Python. Aplikace Azure Služba Web Apps (Web Apps) je jednou z těchto služeb.

Služba Web Apps přidává do vaší aplikace výkon Microsoft Azure. Zahrnuje zabezpečení, vyrovnávání zatížení, automatické škálování a automatizovanou správu. Můžete také využít možnosti DevOps ve službě Web Apps, jako je správa balíčků, pracovní prostředí, vlastní domény, certifikáty SSL/TLS a průběžné nasazování z Azure DevOps, GitHubu, Docker Hubu a dalších zdrojů.

Azure nabízí další služby, které můžete použít k hostování webů a webových aplikací. Pro většinu scénářů je nejlepší volbou služba Web Apps. Pro architekturu mikroslužeb zvažte Azure Service Fabric. Pokud potřebujete větší kontrolu nad virtuálními počítači, na kterých se kód spouští, zvažte službu Azure Virtual Machines. Další informace o tom, jak si vybrat mezi těmito službami Azure, najdete v porovnání služeb Aplikace Azure Service, Virtual Machines, Service Fabric a Cloud Services.

Použití aktualizací na komponenty

Abyste zabránili ohrožením zabezpečení, měli byste průběžně inventarizovat komponenty na straně klienta i serverové komponenty (například architektury a knihovny) a jejich závislosti pro aktualizace. Nové chyby zabezpečení a aktualizované verze softwaru se vydávají nepřetržitě. Ujistěte se, že máte průběžný plán monitorování, třídění a aplikování aktualizací nebo změn konfigurace u knihoven a komponent, které používáte.

Podívejte se na stránku Open Web Application Security Project (OWASP) o používání komponent se známými ohroženími zabezpečení pro návrhy nástrojů. Můžete se také přihlásit k odběru e-mailových upozornění na ohrožení zabezpečení, která souvisejí s komponentami, které používáte.

Použití modelování hrozeb během návrhu aplikace

Modelování hrozeb je proces identifikace potenciálních bezpečnostních hrozeb pro vaši firmu a aplikaci a následné zajištění správného zmírnění rizik. SDL určuje, že týmy by se měly zapojit do modelování hrozeb během fáze návrhu, při řešení potenciálních problémů je poměrně snadné a nákladově efektivní. Použití modelování hrozeb ve fázi návrhu může výrazně snížit celkové náklady na vývoj.

Abychom usnadnili proces modelování hrozeb, navrhli jsme nástroj pro modelování hrozeb SDL s ohledem na odborníky na zabezpečení. Tento nástroj usnadňuje modelování hrozeb pro všechny vývojáře tím, že poskytuje jasné pokyny k vytváření a analýze modelů hrozeb.

Modelování návrhu aplikace a vytvoření výčtu hrozeb STRIDE – falšování identity, manipulace, repudiace, zpřístupnění informací, odepření služby a zvýšení oprávnění napříč všemi hranicemi důvěryhodnosti prokázalo efektivní způsob, jak včas zachytit chyby návrhu. Následující tabulka uvádí hrozby STRIDE a uvádí několik příkladů omezení rizik, která používají funkce poskytované Azure. Tato omezení rizik nefungují ve všech situacích.

Hrozba Vlastnost zabezpečení Potenciální zmírnění rizik platformy Azure
Falšování identity Ověřování Vyžadovat připojení HTTPS.
Manipulace Integrita Ověřte certifikáty SSL/TLS. Aplikace, které používají protokol SSL/TLS, musí plně ověřit certifikáty X.509 entit, ke kterým se připojují. Ke správě certifikátů x509 použijte certifikáty služby Azure Key Vault.
Popírání odpovědnosti Neodvolatelnost Povolte monitorování a diagnostiku Azure.
Zveřejnění informací Důvěrnost Zašifrujte citlivá neaktivní uložená data a přenášená data.
Odepření služby Dostupnost Monitorujte metriky výkonu pro potenciální podmínky odepření služby. Implementujte filtry připojení. Ochrana před útoky DDoS v Azure v kombinaci s osvědčenými postupy návrhu aplikací poskytuje ochranu před útoky DDoS.
Zvýšení oprávnění Autorizace Použijte Microsoft Entra ID Privileged Identity Management.

Omezení prostoru pro útoky

Prostor pro útok je celkový součet možných ohrožení zabezpečení. V tomto dokumentu se zaměříme na prostor útoku aplikace. Zaměřuje se na ochranu aplikace před útokem. Jednoduchým a rychlým způsobem minimalizace prostoru pro útoky je odebrání nepoužívaných prostředků a kódu z vaší aplikace. Čím menší bude vaše aplikace, tím menší bude prostor pro útoky. Například odeberte:

  • Kód pro funkce, které jste ještě nevolili.
  • Ladění kódu podpory
  • Síťová rozhraní a protokoly, které se nepoužívají nebo které jsou zastaralé.
  • Virtuální počítače a další prostředky, které nepoužíváte.

Pravidelné čištění prostředků a zajištění, že odeberete nepoužívaný kód, jsou skvělé způsoby, jak zajistit, aby k útoku škodlivých herců došlo k menšímu počtu příležitostí.

Podrobnějším a podrobnějším způsobem, jak snížit prostor pro útoky, je dokončit analýzu prostoru útoku. Analýza prostoru útoku vám pomůže namapovat části systému, které je potřeba zkontrolovat a otestovat z hlediska ohrožení zabezpečení.

Účelem analýzy prostoru útoku je porozumět rizikovým oblastem v aplikaci, aby vývojáři a specialisté na zabezpečení věděli, jaké části aplikace jsou otevřené k útoku. Pak můžete najít způsoby, jak tento potenciál minimalizovat, sledovat, kdy a jak se útok změní a co to znamená z hlediska rizika.

Analýza prostoru útoku vám pomůže identifikovat:

  • Funkce a části systému, které potřebujete zkontrolovat a otestovat ohrožení zabezpečení
  • Vysoce rizikové oblasti kódu, které vyžadují hloubkovou ochranu (části systému, které potřebujete bránit).
  • Když změníte prostor útoku a potřebujete aktualizovat posouzení hrozeb.

Omezení příležitostí pro útočníky zneužít potenciální slabá místa nebo ohrožení zabezpečení vyžaduje, abyste důkladně analyzovali celkový prostor pro útok vaší aplikace. Zahrnuje také zakázání nebo omezení přístupu k systémovým službám, použití principu nejnižších oprávnění a využívání vrstvených obran všude, kde je to možné.

Probereme kontrolu prostoru pro útok během ověřovací fáze SDL.

Poznámka:

Jaký je rozdíl mezi modelováním hrozeb a analýzou povrchu útoku? Modelování hrozeb je proces identifikace potenciálních bezpečnostních hrozeb pro vaši aplikaci a zajištění toho, aby byla zavedena správná omezení rizik proti hrozbám. Analýza prostoru útoku identifikuje vysoce rizikové oblasti kódu, které jsou otevřené pro útok. Zahrnuje vyhledání způsobů, jak chránit vysoce rizikové oblasti vaší aplikace a kontrolovat a testovat tyto oblasti kódu před nasazením aplikace.

Přijetí zásady identity jako primární hraniční sítě zabezpečení

Při návrhu cloudových aplikací je důležité rozšířit zaměření hraniční sítě z přístupu zaměřeného na síť na přístup orientovaný na identitu. Primární místní hraniční síť zabezpečení byla historicky sítí organizace. Většina návrhů místního zabezpečení používá síť jako primární pivot zabezpečení. U cloudových aplikací lépe pracujete tím, že zvažujete identitu jako primární hraniční síť zabezpečení.

Co můžete udělat při vývoji přístupu zaměřeného na identitu při vývoji webových aplikací:

  • Vynucujte vícefaktorové ověřování pro uživatele.
  • Používejte silné ověřovací a autorizační platformy.
  • Použijte zásadu nejnižších oprávnění.
  • Implementujte přístup za běhu.

Vynucení vícefaktorového ověřování pro uživatele

Použijte dvojúrovňové ověřování. Dvojúrovňové ověřování je aktuální standard pro ověřování a autorizaci, protože zabraňuje slabým stránkám zabezpečení, které jsou součástí typů ověřování uživatelského jména a hesla. Přístup k rozhraním pro správu Azure (Azure Portal nebo vzdálené prostředí PowerShell) a ke službám určeným zákazníkům by měl být navržený a nakonfigurovaný tak, aby používal vícefaktorové ověřování Microsoft Entra.

Použití silného ověřování a autorizačních platforem

Místo vlastního kódu používejte mechanismy ověřování a autorizace poskytované platformou. Důvodem je to, že vývoj vlastního ověřovacího kódu může být náchylný k chybám. Komerční kód (například od Microsoftu) se často prověřuje z hlediska zabezpečení. Microsoft Entra ID (Microsoft Entra ID) je řešení Azure pro správu identit a přístupu. Tyto nástroje a služby Microsoft Entra pomáhají se zabezpečeným vývojem:

  • Microsoft Identity Platform je sada komponent, které vývojáři používají k vytváření aplikací, které bezpečně přihlašují uživatele. Tato platforma pomáhá vývojářům, kteří vytvářejí jednoklientové obchodní aplikace a vývojáře, kteří chtějí vyvíjet víceklientských aplikací. Kromě základního přihlašování můžou aplikace vytvořené pomocí platformy Microsoft Identity Platform volat rozhraní API Microsoftu a vlastní rozhraní API. Platforma Microsoft Identity Platform podporuje standardní protokoly, jako jsou OAuth 2.0 a OpenID Connect.

  • Azure Active Directory B2C (Azure AD B2C) je služba pro správu identit, kterou používáte k přizpůsobení a řízení způsobu registrace, přihlášení a správy profilů zákazníků při používání vašich aplikací. To zahrnuje mimo jiné aplikace vyvinuté pro iOS, Android a .NET. Azure AD B2C umožňuje tyto akce při ochraně identit zákazníků.

Použití principu nejnižšího oprávnění

Koncept nejnižších oprávnění znamená, že uživatelům poskytne přesnou úroveň přístupu a řízení, které potřebují k práci, a nic dalšího.

Potřebuje vývojář softwaru práva správce domény? Potřebuje administrativní asistent přístup k ovládacím prvkům pro správu na svém osobním počítači? Vyhodnocení přístupu k softwaru se nijak neliší. Pokud používáte řízení přístupu na základě role v Azure (Azure RBAC) k tomu, abyste uživatelům poskytli různé schopnosti a autoritu ve vaší aplikaci, neudělíte všem přístup ke všemu. Omezením přístupu k tomu, co se vyžaduje pro každou roli, omezíte riziko výskytu problému se zabezpečením.

Ujistěte se, že vaše aplikace vynucuje nejnižší oprávnění v rámci svých vzorů přístupu.

Poznámka:

Pravidla s nejnižšími oprávněními se musí vztahovat na software a na uživatele, kteří software vytvářejí. Vývojáři softwaru můžou být velkým rizikem zabezpečení IT, pokud mají příliš velký přístup. Důsledky můžou být závažné, pokud má vývojář škodlivý záměr nebo má příliš velký přístup. Doporučujeme, aby se pravidla nejnižších oprávnění použila pro vývojáře v průběhu životního cyklu vývoje.

Implementace přístupu za běhu

Implementujte přístup za běhu (JIT), abyste snížili dobu vystavení oprávnění. Microsoft Entra Privileged Identity Management umožňuje:

  • Udělte uživatelům oprávnění, která potřebují jenom JIT.
  • Přiřaďte role po kratší dobu s jistotou, že se oprávnění automaticky odvolají.

Vyžadování opětovného ověření u důležitých transakcí

Padělání požadavků mezi weby (označované také jako XSRF nebo CSRF) je útok na aplikace hostované na webu, ve kterých škodlivá webová aplikace ovlivňuje interakci mezi klientským prohlížečem a webovou aplikací, která důvěřuje danému prohlížeči. Útoky na padělání požadavků mezi weby jsou možné, protože webové prohlížeče automaticky odesílají některé typy ověřovacích tokenů s každou žádostí na web. Tato forma zneužití se také označuje jako útok jedním kliknutím nebo jízda na relaci, protože útok využívá dříve ověřenou relaci uživatele.

Nejlepším způsobem, jak se bránit proti tomuto druhu útoku, je požádat uživatele o něco, co může poskytnout jenom uživatel před každou důležitou transakcí, jako je nákup, deaktivace účtu nebo změna hesla. Můžete požádat uživatele, aby znovu zadal heslo, dokončil captcha nebo odeslal tajný token, který by měl jenom uživatel. Nejběžnějším přístupem je tajný token.

Použití řešení správy klíčů k zabezpečení klíčů, přihlašovacích údajů a dalších tajných kódů

Běžným problémem je ztráta klíčů a přihlašovacích údajů. Jediná věc, která je horší než ztráta klíčů a přihlašovacích údajů, je mít neoprávněný přístup k nim. Útočníci můžou využít automatizované a ruční techniky k vyhledání klíčů a tajných kódů uložených v úložištích kódu, jako je GitHub. Neukládejte klíče a tajné kódy do těchto úložišť veřejného kódu ani na žádný jiný server.

Klíče, certifikáty, tajné kódy a připojovací řetězec vždy umístěte do řešení pro správu klíčů. Můžete použít centralizované řešení, ve kterém jsou klíče a tajné klíče uložené v modulech hardwarového zabezpečení (HSM). Azure poskytuje hsm v cloudu pomocí služby Azure Key Vault.

Key Vault je úložiště tajných kódů: je to centralizovaná cloudová služba pro ukládání tajných kódů aplikací. Key Vault uchovává důvěrná data v bezpečí tím, že uchovává tajné kódy aplikací v jediném centrálním umístění a poskytuje zabezpečený přístup, řízení oprávnění a protokolování přístupu.

Tajné kódy jsou uložené v jednotlivých trezorech. Každý trezor má vlastní konfiguraci a zásady zabezpečení pro řízení přístupu. K datům se dostanete prostřednictvím rozhraní REST API nebo prostřednictvím klientské sady SDK, která je k dispozici pro většinu programovacích jazyků.

Důležité

Služba Azure Key Vault je navržená tak, aby ukládala tajné kódy konfigurace pro serverové aplikace. Není určená k ukládání dat, která patří uživatelům aplikace. To se odráží v jeho výkonových charakteristikách, rozhraní API a modelu nákladů.

Uživatelská data by měla být uložená jinde, například v instanci služby Azure SQL Database, která má transparentní šifrování dat (TDE) nebo v účtu úložiště, který používá šifrování služby Azure Storage. Tajné kódy používané vaší aplikací pro přístup k těmto úložištím dat je možné uchovávat ve službě Azure Key Vault.

Ochrana citlivých dat

Ochrana dat je základní součástí vaší strategie zabezpečení. Klasifikace dat a identifikace potřeb ochrany dat vám pomůže navrhnout aplikaci s ohledem na zabezpečení dat. Klasifikace (kategorizace) uložených dat podle citlivosti a obchodního dopadu pomáhá vývojářům určit rizika spojená s daty.

Při návrhu datových formátů označte všechna použitelná data jako citlivá. Ujistěte se, že aplikace považuje příslušná data za citlivá. Tyto postupy vám můžou pomoct chránit citlivá data:

  • Použijte šifrování.
  • Vyhněte se pevnému kódování tajných kódů, jako jsou klíče a hesla.
  • Ujistěte se, že jsou zavedené řízení přístupu a auditování.

Použití šifrování

Ochrana dat by měla být základní součástí vaší strategie zabezpečení. Pokud jsou vaše data uložená v databázi nebo pokud se přesunují mezi umístěními, použijte šifrování neaktivních uložených dat (zatímco v databázi) a šifrování přenášených dat (na cestě k uživateli, databázi, rozhraní API nebo koncovému bodu služby). K výměně dat doporučujeme vždy používat protokoly SSL/TLS. Ujistěte se, že pro šifrování používáte nejnovější verzi protokolu TLS (aktuálně je to verze 1.2).

Vyhněte se pevnému kódování

Některé věci by nikdy neměly být pevně zakódované ve vašem softwaru. Mezi příklady patří názvy hostitelů nebo IP adresy, adresy URL, e-mailové adresy, uživatelská jména, hesla, klíče účtu úložiště a další kryptografické klíče. Zvažte implementaci požadavků na to, co může nebo nemůže být pevně zakódované v kódu, včetně částí komentářů kódu.

Při vložení komentářů do kódu se ujistěte, že neukládáte žádné citlivé informace. To zahrnuje vaši e-mailovou adresu, hesla, připojovací řetězec, informace o vaší aplikaci, které by znal jenom někdo ve vaší organizaci, a cokoli jiného, co by mohlo útočníkovi poskytnout výhodu při útoku na vaši aplikaci nebo organizaci.

V podstatě předpokládejme, že vše ve vašem vývojovém projektu je veřejné znalosti při nasazení. Vyhněte se zahrnutí citlivých dat jakéhokoli druhu do projektu.

Dříve jsme probrali Službu Azure Key Vault. Key Vault můžete použít k ukládání tajných kódů, jako jsou klíče a hesla, místo jejich pevného kódování. Pokud používáte Key Vault v kombinaci se spravovanými identitami pro prostředky Azure, vaše webová aplikace Azure má snadný a bezpečný přístup k hodnotám konfigurace tajných kódů bez uložení tajných kódů ve správě zdrojového kódu nebo konfiguraci. Další informace najdete v tématu Správa tajných kódů v serverových aplikacích pomocí služby Azure Key Vault.

Implementace měr bezpečných pro selhání

Aplikace musí být schopná zpracovat chyby , ke kterým dochází během provádění konzistentním způsobem. Aplikace by měla zachytávat všechny chyby a buď selhat, nebo zavřít.

Měli byste také zajistit, aby se chyby protokolovaly s dostatečným kontextem uživatele pro identifikaci podezřelých nebo škodlivých aktivit. Protokoly by se měly uchovávat po dostatek času, aby bylo možné povolit opožděnou forenzní analýzu. Protokoly by měly být ve formátu, který snadno využívá řešení pro správu protokolů. Ujistěte se, že se aktivují výstrahy týkající se chyb souvisejících se zabezpečením. Nedostatečné protokolování a monitorování umožňuje útočníkům dál napadnout systémy a udržovat trvalost.

Využití výhod zpracování chyb a výjimek

Implementace správného zpracování chyb a výjimek je důležitou součástí obranného kódování. Zpracování chyb a výjimek je důležité pro zajištění spolehlivého a zabezpečeného systému. Chyby při zpracování chyb můžou vést k různým druhům ohrožení zabezpečení, jako je únik informací útočníkům a pomáhá útočníkům lépe porozumět vaší platformě a návrhu.

Zajistěte následující:

  • Výjimky zpracováváte centralizovaným způsobem, abyste se vyhnuli duplicitním blokům try/catch v kódu.

  • Všechna neočekávaná chování se zpracovávají uvnitř aplikace.

  • Zprávy, které se zobrazují uživatelům, nevracejí kritická data, ale poskytují dostatek informací k vysvětlení problému.

  • Zaprotokolují se výjimky a poskytují dostatek informací pro forenzní týmy nebo týmy reakce na incidenty, které je potřeba prošetřit.

Azure Logic Apps poskytuje prvotřídní prostředí pro zpracování chyb a výjimek způsobených závislými systémy. Pomocí Logic Apps můžete vytvářet pracovní postupy pro automatizaci úloh a procesů, které integrují aplikace, data, systémy a služby napříč podniky a organizacemi.

Použití protokolování a upozorňování

Zaznamte si problémy se zabezpečením pro šetření zabezpečení a aktivujte výstrahy týkající se problémů, abyste měli jistotu, že lidé vědí o problémech včas. Povolte auditování a protokolování u všech součástí. Protokoly auditu by měly zaznamenávat kontext uživatele a identifikovat všechny důležité události.

Zkontrolujte, že nezapíšete žádná citlivá data, která uživatel odešle na váš web. Mezi příklady citlivých dat patří:

  • Přihlašovací údaje uživatele
  • Čísla sociálního pojištění nebo jiné identifikační údaje
  • Čísla platebních karet nebo jiné finanční informace
  • Informace o stavu
  • Privátní klíče nebo jiná data, která je možné použít k dešifrování šifrovaných informací
  • Systémové nebo aplikační informace, které lze použít k efektivnějšímu útoku na aplikaci

Ujistěte se, že aplikace monitoruje události správy uživatelů, jako jsou úspěšná a neúspěšná přihlášení uživatelů, resetování hesla, změny hesla, uzamčení účtu a registrace uživatele. Protokolování těchto událostí vám pomůže detekovat potenciálně podezřelé chování a reagovat na ně. Umožňuje také shromažďovat provozní data, například kdo přistupuje k aplikaci.

Další kroky

V následujících článcích doporučujeme kontrolní mechanismy zabezpečení a aktivity, které vám pomůžou vyvíjet a nasazovat zabezpečené aplikace.