Automatizando reglas GPO
La Directiva de Grupo, más conocida por sus siglas GPO (Group Policy Object), a menudo se utiliza para restringir ciertas acciones que pueden presentar riesgos de seguridad potenciales, por ejemplo: Bloquear el acceso al Administrador de tareas, restringir el acceso a determinadas carpetas, deshabilitar la descarga de archivos ejecutables, etc.
Existen varias maneras de trabajar con reglas GPO. Por ejemplo, supongamos que queremos crear una regla GPO que impida la instalación de dispositivos extraibles (USB/HID/etc). En Windows, vamos a ejecutar y abrimos el editor GPO (gpedit.msc):
Existen varias maneras de trabajar con reglas GPO. Por ejemplo, supongamos que queremos crear una regla GPO que impida la instalación de dispositivos extraibles (USB/HID/etc). En Windows, vamos a ejecutar y abrimos el editor GPO (gpedit.msc):
Ejecutar gpaedit.msc |
Nota: Si su Windows no cuenta con gpedit.msc siga las siguientes instrucciones
Luego nos desplazamos a Configuración del equipo / Plantillas Administrativas / Sistema / Instalación de Dispositivos / Restricción de instalación de dispositivos y ahí encontramos "Impedir la Instalación de dispositivos extraibles"
Luego nos desplazamos a Configuración del equipo / Plantillas Administrativas / Sistema / Instalación de Dispositivos / Restricción de instalación de dispositivos y ahí encontramos "Impedir la Instalación de dispositivos extraibles"
Seleccionando GPO " Impedir la Instalación de dispositivos extraibles" |
Doble clic y seleccionamos "Habilitada" y "Aplicar" los cambios y "Aceptar":
Habilitando regla GPO |
Y quedaría así:
Y para que tome los cambios inmediatamente (sin reiniciar), abrimos el terminal cmd (con privilegios administrativos) y ejecutamos el siguiente comando:
Este mensaje se puede personalizar con las reglas "Mostrar...":
Automatizando reglas GPO con herramientas de Windows
En entornos empresariales, puede que queramos aplicar una o varias reglas GPO, sin embargo realizar este proceso manualmente en cientos de equipos puede ser un auténtico dolor de cabeza para el sysadmin. Es por eso que la mejor opción es automatizarlo.
Por ejemplo, retomando el caso de la regla GPO descrita anteriormente, cuando la habilitamos, Windows crea las siguientes claves de registro:
gpupdate /forceAhora cada vez que conectemos un dispositivo extraíble, saldrá el siguiente mensaje impidiendo su instalación:
Mensaje directiva aplicada al conectar un dispositivo extraíble |
Cambiar el mensaje por default al aplicar GPO |
En entornos empresariales, puede que queramos aplicar una o varias reglas GPO, sin embargo realizar este proceso manualmente en cientos de equipos puede ser un auténtico dolor de cabeza para el sysadmin. Es por eso que la mejor opción es automatizarlo.
Por ejemplo, retomando el caso de la regla GPO descrita anteriormente, cuando la habilitamos, Windows crea las siguientes claves de registro:
:: En x86 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions :: En x64 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\DeviceInstall\RestrictionsY modifica otras claves, tales como:
HKLM\SYSTEM\ControlSet001\Control\PnP HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects HKLM\SOFTWARE\Policies\Microsoft\Windows\IPSec HKLM\SYSTEM\ControlSet001\services\SharedAccess\Epoch HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Epoch
Editor de registro |
:: x86 Windows\system32\GroupPolicy Windows\system32\GroupPolicyUsers :: x64 Windows\system32\GroupPolicy Windows\system32\GroupPolicyUsers Windows\SysWOW64\GroupPolicy Windows\SysWOW64\GroupPolicyUsers
Carpetas ocultas GroupPolicy y GroupPolicyUsers |
Para aplicar la regla GPO:
@echo off REM Applying GPO... :CheckOS IF EXIST "%PROGRAMFILES(X86)%" (GOTO x64) ELSE (GOTO x86) :x86 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs /t REG_DWORD /d 1 /f gpupdate /force echo "Done" :x64 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /v DenyDeviceIDs /t REG_DWORD /d 1 /f gpupdate /force echo "Done"Para eliminar la regla GPO (y para otros casos de bloqueos):
@echo off REM Removing GPO... RD /S /Q "%WINDIR%\System32\GroupPolicy" RD /S /Q "%WINDIR%\System32\GroupPolicyUsers" reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /f reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisableBkGndGroupPolicy" /f reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" /f reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\ExcludeWUDriversInQualityUpdate" /f reg delete "HKLM\SYSTEM\ControlSet001\Control\PnP" /v DisableCDDB /f reg delete "HKLM\SYSTEM\ControlSet001\Control\PnP" /v DontStartRawDevice /f reg delete "HKLM\SYSTEM\CurrentControlSet\Control\PnP" /v DisableCDD /f reg delete "HKLM\SYSTEM\CurrentControlSet\Control\PnP" /v DontStartRawDevices /f reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\IPSec" /v DisableCDDB /f reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\IPSec" /v DontStartRawDevices /f reg delete "HKLM\SYSTEM\ControlSet001\services\SharedAccess\Epoch" /v DisableCDDB /f reg delete "HKLM\SYSTEM\ControlSet001\services\SharedAccess\Epoch" /v DontStartRawDevices /f reg delete "HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Epoch" /v DisableCDDB /f reg delete "HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Epoch" /v DontStartRawDevices /f reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" /v SearchOrderConfig /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\ControlSet001\Control\StorageDevicePolicies" /v WriteProtect /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\CurrentControlSet\services\USBSTOR" /v Start /t REG_DWORD /d 3 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_All /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Read /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Write /t REG_DWORD /d 0 /f reg add "HKCU\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_All /t REG_DWORD /d 0 /f reg add "HKCU\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Read /t REG_DWORD /d 0 /f reg add "HKCU\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Write /t REG_DWORD /d 0 /f for /f "delims=" %A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects" /k /f "*Machine" ^| find /i "HKEY"') do reg delete "%~A\Software" /f for /f "delims=" %A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects" /k /f "*User" ^| find /i "HKEY"') do reg delete "%~A\Software" /f :CheckOS IF EXIST "%PROGRAMFILES(X86)%" (GOTO WOW64) ELSE (GOTO GPUPDATE) :WOW64 REM Las mismas reglas anteriores pero SysWOW64 RD /S /Q "%WINDIR%\SysWOW64\GroupPolicy" RD /S /Q "%WINDIR%\SysWOW64\GroupPolicyUsers" reg delete "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\DeviceInstall\Restrictions" /f reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisableBkGndGroupPolicy" /f reg delete "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\DriverSearching" /f reg delete "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\WindowsUpdate\ExcludeWUDriversInQualityUpdate" /f reg delete "HKLM\SYSTEM\Wow6432Node\ControlSet001\Control\PnP" /v DisableCDDB /f reg delete "HKLM\SYSTEM\Wow6432Node\ControlSet001\Control\PnP" /v DontStartRawDevice /f reg delete "HKLM\SYSTEM\Wow6432Node\CurrentControlSet\Control\PnP" /v DisableCDD /f reg delete "HKLM\SYSTEM\Wow6432Node\CurrentControlSet\Control\PnP" /v DontStartRawDevices /f reg delete "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\IPSec" /v DisableCDDB /f reg delete "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\IPSec" /v DontStartRawDevices /f reg delete "HKLM\SYSTEM\Wow6432Node\ControlSet001\services\SharedAccess\Epoch" /v DisableCDDB /f reg delete "HKLM\SYSTEM\Wow6432Node\ControlSet001\services\SharedAccess\Epoch" /v DontStartRawDevices /f reg delete "HKLM\SYSTEM\Wow6432Node\CurrentControlSet\services\SharedAccess\Epoch" /v DisableCDDB /f reg delete "HKLM\SYSTEM\Wow6432Node\CurrentControlSet\services\SharedAccess\Epoch" /v DontStartRawDevices /f reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\DriverSearching" /v SearchOrderConfig /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\Wow6432Node\ControlSet001\Control\StorageDevicePolicies" /v WriteProtect /t REG_DWORD /d 0 /f reg add "HKLM\SYSTEM\Wow6432Node\CurrentControlSet\services\USBSTOR" /v Start /t REG_DWORD /d 3 /f reg add "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_All /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Read /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices" /v Deny_Write /t REG_DWORD /d 0 /f :GPUPDATE gpupdate /force echo "Done"Nota: El script también elimina las carpetas GroupPolicy y GroupPolicyUsers para la desactivación completa de la GPO. La sola eliminación de las claves de registro no es suficiente. Por tanto haga backup de las carpetas.
Automatizando reglas GPO con LGPO (recomendada)
Otra alternativa es la utilidad de microsoft LGPO (Descarga v1.0 o v2.2). Descargamos la herramienta y podemos ejecutarla manualmente o con los siguientes scripts (con privilegios administrativos).
Nota: Modifique las variables GPOBK y LGPOPATH según la ruta donde quiera almacenar el ejecutable y la GPO.
1. Abrimos gpedit.msc, ponemos las restricciones y hacemos backup GPO:
1. Abrimos gpedit.msc, ponemos las restricciones y hacemos backup GPO:
@echo off :: Path folder GPO Backup SET GPOBK="%HOMEDRIVE%\LGPO\GPObackup" :: Path to LGPO.exe SET LGPOPATH="%HOMEDRIVE%\LGPO\LGPO.exe" if exist %GPOBK% ( echo "GPO Backup OK" goto LGPO ) else ( echo "Creating GPO Backup folder" mkdir %GPOBK% goto LGPO ) :LGPO echo "Backup GPO..." %LGPOPATH% /b %GPOBK% echo "Done"
2. Copiamos la carpeta donde está el backup GPO y la aplicación LGPO, vamos a otro equipo y aplicamos las reglas:
@echo off :: Path folder GPO Backup SET GPOBK="%HOMEDRIVE%\LGPO\GPObackup" :: Path to LGPO.exe SET LGPOPATH="%HOMEDRIVE%\LGPO\LGPO.exe" if exist %GPOBK% ( echo "GPO Backup OK" goto LGPO ) else ( echo "GPO Backup doesn't exist. Abort" exit ) : LGPO echo "Apply GPO..." %LGPOPATH% /g %GPOBK% start /w /b gpupdate /force echo "Done"
3. Para eliminar la regla GPO usaremos el script descrito en el apartado anterior.
Problema
Desde que se inventaron los dispositivos Plug and Play, Hot Plug, etc, una vez conectados a Windows, se instalan los drivers una única vez y los podemos desconectar y volverlos a conectar sin necesidad de instalar los drivers nuevamente. Windows guarda un registro de estos dispositivos conectados, con sus drivers, por si "los vamos a utilizar nuevamente".
Esta "comodidad" se vuelve un problema relevante de seguridad, ya que a medida que conectamos dispositivos extraíbles, Windows almacena toda esta información y al aplicar una regla GPO para impedir la conexión de dispositivos no autorizados, como la descrita anteriormente, solo funcionará para los nuevos dispositivos extraíbles. Cualquier otro dispositivo extraíble que haya sido conectado e instalado en Windows, previo a la aplicación de la regla GPO, no se verá afectado.
Para solucionarlo y que la regla GPO aplique para cualquier dispositivo (excepto los que utilizamos a diario y nos interesa autorizar en el PC) hay que hacer primero una "limpieza" de drivers instalados previamente. Para esto existen varias herramientas:
Esta "comodidad" se vuelve un problema relevante de seguridad, ya que a medida que conectamos dispositivos extraíbles, Windows almacena toda esta información y al aplicar una regla GPO para impedir la conexión de dispositivos no autorizados, como la descrita anteriormente, solo funcionará para los nuevos dispositivos extraíbles. Cualquier otro dispositivo extraíble que haya sido conectado e instalado en Windows, previo a la aplicación de la regla GPO, no se verá afectado.
Para solucionarlo y que la regla GPO aplique para cualquier dispositivo (excepto los que utilizamos a diario y nos interesa autorizar en el PC) hay que hacer primero una "limpieza" de drivers instalados previamente. Para esto existen varias herramientas:
USBOblivion |
USBOblivion (recomendada)
Pros: Limpia profundamente el PC y elimina instalaciones previas de dispositivos extraíbles.
Contra: No tiene una sola versión (hay para x86 y x64). Hay que reiniciar el PC para tomar los cambios. Solo limpia (no aplica reglas GPO, pero podemos hacerlo después con LGPO)
Pros: Limpia profundamente el PC y elimina instalaciones previas de dispositivos extraíbles.
Contra: No tiene una sola versión (hay para x86 y x64). Hay que reiniciar el PC para tomar los cambios. Solo limpia (no aplica reglas GPO, pero podemos hacerlo después con LGPO)
BlackUSB (Una utilidad incluida en Dextroyer) |
BlackUSB
Pros: Una herramienta OpenSource que limpia los dispositivos extraíbles (usando una adaptación del método de Rob van der woude), reconecta los actuales y aplica una regla GPO de bloqueo (por clases de dispositivos) sin reiniciar el PC para tomar los cambios.
Contra: Su ejecución demora y no es compatible con todas las versiones de Windows
Ratool
Pros: Es la herramienta más completa y ofrece una opción para prevenir las instalaciones de dispositivos extraíbles, de aplicación inmediata sin reinicio del PC y usa la regla GPO descrita en este artículo.
Contra: Es de código cerrado y solo para uso de personal profesional (realiza cambios bastante invasivos en el registro de Windows que podrían afectar el normal uso de dispositivos extraíbles después de su ejecución).
Importante:
Estas herramientas eventualmente pueden se incompatibles entre sí, ya que usan métodos diferentes (lo que se limpia/bloquea con una, no se limpia/desbloquea con la otra y viceversa), por tanto úselas a discreción.
Manual
Y si no quiere automatizar este proceso y prefiere hacerlo manualmente (para estar seguro de qué elimina y qué no) está GhostBuster (cuenta con versión portable), que enumera la acción seleccionada en «tipo de coincidencia» en la tabla. Se recomienda marcar la opción «Crear punto de restauración del sistema» antes de presionar el botón «eliminar fantasmas». La acción requiere permisos elevados, pero debe completarse sin problemas ( ghacks)
Pros: Una herramienta OpenSource que limpia los dispositivos extraíbles (usando una adaptación del método de Rob van der woude), reconecta los actuales y aplica una regla GPO de bloqueo (por clases de dispositivos) sin reiniciar el PC para tomar los cambios.
Contra: Su ejecución demora y no es compatible con todas las versiones de Windows
Ratool de sordum |
Pros: Es la herramienta más completa y ofrece una opción para prevenir las instalaciones de dispositivos extraíbles, de aplicación inmediata sin reinicio del PC y usa la regla GPO descrita en este artículo.
Contra: Es de código cerrado y solo para uso de personal profesional (realiza cambios bastante invasivos en el registro de Windows que podrían afectar el normal uso de dispositivos extraíbles después de su ejecución).
Importante:
Estas herramientas eventualmente pueden se incompatibles entre sí, ya que usan métodos diferentes (lo que se limpia/bloquea con una, no se limpia/desbloquea con la otra y viceversa), por tanto úselas a discreción.
Manual
Y si no quiere automatizar este proceso y prefiere hacerlo manualmente (para estar seguro de qué elimina y qué no) está GhostBuster (cuenta con versión portable), que enumera la acción seleccionada en «tipo de coincidencia» en la tabla. Se recomienda marcar la opción «Crear punto de restauración del sistema» antes de presionar el botón «eliminar fantasmas». La acción requiere permisos elevados, pero debe completarse sin problemas ( ghacks)
Para descargarlo visite nuestro repositorio Vault
Post a Comment