Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
PowerShell heeft verschillende functies die zijn ontworpen om de beveiliging van uw scriptomgeving te verbeteren.
Uitvoeringsbeleid
Het uitvoeringsbeleid van PowerShell is een veiligheidsfunctie waarmee de voorwaarden worden gecontroleerd waaronder PowerShell configuratiebestanden laadt en scripts uitvoert. Deze functie helpt voorkomen dat schadelijke scripts worden uitgevoerd. U kunt een groepsbeleidsinstelling gebruiken om uitvoeringsbeleid in te stellen voor computers en gebruikers. Uitvoeringsbeleid is alleen van toepassing op het Windows-platform.
Zie about_Execution_Policiesvoor meer informatie.
Gebruik van de klasse SecureString
PowerShell heeft verschillende cmdlets die ondersteuning bieden voor het gebruik van de System.Security.SecureString klasse.
En net als bij elke .NET-klasse kunt u SecureString gebruiken in uw eigen scripts. Microsoft raadt het gebruik van SecureString echter niet aan voor nieuwe ontwikkeling. Microsoft raadt u aan wachtwoorden te vermijden en te vertrouwen op andere manieren om te verifiëren, zoals certificaten of Windows-verificatie.
PowerShell blijft ondersteuning bieden voor de SecureString-klasse voor achterwaartse compatibiliteit. Het gebruik van een SecureString is nog steeds veiliger dan het gebruik van een tekenreeks zonder opmaak. PowerShell is nog steeds afhankelijk van het Type SecureString om te voorkomen dat de inhoud per ongeluk beschikbaar wordt in de console of in logboeken. Gebruik SecureString zorgvuldig, omdat deze eenvoudig kan worden geconverteerd naar een tekenreeks zonder opmaak. Zie de system.Security.SecureString-klassedocumentatie voor een volledige discussie over het gebruik van SecureString.
Logboekregistratie van module- en scriptblokken
Met modulelogboekregistratie kunt u logboekregistratie inschakelen voor geselecteerde PowerShell-modules. Deze instelling is effectief in alle sessies op de computer. PowerShell registreert pijplijnuitvoeringsevenementen voor de opgegeven modules in het Windows PowerShell-gebeurtenislogboek.
Logboekregistratie van scriptblokkering maakt logboekregistratie mogelijk voor de verwerking van opdrachten, scriptblokken, functies en scripts, ongeacht of deze interactief worden aangeroepen of via automatisering. PowerShell registreert deze informatie in het gebeurtenislogboek van Microsoft-Windows-PowerShell/Operational .
Raadpleeg voor meer informatie de volgende artikelen:
AMSI-ondersteuning
De Windows Antimalware Scan Interface (AMSI) is een API waarmee toepassingen acties kunnen doorgeven aan een antimalwarescanner, zoals Windows Defender, om te scannen op schadelijke nettoladingen. Vanaf PowerShell 5.1 geeft PowerShell die wordt uitgevoerd op Windows 10 (en hoger) alle scriptblokken door aan AMSI.
PowerShell 7.3 breidt de gegevens uit die naar AMSI worden verzonden voor inspectie. Het bevat nu alle aanroepen van .NET-methoden.
Zie Hoe AMSI u helpt voor meer informatie over AMSI.
Beperkte taalmodus
De beperkteLanguage-modus beveiligt uw systeem door de cmdlets en .NET-typen te beperken die zijn toegestaan in een PowerShell-sessie. Zie about_Language_Modes voor een volledige beschrijving.
Toepassingsbeheer
Windows 10 bevat twee technologieën, App Control voor Bedrijven en AppLocker die u kunt gebruiken om toepassingen te beheren. PowerShell detecteert of een systeembreed toepassingsbeheerbeleid wordt afgedwongen. Het beleid past bepaald gedrag toe bij het uitvoeren van scriptblokken, scriptbestanden of het laden van modulebestanden om willekeurige uitvoering van code op het systeem te voorkomen.
App Control voor Bedrijven is ontworpen als een beveiligingsfunctie onder de onderhoudscriteria die zijn gedefinieerd door het Microsoft Security Response Center (MSRC). App Control is het voorkeurssysteem voor toepassingsbeheer voor Windows.
Zie App Control gebruiken om PowerShell te beveiligen voor meer informatie over hoe PowerShell AppLocker en App Control ondersteunt.
Softwarematerialenlijst (SBOM)
Vanaf PowerShell 7.2 bevatten alle installatiepakketten een Software Bill of Materials (SBOM). Het PowerShell-team produceert ook SBOM's voor modules die ze bezitten, maar die onafhankelijk van PowerShell worden verzonden.
U vindt SBOM-bestanden op de volgende locaties:
- Zoek in PowerShell de SBOM op
$PSHOME/_manifest/spdx_2.2/manifest.spdx.json. - Zoek voor modules de SBOM in de map van de module onder
_manifest/spdx_2.2/manifest.spdx.json.
Het maken en publiceren van de SBOM is de eerste stap om cyberbeveiliging van de federale overheid te moderniseren en de beveiliging van de softwareleveringsketen te verbeteren. Zie het blogbericht SBOM's genereren met SPDX bij Microsoft voor meer informatie over dit initiatief.
Veilige gegevensoverdracht bij PowerShell-remoting
Vóór PowerShell v7.6-preview5 wordt een Session_Key gebruikt om een SecureString te versleutelen voordat deze naar een externe PowerShell-sessie wordt verzonden. Met psrp (PowerShell Remoting Protocol) wordt een sleuteluitwisseling tussen de client en de server uitgevoerd wanneer een SecureString object moet worden overgedragen. De uitwisseling omvat de volgende stappen:
- De clientzijde genereert een openbaar/persoonlijk sleutelpaar en verzendt de openbare sleutel naar de server.
- De server genereert een sessiesleutel voor symmetrische versleuteling.
- De server gebruikt de openbare sleutel om de sessiesleutel te versleutelen en naar de client te verzenden.
- Zowel de client als de server gebruiken de nieuwe sessiesleutel om een SecureString-object te versleutelen .
PsRP (PowerShell Remoting Protocol) gebruikt het RSAEncryptionPadding.Pkcs1 algoritme tijdens de sleuteluitwisseling. Het algoritme is NIET beveiligd, dus de sleuteluitwisseling biedt geen extra beveiliging.
Belangrijk
U moet een beveiligde transportlaag gebruiken om beveiligde gegevensoverdracht via PSRP te garanderen.
Vanaf PowerShell v7.6-preview.5 is de sleuteluitwisseling afgeschaft. De versie van PSRP is verhoogd naar v2.4 en bevat de volgende wijzigingen:
De volgende PSRP-berichten worden afgeschaft wanneer zowel de client als de server v2.4 of hoger zijn:
- OPENBARE_SLEUTEL
- VERZOEK_OPENBARE_SLEUTEL
- ENCRYPTED_SESSION_KEY
De stappen voor
SecureStringversleuteling en ontsleuteling worden overgeslagen wanneer zowel de client als de server v2.4 of hoger zijn.
Deze wijziging is compatibel met eerdere versies.
- Voor oude clients of servers (v2.3 of lager) wordt de sleuteluitwisseling nog steeds gebruikt wanneer dat nodig is.
- PSRP kan externe sessies met een benoemde pijp gebruiken wanneer zowel de client als de server zich op dezelfde computer bevinden.
Omdat het mogelijk is dat een externe client verbinding maakt met een benoemde pijp en de gegevens niet meer worden versleuteld met een sessiesleutel, weigert de benoemde pijp (gebruikt voor
Enter-PSHostProcess) de externe client.
Criteria voor beveiligingsonderhoud
PowerShell volgt de Microsoft Security Servicing Criteria voor Windows. Alleen beveiligingsfuncties voldoen aan de criteria voor onderhoud.
Beveiligingsfuncties
- Systeemvergrendeling met App Control voor Bedrijven
- Beperkte taalmodus met App Control voor Bedrijven
Diepgaande verdedigingsfuncties
- Systeemvergrendeling met AppLocker
- Beperkte taalmodus met AppLocker
- Uitvoeringsbeleid