Altre informazioni sulla sicurezza degli script di PowerShell

Si applica a: Configuration Manager (Current Branch)

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

Sicurezza degli script di PowerShell

La funzionalità script Configuration Manager consente di esaminare e approvare visivamente gli script. Un altro amministratore può richiedere che il proprio 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 la finalità 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 sintassi di script dannosa o intenzionale.

Suggerimenti

  • Acquisire familiarità con le linee guida per la sicurezza di PowerShell usando i vari collegamenti a cui si fa riferimento di seguito.
  • Firma gli script: un altro metodo per proteggere gli script consiste nell'averli controllati e quindi firmati, prima di importarli per l'utilizzo.
  • Non archiviare i segreti (ad esempio le 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 Configuration Manager un punto di partenza per apprendere le raccomandazioni sulla sicurezza degli script di PowerShell.

Difesa dagli attacchi di PowerShell

Protezione dall'inserimento di codice dannoso

PowerShell - Il blue team illustra la registrazione dei blocchi di deep script, la registrazione degli eventi protetti, l'interfaccia di analisi antimalware e le API di generazione del 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 al runtime. Apre anche un'altra superficie di rischio.

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

  • Consente solo l'utilizzo di parametri predefiniti.
  • Usare la funzionalità delle espressioni regolari per convalidare i parametri consentiti.
    • Esempio: se è consentito solo un determinato intervallo di valori, usare un'espressione regolare per verificare solo i caratteri o i valori che possono creare l'intervallo.
    • La convalida dei parametri consente di impedire agli utenti di usare determinati caratteri che possono essere preceduti da caratteri di escape, ad esempio le virgolette. Possono essere presenti più tipi di virgolette, quindi l'uso di espressioni regolari per convalidare quali caratteri sono consentiti è spesso più semplice che tentare di definire tutti gli input non consentiti.
  • Usare il modulo di PowerShell "injection hunter" nel PowerShell Gallery.
    • Possono esserci falsi positivi, quindi cercare la finalità quando qualcosa è contrassegnato come sospetto per determinare se si tratta di un problema reale o meno.
  • Microsoft Visual Studio dispone di 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 12:20-17:50):

Raccomandazioni per l'ambiente

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

  • Distribuire la versione più recente di PowerShell, ad esempio la versione 5 o successiva, integrata in Windows 10 o versioni successive. È anche possibile distribuire il Windows Management Framework.
  • Abilitare e raccogliere i log di PowerShell, includendo facoltativamente La registrazione eventi protetta. Incorporare questi log nei flussi di lavoro di firme, ricerca e risposta agli eventi imprevisti.
  • Implementare Just Enough Administration in sistemi di alto valore per eliminare o ridurre l'accesso amministrativo non vincolato a tali sistemi.
  • Distribuire Windows Defender criteri di controllo delle applicazioni per consentire alle attività amministrative pre-approvate di usare la funzionalità completa del linguaggio PowerShell, limitando al tempo stesso l'uso interattivo e non approvato a un subset limitato del linguaggio PowerShell.
  • Distribuire Windows 10 o versioni successive per concedere al provider antivirus l'accesso completo a tutto il contenuto (incluso il contenuto generato o non offuscato in fase di esecuzione) elaborato dagli host di scripting di Windows, incluso PowerShell.