SRP en Windows
La Política de restricción de software (SRP) es una de las funciones más importantes y efectivas en Windows que debemos implementar para delimitar qué programas, y con qué permisos, pueden ejecutar los usuarios.
Table of Contents
ToggleIntroducción
En efecto, la función de la SRP en sistemas Windows, es identificar programas de software que se ejecutan en los equipos, tanto locales como pertenecientes a una red de dominio, y controlar su capacidad de ejecución a través de diversas políticas. De esta forma, se busca aumentar la efectividad contra ataques de scripts o códigos maliciosos y así, lograr tener mayor confidencialidad e integridad en los equipos. Recomendamos haber leído sobre LSP antes de seguir
Estas políticas están integradas con Microsoft Active Directory y Group Policy. También puede crear políticas de SRP en equipos locales y, está disponible en todas las versiones de los sistemas operativos Windows.
Habilitación de la SRP
En el caso de no tener definida las SRP en Windows, debemos dar clic derecho sobre la misma, y pichar en New Software Restriction Policies.
Como vemos, se han creado todas las políticas por defecto y el comportamiento del sistema va a seguir siendo el mismo que antes de habilitarlo. Sin embargo, ahora tenemos dos directivas: Security Levels y Additional Rules.
Niveles de seguridad
Como vemos esta función está compuesta por tres niveles:
Disallowed: En “No permitido”, como indica, lo que va a suceder es que no vamos a poder ejecutar dicho programa. Cabe mencionar que, esto aplica independientemente de la configuración de permisos que tenga un determinado usuario. Es decir, por más que el usuario tenga permisos a nivel sistema de archivos para ejecutar un programa, si la SRP indica que no puede ejecutarlo, no podrá hacerlo.
Basic User: En “Usuario básico”, la configuración indica que se vamos a poder ejecutar cualquier programa pero sin privilegios de administrador.
Unrestricted: El nivel “Irrestricto” hace referencia a que no va a haber restricciones particulares sobre la forma de ejecución de los programas. Por defecto viene configurado de esta manera.
Reglas Adicionales
En las reglas adicionales vamos a tener dos por defecto, las cuales son muy importantes y no se recomiendan modificarlas. Estas reglas nos permiten poder ejecutar siempre programas, o archivos, que estén en rutas confiables del sistema. Como es el caso de SystemRoot o ProgramFilesDir. Esto se encuentra configurado de esta forma ya que, expandiendo las variables así, la configuración es compatibles con diferentes sistemas operativos en distintos idiomas. Recordemos que el diectorio “Program Files”, hace referencia al directorio “Archivos de programa” (en español). Por lo tanto, con este tipo de configuración, hacemos que el directorio al cual se apunta siempre sea el correcto.
Configuración de las reglas
A continuación veremos los distintos métodos que podemos aplicar dentro de las reglas adicionales de la SRP, para una correcta configuración de cualquier software en Windows.
Reglas de ruta
Primero hacemos un clic derecho dentro de las Additional Rules y elegimos la opción de New path rule. Luego se nos aparecerá una ventana para elegir la ruta hacia un archivo o directorio. En este caso elegiremos un ejecutable que tenemos en Desktop (escritorio).
Una vez aplicado estos cambios, cuando intentemos ejecutar dicho programa vamos a tener un error, como se muestra a continuación. En caso de no funcionar, podemos probar reiniciando el sistema o cerrando sesión.
Ahora bien, no todo es color rosa. Algo que debemos tener muy en cuenta es que las reglas de ruta tienen el problema de que si “algo” en esa ruta cambia la regla ya no va a aplicar. Por ejemplo, si cambiamos el nombre del archivo ejecutable que habíamos seleccionado, podremos acceder tranquilamente ya que su nombre es distinto al de la ruta que habíamos seleccionado. Vemos a continuación que pudimos acceder con éxito al cambiar el nombre.
Debemos tener en cuenta que la ruta en la cual estamos realizando la configuración, no debe ser writeable (escribible), por usuarios que puedan impactar en dicha política. Esto suele ser un fallo en la seguridad muy importante y que se suele cometer. Por ejemplo, todo lo que se encuentre dentro de las carpetas System32 y ProgramFiles, por defecto, va a poder ser ejecutado. Sin embargo, dentro de las mismas, solo van a poder escribir usuarios administradores. Por lo tanto, los usuarios comunes del sistema no podrán modificar dicho contenido.
Configuración por HASH
En el caso que queramos realizar una configuración para que un determinado software pueda ser o no ejecutado, lo que se puede hacer es crear una regla en base al HASH. En este caso lo que deberíamos hacer es, eliminar la regla anterior y crear una nueva, del mismo modo damos clic derecho y elegimos la opción Hash Rule, seleccionamos dicho PATH o archivo ejecutable y luego solo debemos esperar que se calcule el Hash.
Como podemos observar, no podemos ejecutar el programa con el nombre original y cambiado. Ya que, lo que se está calculando es el Hash o la firma que este posee, la cual consiste en un conjunto de caracteres cuya función es encriptar la información y defender la integridad o veracidad del mismo. (Más adelante veremos en detalle esta función).
No obstante, debemos tener en cuenta que este tipo de regla es muy recomendable configurarlas para que cada una permita ciertas ejecuciones. Ya que, si bloqueamos dicho programa ejecutable, alguien podría hacer una modificación muy pequeña del mismo, por ejemplo, abriendo un programa con un editor hexadecimal, y con el solo hecho de cambiar un bit dentro del programa la regla de Hash NO VA A APLICAR.
Por lo tanto, es recomendable, usar la política de denegación por defecto y no aceptación por defecto.
Denegación por defecto
Veamos cómo realizar esto a través de la siguiente configuración:
Hacemos clic derecho sobre dicha configuración del PATH realizado y nos vamos a propiedades. Allí cambiaremos el nivel se seguridad de “Disallowed” a “Unrestricted”
Luego cambiaremos la política por defecto. En este caso lo que estamos haciendo es avisándole que mientras no haya una regla que nos pida lo contrario TODO VA A SER BLOQUEADO. Entonces como ya tenemos las reglas por defecto que permiten bloquear todo lo que está dentro de System32 y ProgramFiles, los usuarios podrán ejecutar la mayoría de los programas, pero no podrán ejecutar programas que se encuentren en ubicaciones específicas o no fiables.
En este caso lo que estamos logrando es que el usuario no tenga control de los programas que pueda ejecutar, sino que depende del administrador para definirlo. Todo esto eleva mucho el nivel de seguridad de un sistema y nos protege de muchas amenazas, es especial aquellas que se aprovecha de la intención del usuario de descargar un programa o software malicioso, el cual lo ejecutan pensando que no provocará ningún problema y, en muchos casos, termina siendo todo lo contrario.