6 jul 2013

Seguridad y PowerShell

El primer libro que me dieron la oportunidad de realizar fue una sorpresa para mi, no esperaba que un día Chema me propusiese llevar a cabo un libro y menos sobre la herramienta que era. PowerShell es una línea de comandos la cual proporciona un gran potencial y flexibilidad a los administradores de sistemas y redes Microsoft. Siempre agradeceré que me dieran la oportunidad de soltarme y escribir, y sobretodo dejarme pensar por mí mismo y poder investigar y aprender. Pero lo que quiero importar es la parte de Seguridad que proporciona PowerShell, todos sabemos que está fomentada sobre .NET Framework, heredando funcionalidades de dicho framework. ¿Trae seguridad la PowerShell? La respuesta es obvia, sí y por eso estamos aquí... para hablaros de ello.

Políticas de seguridad en PowerShell

Los scripts son una parte crítica en algunos sistemas, ya que pueden ser ejecutar por usuarios con intenciones maliciosas. Por ello, PowerShell proporciona políticas para evitar que estos scripts puedan ser ejecutados. La configuración correcta del entorno es algo crítico para evitar que este tipo de archivos sean ejecutados accidentalmente.

El scripting en el ámbito empresarial es algo imprescindible, la automatización de tareas diarias para usuarios o administradores es algo totalmente necesario. Un script puede realizar cualquier tarea, por lo que se deben aplicar con mucho cuidado. ¿En qué consisten las políticas de PowerShell?

Las políticas de ejecución son un mecanismo integrado en la PowerShell para evitar la ejecución, accidental o manual, de scripts no autorizados, es decir, sin el consentimiento del usuario. Existen 4 políticas clásicas de ejecución, aunque en PowerShell 3.0 (la de Windows 8) se han implementado nuevas políticas. Las políticas clásicas, y más utilizadas, son remotesigned, allsigned, restricted y unrestricted. Este tipo de políticas van desde las más restrictivas hasta las más permisivas.

  • Remotesigned. Los scripts que no hayan sido creados en la máquina local requieren estar firmados para poderse ejecutar. Los scripts que han sido creados en la máquina local pueden ser ejecutados sin ser firmados.
  • Allsigned. Tanto los scripts locales como los que han sido obtenidos remotamente necesitan estar firmados para poder llevar a cabo su ejecución. Es necesario disponer de los certificados instalados para poder verificar la firma, por lo que no se ejecutará si no disponemos del certificado. Esta política se puede entender como la más segura.
  • Restricted. Con esta política no se puede ejecutar ningún script. Esta política es la asignada por defecto en la PowerShell.
  • Unrestricted. Esta política permite la ejecución de todo script sin tener en cuenta el origen de éste. 

Los cmdlets o comandos Get-ExecutionPolicy y Set-ExecutionPolicy permiten al usuario obtener la política que se está ejecutando actualmente y asignar una nueva política. Hay que tener en cuenta que por defecto, se dispone de una política totalmente restrictiva, por lo que no se podrá ejecutar ningún tipo de script en esta magnifica consola.

2 comentarios:

  1. [...] Login « Seguridad y PowerShell [...]

    ResponderEliminar
  2. [...] una semana hablamos sobre la seguridad en PowerShell, la línea de comandos más potente de Microsoft. En la entrada anterior se trataron las distintas [...]

    ResponderEliminar