Altre informazioni sulla sicurezza degli script di PowerShell

Si applica a: Configuration Manager (current branch)

È responsabilità dell'amministratore convalidare l'utilizzo dei parametri PowerShell e PowerShell proposti nel proprio ambiente. Ecco alcune risorse utili per informare gli amministratori sulla potenza di PowerShell e sulle potenziali superfici di rischio. Queste indicazioni consentono di ridurre le potenziali superfici di rischio e di consentire l'utilizzo di script sicuri.

PowerShell Script Security

La funzionalità script di Configuration Manager consente di esaminare e approvare visivamente gli script. Un altro amministratore può richiedere che lo script sia consentito. Gli amministratori devono tenere presente che gli script di PowerShell possono avere script offuscati. Uno script offuscato potrebbe essere dannoso e difficile da rilevare con l'ispezione visiva durante il processo di approvazione dello script. Esaminare visivamente gli script di PowerShell e usare gli strumenti di ispezione per rilevare problemi di script sospetti. Questi strumenti non sempre possono determinare l'intento dell'autore di PowerShell, quindi possono attirare l'attenzione su uno script sospetto. Tuttavia, gli strumenti richiederanno all'amministratore di valutare se si tratta di una sintassi di script dannosa o intenzionale.

Consigli

  • Acquisire familiarità con le indicazioni sulla sicurezza di PowerShell usando i vari collegamenti a cui si fa riferimento di seguito.
  • Firmare gli script: un altro metodo per proteggere gli script è sotto il controllo e quindi la firma, prima di importarli per l'utilizzo.
  • Non archiviare segreti (ad esempio password) negli script di PowerShell e altre informazioni su come gestire i segreti.

Informazioni generali sulla sicurezza di PowerShell

Questa raccolta di collegamenti è stata scelta per offrire agli amministratori di Configuration Manager un punto di partenza per conoscere i suggerimenti per la sicurezza degli script di PowerShell.

Procedure consigliate per la sicurezza di PowerShell

Protezione dagli attacchi di PowerShell

Protezione da attacchi di inserimento di codice dannoso

PowerShell - Il team blu, illustra la registrazione dei blocchi di script approfonditi, la registrazione di eventi protetti, l'interfaccia di analisi antimalware e le API per la generazione di codice sicuro

API per l'interfaccia di analisi antimalware

Sicurezza dei parametri di PowerShell

Il passaggio dei parametri è un modo per avere flessibilità con gli script e rinviare le decisioni fino alla fase di esecuzione. Si apre anche un'altra superficie di rischio.

L'elenco seguente include suggerimenti per impedire l'inserimento di script o parametri dannosi:

  • Consentire solo l'utilizzo di parametri predefiniti.
  • Utilizzare la funzionalità di espressione regolare per convalidare i parametri consentiti.
    • Esempio: se è consentito solo un determinato intervallo di valori, utilizzare un'espressione regolare per verificare solo i caratteri o i valori che possono costituiscono l'intervallo.
    • La convalida dei parametri consente di impedire agli utenti di utilizzare determinati caratteri che possono essere preceduti da caratteri di escape, ad esempio virgolette. Possono essere presenti più tipi di virgolette, pertanto l'utilizzo di espressioni regolari per verificare quali caratteri sono consentiti è spesso più semplice rispetto al tentativo di definire tutti gli input non consentiti.
  • Usa il modulo PowerShell "injection hunter" nella raccolta PowerShell.
    • Ci possono essere falsi positivi, quindi cerca l'intento quando qualcosa viene contrassegnato come sospetto per determinare se si tratta di un problema reale o meno.
  • Microsoft Visual Studio ha un analizzatore di script, che consente di controllare la sintassi di PowerShell.

Il video seguente intitolato: "DEF CON 25 - Lee Holmes - Get $pwnd: Attacking Battle Hardened Windows Server" offre una panoramica dei tipi di problemi che è possibile proteggere (in particolare la sezione da 12:20 a 17:50):

Suggerimenti per l'ambiente

L'elenco seguente include suggerimenti generali per gli amministratori di PowerShell:

  • Distribuire la versione più recente di PowerShell, ad esempio la versione 5 o successiva, incorporata Windows 10 o versione successiva. È inoltre possibile distribuire il Windows Management Framework.
  • Abilitare e raccogliere i log di PowerShell, inclusa facoltativamente la registrazione eventi protetta. Incorporare questi log nei flussi di lavoro di firma, ricerca e risposta agli eventi imprevisti.
  • Implementare l'amministrazione just enough in sistemi di alto valore per eliminare o ridurre l'accesso amministrativo non vincolato a tali sistemi.
  • Distribuire Windows Defender criteri di controllo dell'applicazione per consentire alle attività amministrative pre-approvate di utilizzare tutte le funzionalità del linguaggio PowerShell, limitando al contempo l'uso interattivo e non approvato a un sottoinsieme limitato della lingua di PowerShell.
  • Distribuire Windows 10 o versioni successive per concedere al provider antivirus l'accesso completo a tutto il contenuto (incluso il contenuto generato o de offuscato in fase di esecuzione) elaborato da Windows Scripting Host, incluso PowerShell.