<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>El blog de Santiago Nuñez Martinez</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/snunez/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/snunez/feed.xml</link>
    <description>Notas y experiencias personales sobre seguridad.</description>
    <lastBuildDate>Tue, 16 Apr 2019 06:17:31 GMT</lastBuildDate>
    <language>es_ES</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Diferenciar usuarios sincronizados con Azure AD Connect</title>
      <link>https://docs.microsoft.com/archive/blogs/snunez/diferenciar-usuarios-sincronizados-con-azure-ad-connect</link>
      <pubDate>Mon, 10 Sep 2018 14:22:25 GMT</pubDate>
      <dc:creator><![CDATA[Santiago Nuñez Martinez]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/snunez/?p=155</guid>
      <description><![CDATA[Últimamente, he necesitado diferenciar los usuarios creados en Azure AD de los usuarios...]]></description>
      <content:encoded><![CDATA[Últimamente, he necesitado diferenciar los usuarios creados en Azure AD de los usuarios sincronizados mediante Azure AD Connect.

Los atributos que nos permiten diferenciar estos usuarios son los siguientes:
<ul>
 	<li>DirSyncEnabled</li>
 	<li>ImmutableId</li>
 	<li>OnPremisesSecurityIdentifier</li>
 	<li>LastDirSyncTime</li>
</ul>
De estos atributos, el más lógico es <strong>DirSyncEnabled</strong>. Pero una característica interesante a la hora de usar este atributo es que o tiene el valor <em>true</em> o tiene <em>null;</em> no tiene el valor <em>false</em>. Mis primeros scripts y grupos asumían que el valor sería true o false, y no funcionaban correctamente.

Teniendo en cuenta esta característica, no resulta complicado tener una consulta powershell que nos devuelva los usuarios creados en Azure AD:
<pre><span style="color: #0000ff">Get-AzureADUser</span> <span style="color: #000000">-All</span> <span style="color: #ff0000">$true</span> <span style="color: #808080">|</span> <span style="color: #0000ff">where</span> {<span style="color: #ff0000">$_</span><span style="color: #808080">.</span>DirSyncEnabled <span style="color: #808080">-ne</span> <span style="color: #ff0000">$true</span>}</pre>
O crear un grupo dinámico.

[caption id="attachment_165" align="alignnone" width="300"]<img src="https://msdnshared.blob.core.windows.net/media/2018/09/Dynamic-Group-300x251.png" alt="Grupo Dinámico de Azure AD" width="300" height="251" class="size-medium wp-image-165" /> Grupo Dinámico de Azure AD[/caption]]]></content:encoded>
    </item>
    <item>
      <title>Auditar Office 365</title>
      <link>https://docs.microsoft.com/archive/blogs/snunez/auditar-office-365</link>
      <pubDate>Fri, 29 Dec 2017 13:07:56 GMT</pubDate>
      <dc:creator><![CDATA[Santiago Nuñez Martinez]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/snunez/?p=115</guid>
      <description><![CDATA[Al igual que entradas anteriores, ésta recoge una pregunta o necesidad frecuente de los equipos de...]]></description>
      <content:encoded><![CDATA[Al igual que entradas anteriores, ésta recoge una pregunta o necesidad frecuente de los equipos de seguridad: auditar lo que sucede en Office 365.

En este caso, recogeré lo que suelo contar habitualmente a los clientes:
<ul>
 	<li>Habilitar los eventos de auditoría en Office 365</li>
 	<li>Consultar estos eventos de auditoría</li>
 	<li>Integrar estos eventos en un SIEM (por ejemplo OMS)</li>
</ul>
<h1>Eventos de auditoría en Office 365.</h1>
El primer paso es habilitar la auditoría de los elementos que os interesan.

Office 365 es un conjunto de servicios: Exchange Online, SharePoint Online, Teams, Yammer, Power BI, Sway, ... (seguro que me dejo alguno). Hay que registrar los eventos de Office 365 que nos interesen. Una forma sencilla de comenzar es habilitar el log unificado de Office 365 (<a href="https://support.office.com/en-us/article/Turn-Office-365-audit-log-search-on-or-off-e893b19a-660c-41f2-9074-d3631c95a014">https://support.office.com/en-us/article/Turn-Office-365-audit-log-search-on-or-off-e893b19a-660c-41f2-9074-d3631c95a014</a>). Si disponéis de un entorno de pruebas, os recomiendo usarlo para facilitar la decisión de qué eventos queremos registrar, una aproximación que suelo recomendar es empezar por Exchange Online, habilitar la auditoría en los buzones de correo y revisar los eventos de auditoría para adaptarlos a nuestras necesidades.
<pre>$Creds = Get-Credential 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell -Credential $Creds -Authentication basic -AllowRedirection
Import-PSSession $Session

Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditEnabled $true
Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | Set-Mailbox -AuditLogAgeLimit 180

Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq "UserMailbox"} | FL Name,Audit*</pre>
<h1>Consultar los eventos de auditoría.</h1>
Ya tenemos habilitada la auditoría con los eventos que nos interesa (o estamos en ello) y lo que necesitamos es hacer consultas sobre estos eventos.

Lo más habitual es que los usuarios que necesitan hacer consultas, dispongan de cuentas de usuario con los permisos adecuados delegados para hacer las consultas. Para conseguir estos permisos, se pueden usar los roles existentes (incluyendo los roles de Exchange) o se pueden crear delegaciones personalizadas según las necesidades.

La herramienta que suelo recomendar para ello es <a href="https://protection.office.com">https://protection.office.com</a> (el centro de seguridad y cumplimiento de Office 365.

<img width="271" height="300" class="size-medium wp-image-146 aligncenter" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/12/audit_log_search-271x300.png" />

Para más información sobre como hacer las consultas, ver el artículo: <strong><a href="https://support.office.com/en-us/article/Search-the-audit-log-in-the-Office-365-Security-Compliance-Center-0d4d0f35-390b-4518-800e-0c7ec95e946c">https://support.office.com/en-us/article/Search-the-audit-log-in-the-Office-365-Security-Compliance-Center-0d4d0f35-390b-4518-800e-0c7ec95e946c</a> </strong>
<h1>Integración con SIEM.</h1>
Las principales dudas vienen a la hora de integrar estos eventos con el SIEM corporativo. La mayoría de las organizaciones ya disponen de un SIEM para los eventos de seguridad y quieren integrar los eventos de Office 365. Es importante tener habilitado el registro de los eventos que necesitemos (lo que no se habilite no aparecerá).
En Azure AD, se creará una aplicación para conceder acceso a los log al SIEM. Este proceso se hace una única vez de manera que el SIEM se conecte con las credenciales de esa aplicación para descargarse los eventos. Normalmente, el fabricante del SIEM tiene documentado el procedimiento para crear esa aplicación, y en algunos casos (como OMS) la creación de la aplicación se realiza de manera automática.

<img width="300" height="153" class="size-medium wp-image-147 aligncenter" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/12/Office_365_management_API-300x153.png" />

A partir de este momento, los eventos llegarán al SIEM y se podrá trabajar con ellos. Al igual que en el caso anterior, suelo recomendar tener un entorno de prueba y en esos casos, añadir OMS es realmente sencillo: <a href="https://docs.microsoft.com/en-us/azure/operations-management-suite/oms-solution-office-365">https://docs.microsoft.com/en-us/azure/operations-management-suite/oms-solution-office-365</a>]]></content:encoded>
    </item>
    <item>
      <title>Métodos para "controlar" Active Directory</title>
      <link>https://docs.microsoft.com/archive/blogs/snunez/metodos-para-controlar-active-directory</link>
      <pubDate>Wed, 28 Jun 2017 16:51:59 GMT</pubDate>
      <dc:creator><![CDATA[Santiago Nuñez Martinez]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/snunez/?p=105</guid>
      <description><![CDATA[Esta entrada viene a resumir una conversación con un responsable de seguridad que me pedía que le...]]></description>
      <content:encoded><![CDATA[Esta entrada viene a resumir una conversación con un responsable de seguridad que me pedía que le explicase como podría "auditar" el uso de su Active Directory. Según iba avanzando la conversación, entendía mejor el contexto y lo que se perseguía y proponiendole tres métodos, no excluyentes entre sí y que creo que pueden servir a los propósitos que buscan.

Los tres métodos propuestos son:
<ul>
 	<li>Auditoria de Active Directory</li>
 	<li>Revisión de configuración de Active Directory</li>
 	<li>Análisis de comportamiento de Active Directory</li>
</ul>
Primero el contexto. Se trata de una organización en la que las tareas de administración de Active Directory están separadas de las tareas de seguridad. En este caso, se trata de dar una visión al departamento de seguridad sobre lo que sucede en Active Directory. La primera palabra clave que salió en la conversación es auditoría, pero en este contecto había que tener en cuenta que además de tener los eventos de auditoría de lo que sucede (un usuario ha iniciado sesión, se ha asignado un nuevo miembro a un grupo, ...) era omteresate saber cómo estaba configurado el entorno (que grupos privilegiados existen, que miembros tienen, ...) y además ser capaz de entender cuando un evento es una posible alerta (detectar comportamientos anómalos, ...).
<h2>Auditoría de Active Directory</h2>
<div>Las funciones de auditoría en Active Directory son muy conocidas y de forma resumida se trata de counfirar los eventos de auditoría que queremos que registren en los controladores de dominio (Security Event Log). Hay muchas guías de configuración, de forma resumida los pasos son los siguientes:</div>
<ul>
 	<li>Habilitar la auditoría en los controladores de dominio para los objetos de Active Directory (https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations)</li>
 	<li>Habilitar la auditoría en los propios objetos a monitorizar (SACL) (En el mismo documento, hay una serie de recomendaciones de objetos a auditar  https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations#active-directory-objects-and-attributes-to-monitor)</li>
</ul>
Una vez realizadas las configuraciones lo más habitual es enviar los log de auditoría a un SIEM o a un sistema para su análisis.

Hay varios artículos muy interesantes al respecto de la auditoría en Active Directory:
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/monitoring-active-directory-for-signs-of-compromise
https://technet.microsoft.com/en-us/library/cc731607(v=ws.10).aspx
<h2>Revisión de configuración de Active Directory</h2>
El problema de quedarse sólo con la auditoría, es que las mejoras de configuración sólo se realizarán cuando se detecte un comportamiento no deseado, pero existen una serie de recomendaciones que podemos aplicar de manera proactiva. Mis compañeros de soporte tienen un servicio que se llama Active Directory Security Assessment que recopila la información de seguridad de un entorno de Active Directory y presentan un informe con los principales riesgos de seguridad y como resolverlos.

Una opción DIY de realizar una revisión de Active Directory (menos completa que la anterior) es usar OMS (Operations Management Suite) para ello existe un módulo "AD Assessment" que es un buen punto de partida. https://blogs.technet.microsoft.com/msoms/2016/01/12/use-operations-management-suite-for-active-directory-assessment/
<h2>Análisis de comportamiento de Active Directory</h2>
En la parte de comportamiento ya estamos hablando de otro tipo de recopilación de información. Aquí es donde encaja ATA (Advanced Threat Analytics) que permite analizar el comportamiento de usuarios y entidades (equipos) y levanta alertas ante comportamientos anómalos. Es un producto que entra dentro de la categoría UEBA (User and Entity Behavior Analytics).

El despliegue es muy sencillo y en muchos casos sin impacto en Active Directory, ya que no hace falta ningún tipo de permisos en Active Directory. Lo que se hace es “duplicar” el puerto de recibe y envía tráfico de los controladores de dominio, mediante port mirroring y todo el tráfico que entra y sale de los DC se envía también a un ATA Gateway que se encarga de analizarlo. También se puede recolectar este tráfico con un agente ATA Lightweight Gateway.

De esta manera, ATA detecta diferentes comportamientos anómalos:
<ul>
 	<li>Basados en patrones. Estos comportamientos anómalos se detectan sin necesidad de un aprendizaje y se basan en comportamientos que por la secuencia de actividades entran claramente en un patrón de ataque, como son:
<ul>
 	<li>Actividades de reconocimiento (enumeraciones DNS, enumeraciones de cuentas, …)</li>
 	<li>Actividades sospechosas de fuerza bruta (NTLM, Kerberos, LDAP,…)</li>
 	<li>Implementaciones maliciosas de protocolos (DPAPI)</li>
 	<li>Cuentas “honey pot” con actividad</li>
 	<li>Pass-the-Hash, Pass-the-Ticket, Silver Ticket, Golden ticket, …</li>
 	<li>Y seguro que me dejo alguna</li>
</ul>
</li>
 	<li>Basados en comportamiento. Aquí se detectan comportamientos anómalos basados en el modelo de comportamiento que ha creado ATA.
<ul>
 	<li>Acceso a recursos anómalos</li>
 	<li>Horas de actividad anómalas</li>
 	<li>Ejecuciones remotas</li>
</ul>
</li>
</ul>
Hay mucha más información sobre ATA en https://www.microsoft.com/en-us/cloud-platform/advanced-threat-analytics
<div></div>
<h2>Mis recomendaciones</h2>
Si es posible, usar los tres métodos:
<ul>
 	<li>Auditar los eventos de seguridad de Active Directory que se recomiendan.</li>
 	<li>Realizar un assessment de seguridad continuo (si puede ser con los servicios de soporte Premier, mejor).</li>
 	<li>Utilizar una herramienta de detección de comportamientos anómalos.</li>
</ul>
<div></div>]]></content:encoded>
    </item>
    <item>
      <title>Azure Key Vault en entornos de producción</title>
      <link>https://docs.microsoft.com/archive/blogs/snunez/azure-key-vault-en-entornos-de-produccion</link>
      <pubDate>Thu, 11 May 2017 21:30:52 GMT</pubDate>
      <dc:creator><![CDATA[Santiago Nuñez Martinez]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/snunez/?p=47</guid>
      <description><![CDATA[El origen de esta entrada es una consulta de un compañero, que me ha motivado a explicar mi...]]></description>
      <content:encoded><![CDATA[El origen de esta entrada es una consulta de un compañero, que me ha motivado a explicar mi experiencia con Azure Key Vault y su uso en producción.
<h2>¿Qué es Azure Key Vault?</h2>
Lo primero, por si no os suena, Azure Key Vault es un servicio de gestión de claves criptográficas y secretos. Se trata de un servicio de Azure en el que se pueden mantener secretos (contraseñas) o claves criptográficas que se usarán desde diferentes aplicaciones. Lo más interesante de este servicio es que separa la gestión del ciclo de vida de las claves (que normalmente será responsabilidad de los responsables de seguridad) del ciclo de vida de las aplicaciones que usan las claves (que serán responsabildad de los desarrolladores).

Si queréis leer en más detalle sobre Azure Key Vault: https://docs.microsoft.com/azure/key-vault/
<h2><img width="1024" height="576" title="Azure Key Vault" class="aligncenter wp-image-55 size-large" alt="azure-key-vault" src="https://msdnshared.blob.core.windows.net/media/2017/05/Azure-Key-Vault-1024x576.png" />¿Por qué no veo las claves en el Key Vault de producción?</h2>
Esta fue la duda que me planteó mi compañero. Y venía justificada porque en el entorno de desarrollo, podía conectarse con su cuenta al Key Vault de desarrollo y ver las claves que existían, sus propiedades, etc. Pero en el entorno de producción ya no era así. Su cuenta de desarrollador no tenía ningún permiso en el Key Vault de producción y por lo tanto no veía ninguna clave ni secreto. La aplicación funcionaba correctamente (porque se habían asignado los permisos a la identidad de la aplicación), pero los desarrolladores no podían ver si las claves existían, sus propiedades, etc.

La conclusión era que todo funcionaba correctamente y que el modelo de permisos de acceso para el Key Vault estaba funcionando correctamente. En la mayoría de ejemplos que existen se muestran las claves, propiedades, etc. porque se hace con permismos de administrador, pero no hay que asumir que siempre se tendrán esos permisos.

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>¡Hola mundo!</title>
      <link>https://docs.microsoft.com/archive/blogs/snunez/hola-mundo</link>
      <pubDate>Tue, 25 Apr 2017 17:10:08 GMT</pubDate>
      <dc:creator><![CDATA[Santiago Nuñez Martinez]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/snunez/?p=35</guid>
      <description><![CDATA[Esta es la primera entrada del blog y por ello aprovecho para recoger mis intenciones con este...]]></description>
      <content:encoded><![CDATA[Esta es la primera entrada del blog y por ello aprovecho para recoger mis intenciones con este blog:
<ul>
 	<li>El <strong>contenido</strong> se basará en mis opiniones y mi experiencia personal. Eso significa que puedo estar y estaré equivocado en lo que escriba en muchas ocasiones, pero si hay suerte en algún caso acertaré. Mi recomendación para los lectores es que no hay que creer todo lo que se lee en Internet.</li>
 	<li>Mi <strong>objetivo</strong> personal es recopilar información útil y experiencias que comparto con compañeros y clientes y que me será más fácil compartir desde aquí­.</li>
 	<li>La <strong>tématica</strong> de las entradas será variada y dependerá de lo que tenga que compartir en cada caso. Lo normal sería: seguridad, criptografíaa, certificados, ... veremos.</li>
 	<li>La <strong>frecuencia</strong> dependerá de qué tenga algo interesante que compartir. Intentaré publicar algo al menos una vez al mes.</li>
 	<li>Si dejas un <strong>comentario</strong>, lo revisaré y contestaré siempre que me sea posible. Pero eso no incluye revelar información que no esté autorizado o resolver problemas de entornos en producción.</li>
</ul>]]></content:encoded>
    </item>
  </channel>
</rss>