PaaS-implementaties beveiligen
Dit artikel bevat informatie waarmee u het volgende kunt doen:
- Inzicht in de beveiligingsvoordelen van het hosten van toepassingen in de cloud
- De beveiligingsvoordelen van PaaS (Platform as a Service) evalueren ten opzichte van andere cloudservicemodellen
- Uw beveiligingsfocus wijzigen van een netwerkgericht naar een identiteitsgerichte perimeterbeveiligingsbenadering
- Aanbevelingen voor algemene best practices voor PaaS-beveiliging implementeren
Veilige toepassingen ontwikkelen in Azure is een algemene handleiding voor de beveiligingsvragen en besturingselementen die u in elke fase van de levenscyclus van softwareontwikkeling moet overwegen bij het ontwikkelen van toepassingen voor de cloud.
Voordelen van cloudbeveiliging
Het is belangrijk om inzicht te hebben in de verdeling van de verantwoordelijkheid tussen u en Microsoft. On-premises bent u eigenaar van de hele stack, maar naarmate u overstapt naar de cloud, worden sommige verantwoordelijkheden overgedragen naar Microsoft.
Er zijn beveiligingsvoordelen om in de cloud te zijn. In een on-premises omgeving hebben organisaties waarschijnlijk onmete verantwoordelijkheden en beperkte resources die beschikbaar zijn om te investeren in beveiliging, waardoor aanvallers beveiligingsproblemen op alle lagen kunnen misbruiken.
Organisaties kunnen hun detectie en reactietijden van bedreigingen verbeteren met behulp van de cloudbeveiligingsmogelijkheden en cloudintelligentie van een provider. Door de verantwoordelijkheden naar de cloudprovider te verplaatsen, kunnen organisaties meer beveiligingsdekking krijgen, zodat ze beveiligingsresources en budget kunnen toewijzen aan andere zakelijke prioriteiten.
Beveiligingsvoordelen van een PaaS-cloudservicemodel
Laten we eens kijken naar de beveiligingsvoordelen van een Azure PaaS-implementatie versus on-premises.
Vanaf de onderkant van de stack beperkt Microsoft de algemene risico's en verantwoordelijkheden. Omdat de Microsoft-cloud voortdurend wordt bewaakt door Microsoft, is het moeilijk om aan te vallen. Het is niet logisch dat een aanvaller de Microsoft-cloud als doel achtervolgt. Tenzij de aanvaller veel geld en resources heeft, is de aanvaller waarschijnlijk op weg naar een ander doel.
In het midden van de stack is er geen verschil tussen een PaaS-implementatie en on-premises. Op de toepassingslaag en de laag account- en toegangsbeheer hebt u vergelijkbare risico's. In de volgende stappen van dit artikel wordt u begeleid bij aanbevolen procedures voor het elimineren of minimaliseren van deze risico's.
Boven aan de stack, gegevensbeheer en rechtenbeheer neemt u één risico op dat kan worden beperkt door sleutelbeheer. (Sleutelbeheer wordt behandeld in best practices.) Hoewel sleutelbeheer een extra verantwoordelijkheid is, hebt u gebieden in een PaaS-implementatie die u niet meer hoeft te beheren, zodat u resources kunt verplaatsen naar sleutelbeheer.
Het Azure-platform biedt u ook sterke DDoS-beveiliging met behulp van verschillende netwerktechnologieën. Alle typen DDoS-beveiligingsmethoden op basis van een netwerk hebben echter hun limieten per koppeling en per datacenter. Om de impact van grote DDoS-aanvallen te voorkomen, kunt u profiteren van de kerncloudmogelijkheden van Azure, zodat u snel en automatisch kunt uitschalen om bescherming te bieden tegen DDoS-aanvallen. We gaan dieper in op hoe u dit kunt doen in de artikelen met aanbevolen procedures.
De mindset van de Defender voor Cloud moderniseren
Met PaaS-implementaties is er een verschuiving in uw algehele benadering van beveiliging. U verschuift van het zelf beheren van alles tot het delen van verantwoordelijkheid met Microsoft.
Een ander belangrijk verschil tussen PaaS en traditionele on-premises implementaties is een nieuwe weergave van wat de primaire beveiligingsperimeter definieert. In het verleden was de primaire on-premises beveiligingsperimeter uw netwerk en de meeste on-premises beveiligingsontwerpen gebruiken het netwerk als primaire beveiligingsdraaipunt. Voor PaaS-implementaties kunt u beter de identiteit beschouwen als de primaire beveiligingsperimeter.
Een identiteitsbeleid gebruiken als primaire beveiligingsperimeter
Een van de vijf essentiële kenmerken van cloud-computing is brede netwerktoegang, waardoor netwerkgericht denken minder relevant is. Het doel van veel cloud-computing is om gebruikers toegang te geven tot resources, ongeacht de locatie. Voor de meeste gebruikers is hun locatie ergens op internet.
In de volgende afbeelding ziet u hoe de beveiligingsperimeter is ontwikkeld van een netwerkperimeter naar een identiteitsperimeter. Beveiliging gaat minder over het verdedigen van uw netwerk en meer over het verdedigen van uw gegevens, en het beheren van de beveiliging van uw apps en gebruikers. Het belangrijkste verschil is dat u de beveiliging dichter bij uw bedrijf wilt pushen.
In eerste instantie bieden Azure PaaS-services (bijvoorbeeld webrollen en Azure SQL) weinig of geen traditionele netwerkperimeterbeveiligingen. Het werd begrepen dat het doel van het element moest worden blootgesteld aan internet (webrol) en dat verificatie de nieuwe perimeter (bijvoorbeeld BLOB of Azure SQL) biedt.
Bij moderne beveiligingsprocedures wordt ervan uitgegaan dat de kwaadwillende persoon de netwerkperimeter heeft geschonden. Moderne verdedigingsprocedures zijn daarom verplaatst naar identiteit. Organisaties moeten een op identiteit gebaseerde beveiligingsperimeter instellen met sterke verificatie- en autorisatiecontroles (best practices).
Principes en patronen voor de netwerkperimeter zijn al decennia beschikbaar. De branche heeft daarentegen relatief minder ervaring met het gebruik van identiteit als primaire beveiligingsperimeter. Met dat gezegd hebben we voldoende ervaring verzameld om enkele algemene aanbevelingen te bieden die op het gebied worden bewezen en die van toepassing zijn op bijna alle PaaS-services.
Hier volgen de aanbevolen procedures voor het beheren van de identiteitsperimeter.
Best practice: Beveilig uw sleutels en referenties om uw PaaS-implementatie te beveiligen. Details: Sleutels en referenties verliezen is een veelvoorkomend probleem. U kunt een gecentraliseerde oplossing gebruiken waarbij sleutels en geheimen kunnen worden opgeslagen in HSM's (Hardware Security Modules). Azure Key Vault beschermt uw sleutels en geheimen door verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels, PFX-bestanden en wachtwoorden te versleutelen met behulp van sleutels die worden beveiligd door HSM's.
Best practice: Plaats geen referenties en andere geheimen in broncode of GitHub. Detail: Het enige wat erger is dan het verliezen van uw sleutels en referenties is dat een onbevoegde partij toegang tot deze sleutels krijgt. Aanvallers kunnen gebruikmaken van bottechnologieën om sleutels en geheimen te vinden die zijn opgeslagen in codeopslagplaatsen, zoals GitHub. Plaats geen sleutel en geheimen in deze openbare codeopslagplaatsen.
Best practice: Beveilig uw VM-beheerinterfaces op hybride PaaS- en IaaS-services met behulp van een beheerinterface waarmee u deze VM's rechtstreeks op afstand kunt beheren. Details: externe beheerprotocollen, zoals SSH, RDP en externe communicatie met PowerShell, kunnen worden gebruikt. Over het algemeen raden we u aan om directe externe toegang tot VM's vanaf internet niet in te schakelen.
Gebruik indien mogelijk alternatieve benaderingen, zoals het gebruik van virtuele privénetwerken in een virtueel Azure-netwerk. Als er geen alternatieve benaderingen beschikbaar zijn, moet u ervoor zorgen dat u complexe wachtwoordzinnen en tweeledige verificatie (zoals Microsoft Entra-meervoudige verificatie) gebruikt.
Best practice: Gebruik krachtige verificatie- en autorisatieplatforms. Detail: Federatieve identiteiten gebruiken in Microsoft Entra-id in plaats van aangepaste gebruikersarchieven. Wanneer u federatieve identiteiten gebruikt, profiteert u van een platformgebaseerde benadering en delegeert u het beheer van geautoriseerde identiteiten aan uw partners. Een federatieve identiteitsbenadering is vooral belangrijk wanneer werknemers worden beëindigd en die informatie moet worden weerspiegeld via meerdere identiteits- en autorisatiesystemen.
Gebruik door het platform geleverde verificatie- en autorisatiemechanismen in plaats van aangepaste code. De reden hiervoor is dat het ontwikkelen van aangepaste verificatiecode foutgevoelig kan zijn. De meeste van uw ontwikkelaars zijn geen beveiligingsexperts en zijn waarschijnlijk niet op de hoogte van de subtiliteiten en de nieuwste ontwikkelingen in verificatie en autorisatie. Commerciële code (bijvoorbeeld van Microsoft) wordt vaak uitgebreid gecontroleerd op beveiliging.
Gebruik tweeledige verificatie. Tweeledige verificatie is de huidige standaard voor verificatie en autorisatie, omdat hiermee wordt voorkomen dat de beveiligingsproblemen inherent zijn aan de verificatietypen gebruikersnaam en wachtwoord. Toegang tot zowel de Interfaces voor Azure-beheer (portal/externe PowerShell) als klantgerichte services moet worden ontworpen en geconfigureerd voor het gebruik van Meervoudige Verificatie van Microsoft Entra.
Gebruik standaardverificatieprotocollen, zoals OAuth2 en Kerberos. Deze protocollen zijn uitgebreid beoordeeld door peering en worden waarschijnlijk geïmplementeerd als onderdeel van uw platformbibliotheken voor verificatie en autorisatie.
Bedreigingsmodellering gebruiken tijdens het ontwerpen van toepassingen
De levenscyclus van Microsoft Security Development geeft aan dat teams tijdens de ontwerpfase moeten deelnemen aan een proces dat bedreigingsmodellering wordt genoemd. Om dit proces te vergemakkelijken, heeft Microsoft het SDL Threat Modeling Tool gemaakt. Bij het modelleren van het toepassingsontwerp en het inventariseren van STRIDE-bedreigingen binnen alle vertrouwensgrenzen kunnen ontwerpfouten vroeg worden ondervangen.
De volgende tabel bevat de STRIDE-bedreigingen en geeft enkele voorbeelden van oplossingen die gebruikmaken van Azure-functies. Deze oplossingen werken niet in elke situatie.
Bedreiging | Beveiligingseigenschap | Mogelijke risicobeperking voor Azure-platformen |
---|---|---|
Adresvervalsing (spoofing) | Verificatie | HTTPS-verbindingen vereisen. |
Manipulatie | Integriteit | TLS/SSL-certificaten valideren. |
Verwerping | Niet-weerlegbaarheid | Schakel Azure-bewaking en diagnostische gegevens in. |
Openbaarmaking van informatie | Vertrouwelijkheid | Versleutel gevoelige data-at-rest met behulp van servicecertificaten. |
Denial of Service | Beschikbaarheid | Bewaak prestatiegegevens voor mogelijke denial-of-service-voorwaarden. Verbindingsfilters implementeren. |
Verhoging van bevoegdheden | Autorisatie | Gebruik Privileged Identity Management. |
Ontwikkelen op Azure-app Service
Azure-app Service is een PaaS-aanbieding waarmee u web- en mobiele apps kunt maken voor elk platform of apparaat en overal verbinding kunt maken met gegevens, in de cloud of on-premises. App Service bevat de web- en mobiele mogelijkheden die eerder afzonderlijk werden geleverd als Azure Websites en Azure Mobile Services. Deze service bevat ook nieuwe mogelijkheden voor het automatiseren van bedrijfsprocessen en het hosten van cloud-API's. Als één geïntegreerde service biedt App Service een uitgebreide set mogelijkheden voor web-, mobiele en integratiescenario's.
Hier volgen de aanbevolen procedures voor het gebruik van App Service.
Best practice: verifiëren via Microsoft Entra-id. Detail: App Service biedt een OAuth 2.0-service voor uw id-provider. OAuth 2.0 richt zich op de eenvoud van clientontwikkelaars en biedt specifieke autorisatiestromen voor webtoepassingen, desktoptoepassingen en mobiele telefoons. Microsoft Entra ID maakt gebruik van OAuth 2.0 om u toegang te geven tot mobiele en webtoepassingen.
Best practice: Beperk de toegang op basis van de noodzaak om beveiligingsprincipes met minimale bevoegdheden te kennen en te beperken. Detail: Het beperken van de toegang is essentieel voor organisaties die beveiligingsbeleid willen afdwingen voor gegevenstoegang. U kunt Azure RBAC gebruiken om machtigingen toe te wijzen aan gebruikers, groepen en toepassingen binnen een bepaald bereik. Zie Aan de slag met toegangsbeheer voor meer informatie over het verlenen van gebruikerstoegang tot toepassingen.
Best practice: Bescherm uw sleutels. Details: Azure Key Vault helpt cryptografische sleutels en geheimen te beveiligen die cloudtoepassingen en -services gebruiken. Met Key Vault kunt u sleutels en geheimen versleutelen (zoals verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels, . PFX-bestanden en wachtwoorden) met behulp van sleutels die worden beveiligd door HSM's (Hardware Security Modules). Voor extra zekerheid kunt u de sleutels importeren of genereren in HSM's. Zie Azure Key Vault voor meer informatie. U kunt Key Vault ook gebruiken om uw TLS-certificaten te beheren met automatische verlenging.
Best practice: Binnenkomende BRON-IP-adressen beperken. Detail: App Service Environment heeft een functie voor integratie van virtuele netwerken waarmee u binnenkomende BRON-IP-adressen kunt beperken via netwerkbeveiligingsgroepen. Met virtuele netwerken kunt u Azure-resources in een niet-internet, routeerbaar netwerk plaatsen waartoe u de toegang kunt beheren. Zie Uw app integreren met een virtueel Azure-netwerk voor meer informatie.
Best practice: Bewaak de beveiligingsstatus van uw App Service-omgevingen. Details: Gebruik Microsoft Defender voor Cloud om uw App Service-omgevingen te bewaken. Wanneer Defender voor Cloud potentiële beveiligingsproblemen identificeert, worden er aanbevelingen gemaakt die u begeleiden bij het configureren van de benodigde besturingselementen.
Azure Cloud Services
Azure Cloud Services is een voorbeeld van een PaaS. Net als Azure-app Service is deze technologie ontworpen ter ondersteuning van toepassingen die schaalbaar, betrouwbaar en goedkoop zijn voor gebruik. Op dezelfde manier dat App Service wordt gehost op virtuele machines (VM's), is dat ook Azure Cloud Services. U hebt echter meer controle over de virtuele machines. U kunt uw eigen software installeren op VM's die gebruikmaken van Azure Cloud Services en u kunt ze op afstand openen.
Een webtoepassingsfirewall installeren
Webtoepassingen zijn in toenemende mate het doel van aanvallen die gebruikmaken van veelvoorkomende bekende beveiligingsproblemen. Veelvoorkomende aanvallen zijn hierbij onder andere aanvallen met SQL-injecties en aanvallen via scripting op meerdere sites. Het kan een hele uitdaging zijn om dergelijke aanvallen in toepassingscode te voorkomen en dit kan tevens veel onderhoud, patching en controle vereisen op meerdere lagen van de toepassingstopologie. Een gecentraliseerde firewall voor webtoepassingen maakt het beveiligingsbeheer veel eenvoudiger en biedt toepassingsbeheerders meer veiligheid tegen bedreigingen of aanvallen. Een WAF-oplossing kan ook sneller reageren op een beveiligingsrisico door een patch voor een bekend beveiligingsprobleem toe te passen op een centrale locatie in plaats van elke afzonderlijke webtoepassing te beveiligen.
Web Application Firewall (WAF) biedt gecentraliseerde beveiliging van uw webtoepassingen tegen veelvoorkomende aanvallen en beveiligingsproblemen.
DDoS-bescherming
Azure DDoS Protection, gecombineerd met best practices voor toepassingsontwerp, biedt verbeterde DDoS-risicobeperkingsfuncties om meer bescherming te bieden tegen DDoS-aanvallen. Schakel Azure DDOS Protection in voor elk virtueel perimeternetwerk.
De prestaties van uw toepassingen bewaken
Bewaking is het verzamelen en analyseren van gegevens om de prestaties, status en beschikbaarheid van uw toepassing te bepalen. Een effectieve bewakingsstrategie helpt u de gedetailleerde werking van de onderdelen van uw toepassing te begrijpen. Het helpt u uw uptime te verhogen door u op de hoogte te stellen van kritieke problemen, zodat u ze kunt oplossen voordat ze problemen worden. Hiermee kunt u ook afwijkingen detecteren die mogelijk betrekking hebben op beveiliging.
Gebruik Azure-toepassing Insights om de beschikbaarheid, prestaties en het gebruik van uw toepassing te bewaken, ongeacht of deze wordt gehost in de cloud of on-premises. Met Behulp van Application Insights kunt u snel fouten in uw toepassing identificeren en diagnosticeren zonder te wachten tot een gebruiker deze rapporteert. Met de informatie die u verzamelt, kunt u weloverwogen keuzes maken over het onderhoud en de verbeteringen van uw toepassing.
Application Insights heeft uitgebreide hulpmiddelen voor interactie met de gegevens die worden verzameld. Application Insights slaat zijn gegevens op in een gemeenschappelijke opslagplaats. Het kan profiteren van gedeelde functionaliteit, zoals waarschuwingen, dashboards en diepgaande analyse met de Kusto-querytaal.
Beveiligingspenetratietests uitvoeren
Het valideren van beveiligingsbeveiliging is net zo belangrijk als het testen van andere functionaliteiten. Maak penetratietests een standaardonderdeel van uw build- en implementatieproces. Plan regelmatige beveiligingstests en scannen op beveiligingsproblemen op geïmplementeerde toepassingen en controleer op open poorten, eindpunten en aanvallen.
Fuzz-tests zijn een methode voor het vinden van programmafouten (codefouten) door onjuiste invoergegevens op te geven aan programmainterfaces (toegangspunten) die deze gegevens parseren en gebruiken.
Volgende stappen
In dit artikel hebben we ons gericht op beveiligingsvoordelen van een Azure PaaS-implementatie en aanbevolen beveiligingsprocedures voor cloudtoepassingen. Leer vervolgens aanbevolen procedures voor het beveiligen van uw PaaS-web- en mobiele oplossingen met behulp van specifieke Azure-services. We beginnen met Azure-app Service, Azure SQL Database en Azure Synapse Analytics, Azure Storage en Azure Cloud Services. Naarmate er artikelen over aanbevolen procedures voor andere Azure-services beschikbaar komen, vindt u koppelingen in de volgende lijst:
- Azure App Service
- Azure SQL Database en Azure Synapse Analytics
- Azure Storage
- Azure Cloud Services
- Azure Cache voor Redis
- Azure Service Bus
- Web Application Firewall
Zie Veilige toepassingen ontwikkelen in Azure voor beveiligingsvragen en besturingselementen die u in elke fase van de levenscyclus van softwareontwikkeling moet overwegen bij het ontwikkelen van toepassingen voor de cloud.
Bekijk best practices en patronen voor Azure-beveiliging voor meer aanbevolen beveiligingsprocedures die u kunt gebruiken wanneer u uw cloudoplossingen ontwerpt, implementeert en beheert met behulp van Azure.
De volgende resources zijn beschikbaar voor algemene informatie over Azure-beveiliging en gerelateerde Microsoft-services:
- Microsoft-productlevenscyclus - voor consistente en voorspelbare richtlijnen voor ondersteuning gedurende de hele levensduur van een product
- Microsoft Security Response Center : waar Beveiligingsproblemen van Microsoft, inclusief problemen met Azure, kunnen worden gerapporteerd of via e-mail naar secure@microsoft.com