Automatización del cumplimiento de las STIG de Windows Server con scripts de STIG
**Descargue todos los archivos necesarios de la página GitHub Repository
Nota: Este script debería funcionar en la mayoría, si no en todos, los sistemas sin problemas. Aunque @SimeonOnSecurity creates, reviews, and tests each repo intensively, we can not test every possible configuration nor does @SimeonOnSecurity take any responsibility for breaking your system. If something goes wrong, be prepared to submit an issue No ejecute este script si no entiende lo que hace. Es su responsabilidad revisar y probar el script antes de ejecutarlo.
Ansible:
Ahora ofrecemos una colección de playbooks para este script. Consulte lo siguiente:
Introducción:
Windows 10 es inseguro sistema operativo fuera de la caja y requiere muchos cambios para asegurar FISMA cumplimiento. Organizaciones como Microsoft , Cyber.mil , the Department of Defense , and the National Security Agency han recomendado y exigido cambios de configuración para bloquear, endurecer y asegurar el sistema operativo y garantizar el cumplimiento de la normativa gubernamental. Estos cambios abarcan una amplia gama de mitigaciones, como el bloqueo de la telemetría, las macros, la eliminación del bloatware y la prevención de muchos ataques físicos a un sistema.
Los sistemas autónomos son algunos de los más difíciles y molestos de proteger. Cuando no están automatizados, requieren cambios manuales de cada STIG/SRG. Un total de más de 1000 cambios de configuración en un despliegue típico y una media de 5 minutos por cambio equivalen a 3,5 días de trabajo. Este script pretende acelerar ese proceso significativamente.
Notas:
- Este script está diseñado para operar en entornos Empresariales y asume que usted tiene soporte de hardware para todos los requerimientos.
- Para sistemas personales por favor vea esto GitHub Repository
- Este script no está diseñado para llevar un sistema al 100% de cumplimiento, más bien debe ser utilizado como un trampolín para completar la mayoría, si no todos, los cambios de configuración que pueden ser guionizados.
- Menos la documentación del sistema, esta colección debería llevarle a un 95% de cumplimiento en todos los STIGS/SRGs aplicados.
Requisitos:
- Se requiere Windows 10 Enterprise por STIG.
- Standards para un dispositivo Windows 10 altamente seguro
- System is
fully up to date
- Ejecute el Windows 10 Upgrade Assistant para actualizar y verificar la última versión mayor.
- X] Bitlocker debe ser suspendido o desactivado antes de implementar este script, puede ser activado de nuevo después de reiniciar.
- Las siguientes ejecuciones de este script pueden realizarse sin desactivar bitlocker.
- X] Requisitos de hardware
Material de lectura recomendado:
- System Guard Secure Launch
- System Guard Root of Trust
- Hardware-based Isolation
- Memory integrity
- Windows Defender Application Guard
- Windows Defender Credential Guard
Una lista de scripts y herramientas que utiliza esta colección:
Se consideraron configuraciones adicionales de:
- Microsoft - Recommended block rules
- Microsoft - Recommended driver block rules
- Microsoft - Windows Defender Application Control
- NSACyber - Application Whitelisting Using Microsoft AppLocker
- NSACyber - Hardware-and-Firmware-Security-Guidance
- NSACyber - Windows Secure Host Baseline
STIGS/SRGs Applied:
- Adobe Acrobat Pro DC Continuous V2R1
- Adobe Acrobat Reader DC Continuous V2R1
- Firefox V5R2
- Google Chrome V2R4
- Internet Explorer 11 V1R19
- Microsoft Edge V1R2
- Microsoft .Net Framework 4 V1R9
- Microsoft Office 2013 V2R1
- Microsoft Office 2016 V2R1
- Microsoft Office 2019/Office 365 Pro Plus V2R3
- Microsoft OneDrive STIG V2R1
- Oracle JRE 8 V1R5
- Windows 10 V2R2
- Windows Firewall V1R7
Editar políticas en la Política de Grupo Local después del hecho:
- Importar las definiciones de políticas ADMX desde repo en C:\windows\PolicyDefinitions en el sistema que está intentando modificar.
- Abrir
gpedit.msc
en el sistema que intentas modificar.
Cómo ejecutar el script:
Instalación automatizada:
El script puede ser lanzado desde la descarga extraída de GitHub así:
iex ((New-Object System.Net.WebClient).DownloadString('https://simeononsecurity.com/scripts/standalonewindows.ps1'))
Instalación manual:
Si se descarga manualmente, la secuencia de comandos debe iniciarse desde el directorio que contiene todos los demás archivos de la GitHub Repository
Todos los parámetros del script “secure-standalone.ps1” son opcionales, con un valor por defecto de $true. Esto significa que si no se especifica ningún valor para un parámetro cuando se ejecuta el script, se tratará como si estuviera establecido en $true.
El script toma los siguientes parámetros, todos ellos opcionales y por defecto $true si no se especifican:
- cleargpos: (Boolean) Borrar los GPO que no se estén utilizando.
- instalaractualizaciones**: (Booleano) Instalar actualizaciones y reiniciar si es necesario.
- adobe: (Booleano) STIG Adobe Reader
- firefox: (Booleano) STIG Firefox
- chrome: (Booleano) STIG Chrome
- IE11: (Booleano) STIG Internet Explorer 11
- edge: (booleano) STIG Edge
- dotnet: (Booleano) STIG .NET Framework
- office: (booleano) STIG Office
- onedrive: (booleano) STIG OneDrive
- java**: (booleano) STIG Java
- Windows**: (booleano) STIG Windows
- defender: (Booleano) STIG Windows Defender
- cortafuegos**: (Booleano) STIG Windows Firewall
- mitigaciones: (Booleano) Mitigaciones STIG
- nessusPID: (Booleano) Resolver cadenas no entrecomilladas en ruta
- horizon: (Booleano) STIG VMware Horizon
- sosopcional: (Booleano) Elementos opcionales de STIG/Hardening
Un ejemplo de cómo ejecutar el script con todos los parámetros por defecto sería:
.\secure-standalone.ps1
Si desea especificar un valor diferente para uno o más de los parámetros, puede incluirlos en el comando junto con su valor deseado. Por ejemplo, si desea ejecutar el script y establecer el parámetro $firefox en $false, el comando sería:
.\secure-standalone.ps1 -firefox $false
También puede especificar varios parámetros en el comando de la siguiente manera:
.\secure-standalone.ps1 -firefox $false -chrome $false
Tenga en cuenta que, en este ejemplo, tanto los parámetros de Firefox como los de Chrome tienen el valor $false.