PaaS-implementaties beveiligen

Dit artikel bevat informatie die u helpt bij het volgende:

  • Inzicht in de beveiligingsvoordelen van het hosten van toepassingen in de cloud
  • De beveiligingsvoordelen van PaaS (Platform as a Service) evalueren versus andere cloudservicemodellen
  • Uw beveiligingsfocus wijzigen van een netwerkgericht in een identiteitsgerichte perimeterbeveiligingsbenadering
  • Algemene aanbevelingen voor aanbevolen procedures voor PaaS-beveiliging implementeren

Het ontwikkelen van beveiligde toepassingen 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 verantwoordelijkheid tussen u en Microsoft. On-premises bent u eigenaar van de hele stack, maar terwijl u overstapt naar de cloud, worden enkele verantwoordelijkheden overgedragen naar Microsoft.

Er zijn beveiligingsvoordelen om zich in de cloud te bevinden. In een on-premises omgeving hebben organisaties waarschijnlijk onmette verantwoordelijkheden en beperkte resources die beschikbaar zijn om te investeren in beveiliging, waardoor aanvallers beveiligingsproblemen op alle lagen kunnen misbruiken.

Organisaties kunnen de detectie en reactietijden van bedreigingen verbeteren met behulp van de cloudbeveiligingsmogelijkheden en cloudinformatie van een provider. Door verantwoordelijkheden te verschuiven naar de cloudprovider, 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.

Security advantages of PaaS

Vanaf de onderkant van de stack beperkt Microsoft de fysieke infrastructuur 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 nastreeft. Tenzij de aanvaller veel geld en middelen heeft, gaat de aanvaller waarschijnlijk verder met 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 rights management 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. Historisch gezien was de primaire on-premises beveiligingsperimeter uw netwerk en de meeste on-premises beveiligingsontwerpen gebruiken het netwerk als primaire beveiligingspivot. 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 zich heeft ontwikkeld van een netwerkperimeter naar een identiteitsperimeter. Beveiliging gaat minder over het verdedigen van uw netwerk en meer over het verdedigen van uw gegevens, evenals het beheren van de beveiliging van uw apps en gebruikers. Het belangrijkste verschil is dat u de beveiliging dichter bij uw bedrijf wilt zetten.

Identity as new security perimeter

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 biedt (bijvoorbeeld BLOB of Azure SQL).

Bij moderne beveiligingsprocedures wordt ervan uitgegaan dat de kwaadwillende persoon de netwerkperimeter heeft geschonden. Moderne verdedigingspraktijken zijn daarom verplaatst naar identiteit. Organisaties moeten een op identiteit gebaseerde beveiligingsperimeter opzetten met sterke verificatie- en autorisatiecontroles (best practices).

Principes en patronen voor de netwerkperimeter zijn al tientallen jaren 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.
Detail: Sleutels en referenties verliezen is een veelvoorkomend probleem. U kunt een gecentraliseerde oplossing gebruiken waarin sleutels en geheimen kunnen worden opgeslagen in HSM's (Hardware Security Modules). Azure Key Vault beveiligt 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 de broncode of GitHub.
Detail: Het enige wat erger is dan het verliezen van uw sleutels en referenties is dat een onbevoegde partij toegang tot hen 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.
Detail: Externe beheerprotocollen, zoals SSH, RDP en Externe communicatie van PowerShell , kunnen worden gebruikt. Over het algemeen raden we u aan 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 gebruikt (zoals Azure AD Multi-Factor Authentication).

Best practice: gebruik sterke verificatie- en autorisatieplatforms.
Detail: Gebruik federatieve identiteiten in Azure AD 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 ontwikkelaars zijn geen beveiligingsexperts en zijn waarschijnlijk niet op de hoogte van de subtiele eigenschappen 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 Azure-beheerinterfaces (portal/externe PowerShell) als klantgerichte services moet worden ontworpen en geconfigureerd voor het gebruik van Azure AD Multi-Factor Authentication.

Gebruik standaardverificatieprotocollen, zoals OAuth2 en Kerberos. Deze protocollen zijn uitgebreid beoordeeld door peers 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 zich moeten bezighouden met een proces dat bedreigingsmodellering wordt genoemd tijdens de ontwerpfase. Om dit proces te vergemakkelijken, heeft Microsoft de SDL-Threat Modeling Tool gemaakt. Bij het modelleren van het toepassingsontwerp en het inventariseren van STRIDE-bedreigingen voor alle vertrouwensgrenzen kunnen ontwerpfouten vroegtijdig worden ondervangen.

De volgende tabel bevat de STRIDE-bedreigingen en bevat 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.
Weerlegbaarheid Niet-weerlegbaarheid Azure-bewaking en diagnostische gegevens inschakelen.
Openbaarmaking van informatie Vertrouwelijkheid Versleutel gevoelige data-at-rest met behulp van servicecertificaten.
Denial of Service Beschikbaarheid Bewaak metrische 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 elk 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.

Hieronder volgen aanbevolen procedures voor het gebruik van App Service.

Best practice: verifiëren via Azure Active Directory.
Details: App Service biedt een OAuth 2.0-service voor uw id-provider. OAuth 2.0 richt zich op het gemak van clientontwikkelaars en biedt specifieke autorisatiestromen voor webtoepassingen, desktoptoepassingen en mobiele telefoons. Azure AD maakt gebruik van OAuth 2.0 om toegang te verlenen 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 noodzakelijk voor organisaties die beveiligingsbeleid voor gegevenstoegang willen afdwingen. 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 toegang tot toepassingen.

Best practice: Bescherm uw sleutels.
Detail: Azure Key Vault helpt bij het beveiligen van cryptografische sleutels en geheimen 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 ook Key Vault gebruiken om uw TLS-certificaten te beheren met automatische verlenging.

Aanbevolen procedure: 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.
Detail: Gebruik Microsoft Defender voor Cloud om uw App Service omgevingen te bewaken. Wanneer Defender voor Cloud mogelijke 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 om te werken. Op dezelfde manier als App Service wordt gehost op virtuele machines (VM's), is dat ook Azure Cloud Services. U hebt echter meer controle over de VM's. 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. Bestaande toepassingsgateways kunnen eenvoudig worden geconverteerd naar een toepassingsgateway met Web Application Firewall.

Web Application Firewall (WAF) is een functie van Application Gateway die gecentraliseerde beveiliging van uw webtoepassingen biedt tegen veelvoorkomende aanvallen en beveiligingsproblemen. WAF is gebaseerd op regels van de Open Web Application Security Project (OWASP)-kernregelsets 3.0 of 2.2.9.

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. Het helpt u ook om afwijkingen te 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 uitgebreide 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 bewaak op open poorten, eindpunten en aanvallen.

Fuzz-testen is een methode voor het vinden van programmafouten (codefouten) door onjuiste invoergegevens op te geven aan programmainterfaces (toegangspunten) die deze gegevens parseren en gebruiken. Microsoft Security Risk Detection is een cloudhulpprogramma dat u kunt gebruiken om te zoeken naar bugs en andere beveiligingsproblemen in uw software voordat u deze implementeert in Azure. Het hulpprogramma is ontworpen om beveiligingsproblemen te ondervangen voordat u software implementeert, zodat u geen bug hoeft te patchen, crashes hoeft aan te pakken of te reageren op een aanval nadat de software is uitgebracht.

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 artikelen over aanbevolen procedures voor andere Azure-services beschikbaar komen, worden koppelingen weergegeven in de volgende lijst:

Zie Veilige toepassingen ontwikkelen in Azure voor beveiligingsvragen en -controles 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 meer algemene informatie over Azure-beveiliging en gerelateerde Microsoft-services: