Meer informatie over PowerShell-scriptbeveiliging

Van toepassing op: Configuration Manager (current branch)

Het is de verantwoordelijkheid van de beheerder om het voorgestelde gebruik van PowerShell- en PowerShell-parameters in hun omgeving te valideren. Hier volgen enkele nuttige bronnen om beheerders te informeren over de kracht van PowerShell en mogelijke risicooppervlakken. Deze richtlijnen zijn bedoeld om potentiële risico's te beperken en het gebruik van veilige scripts mogelijk te maken.

PowerShell-scriptbeveiliging

Met de functie Configuration Manager scripts kunt u scripts visueel controleren en goedkeuren. Een andere beheerder kan vragen of het script is toegestaan. Beheerders moeten zich ervan bewust zijn dat PowerShell-scripts verborgen scripts kunnen hebben. Een verborgen script kan schadelijk zijn en moeilijk te detecteren met visuele inspectie tijdens het goedkeuringsproces van het script. Bekijk PowerShell-scripts visueel en gebruik inspectiehulpprogramma's om verdachte scriptproblemen te detecteren. Deze hulpprogramma's kunnen niet altijd de intentie van de PowerShell-auteur bepalen, zodat deze de aandacht kan vestigen op een verdacht script. Voor de hulpprogramma's moet de beheerder echter beoordelen of het een schadelijke of opzettelijke scriptsyntaxis is.

Aanbevelingen

  • Maak uzelf vertrouwd met PowerShell-beveiligingsrichtlijnen met behulp van de verschillende koppelingen waarnaar hieronder wordt verwezen.
  • Uw scripts ondertekenen: een andere methode om scripts veilig te houden, is door ze te laten controleren en vervolgens te ondertekenen voordat ze worden geïmporteerd voor gebruik.
  • Sla geen geheimen (zoals wachtwoorden) op in PowerShell-scripts en lees meer over het afhandelen van geheimen.

Algemene informatie over PowerShell-beveiliging

Deze verzameling koppelingen is gekozen om Configuration Manager beheerders een uitgangspunt te geven voor meer informatie over aanbevelingen voor PowerShell-scriptbeveiliging.

Bescherming tegen PowerShell-aanvallen

Bescherming tegen schadelijke code-injectie

PowerShell - Het Blue-team, bespreekt deep script block logging, Protected Event Logging, Antimalware Scan Interface en Secure Code Generation API's

API voor scaninterface voor antimalware

Beveiliging van PowerShell-parameters

Parameters doorgeven is een manier om flexibiliteit te hebben met uw scripts en beslissingen uit te stellen tot uitvoeringstijd. Het opent ook een ander risicooppervlak.

De volgende lijst bevat aanbevelingen om schadelijke parameters of scriptinjectie te voorkomen:

  • Sta alleen het gebruik van vooraf gedefinieerde parameters toe.
  • Gebruik de functie reguliere expressie om parameters te valideren die zijn toegestaan.
    • Voorbeeld: als alleen een bepaald bereik van waarden is toegestaan, gebruikt u een reguliere expressie om alleen te controleren op tekens of waarden die het bereik kunnen vormen.
    • Het valideren van parameters kan helpen voorkomen dat gebruikers bepaalde tekens gebruiken die kunnen worden ge escaped, zoals aanhalingstekens. Er kunnen meerdere typen aanhalingstekens zijn, dus het gebruik van reguliere expressies om te controleren welke tekens zijn toegestaan, is vaak eenvoudiger dan het definiëren van alle invoer die niet is toegestaan.
  • Gebruik de PowerShell-module 'injectiejager' in de PowerShell Gallery.
    • Er kunnen fout-positieven zijn, dus zoek naar intentie wanneer iets als verdacht wordt gemarkeerd om te bepalen of het een echt probleem is of niet.
  • Microsoft Visual Studio een scriptanalyse heeft die kan helpen bij het controleren van de PowerShell-syntaxis.

De volgende video getiteld: "DEF CON 25 - Lee Holmes - Get $pwnd: Attacking Battle Hardened Windows Server" geeft een overzicht van de soorten problemen die u kunt beveiligen tegen (met name de sectie 12:20 tot 17:50):

Aanbevelingen voor de omgeving

De volgende lijst bevat algemene aanbevelingen voor PowerShell-beheerders:

  • Implementeer de nieuwste versie van PowerShell, zoals versie 5 of hoger, die is ingebouwd in Windows 10 of hoger. U kunt ook de Windows Management Framework implementeren.
  • PowerShell-logboeken inschakelen en verzamelen, optioneel inclusief logboekregistratie van beveiligde gebeurtenissen. Neem deze logboeken op in uw werkstromen voor handtekeningen, opsporing en reactie op incidenten.
  • Implementeer Just Enough Administration op hoogwaardige systemen om onbeperkte administratieve toegang tot deze systemen te elimineren of te verminderen.
  • Implementeer Windows Defender beleid voor toepassingsbeheer om vooraf goedgekeurde beheertaken toe te staan de volledige mogelijkheden van de PowerShell-taal te gebruiken, terwijl interactief en niet-goedgekeurd gebruik wordt beperkt tot een beperkte subset van de PowerShell-taal.
  • Implementeer Windows 10 of hoger om uw antivirusprovider volledige toegang te geven tot alle inhoud (inclusief inhoud die tijdens runtime wordt gegenereerd of opgeheven) die wordt verwerkt door Windows Scripting-hosts, inclusief PowerShell.