14 ago 2013

Seguridad y PowerShell (Parte VI)

Continuando con la serie sobre PowerShell y la seguridad que ésta ofrece, hoy hablaremos sobre como gestiona las credenciales la PowerShell de Microsoft. Es importante entender como funciona esto, para que el administrador tenga la suficiente tranquilidad y estar seguro de que PowerShell es fiable y seguro para la administración de sus entornos diariamente.

En el mundo empresarial las credenciales son un pilar fundamental en la organización, son la vía por la que un usuario demuestra ser quién dice ser. Es por esta razón que este tipo de información debe ir siempre protegido y nunca encontrarse almacenado, ya sea en memoria o disco, en texto plano. Como ya hemos visto en los artículos anteriores, PowerShell utiliza las cadenas seguras para proporcionar esta capa de seguridad en memoria. Se dispone de la posibilidad de enmascarar credenciales con el cmdlet Read-Host. Otra vía es utilizar el cmdlet Get-Credential, el cual recogerá la información que el usuario suministrará a través de un popup. Una vez el usuario introduce su credencial se crea un nuevo objeto de tipo PSCredential. Este objeto dispone de dos campos, usuario y contraseña. Si intentamos acceder a los dos atributos, veremos que el primer atributo, usuario, es de tipo String, mientras que el segundo atributo es de tipo SecureString.

El cmdlet Get-Credential tiene un uso amplio en PowerShell para poder realizar tareas bajo otra identidad. Diversos expertos en seguridad recomiendan no utilizar cuentas de administrador en las sesiones de trabajo, es decir, solamente ejecutar acciones que requieran dichos privilegios. El cmdlet Get-Credential proporciona el cambio de identidad para la realización de acciones concretas.

Como ejemplo escenifiquemos este, un usuario se encuentra trabajando en una sesión de PowerShell, en un momento dado necesita poder copiar unos documentos a una ruta sobre la que no dispone de privilegios. Este usuario conoce las credenciales del usuario administrador que si dispone de privilegios. En este momento sería correcto ejecutar el comando Move-Item con el parámetro credential e indicar que la acción se realizará con el usuario administrador. Copy-item <archivo origen> <archivo destino> -credential $(get-credential).

No hay comentarios:

Publicar un comentario