Zerkana

viernes, 17 de mayo de 2019

Seguridad y cumplimiento en Microsoft 365 - Cloud App Security

Hola

Hace unos días por aquí estuvimos hablando de auditoría en Microsoft 365. Para seguir con el tema seguridad, en mi opinión muy importante, comenzamos una serie de post que irán orientados a exponer aquello más importante que tenemos en el Admin Center "Seguridad y Cumplimiento" dentro de Microsoft 365.

En esta era de la "transformación digital", "subirse a la nube" o como queráis describir a esta evolución tecnológica, la seguridad de la información juega un papel fundamental, no debemos cegarnos en que "una vez en la nube" todo funciona solo, estamos seguros, no existen ataques o, en este caso Microsoft, nos protege !no es del todo cierto!

Bien, en lo que respecta a Microsoft 365, nos ofrece una serie de funciones y controles que nos va a permitir a los administradores securizar, auditar, gobernar la información que reside en los distintos servicios de la plataforma como Exchange Online, Microsoft Teams, OneDrive, SharePoint y es consumida por los usuarios.

La puerta de entrada a estos controles es el centro de Seguridad y Cumplimiento, al cual accedemos a través de https://protection.office.com




Una vez realizada esta breve introducción, para abrir boca comenzamos con Cloud App Security que nos va a permitir entre otros:


  • Configurar alertas y políticas avanzadas que nos van a permitir investigar aquellos comportamientos sospechosos o anómalos.
  • Obtener información sobre el actual uso de Office 365 y otros servicios de productividad en la nube.
  • Ver y controlar a que aplicaciones se han concedido permiso para obtener acceso al entorno Office 365.

En concreto vamos a ver como configurar alertas avanzadas que entre otros nos permitirán detectar descarga masiva de información por parte de algún usuario, detectar comportamientos anómalos como el inicio de sesión de un mismo usuario desde varias ubicaciones en un periodo corto de tiempo, comportamientos propios de actividad ramsomware y un claro ejemplo que no solo hablamos de supervisión de Microsoft 365 sino que también podemos supervisar y alertar si se detecta la eliminación de varias maquinas virtuales de Azure en una misma sesión de usuario...


En primer lugar accedemos a la gestión de alertas avanzadas o lo que es lo mismo Cloud App Security:







Para configurar estas alertas avanzadas podemos usar varias directivas, bien desde 0 o a partir de plantillas predefinidas, en nuestro caso vamos a configurar una directiva de "actividad" que nos alerte sobre descarga masiva de información a partir de una plantilla existente:











En el ejemplo de arriba estamos indicando una actividad repetida, el numero de repeticiones equivaldría al numero de archivos descargados en el periodo de tiempo indicado. En este caso 30 archivos en 5 minutos, por supuesto deberíamos subir el numero de archivos, o no, esto ya va en cada necesidad.



En la sección de actividades la plantilla contiene 11 selecciones relacionados con "download" tanto de OneDrive como SharePoint, si es desde web o mediante sync etc... No seria necesario configurar nada mas aquí. Solo quedaría habilitar las alertas para esta acción bien por sms o por correo electrónico. Tomar nota que podemos enviar las alertas a Microsoft Flow y desencadenar acciones :)




Por ultimo tenemos opciones de gobierno donde podemos indicar que ante esta alerta se suspenda el usuario en cuestión.


Directiva preparada para entrar en acción:





Cuando se cumple tendremos alerta en el portal...



También si el usuario es externo a la organización...





Y este sería el correo electrónico recibido por l@s interés@d@s...








Esto es solo un ejemplo de lo que podemos realizar con Cloud App Discovery en lo que a supervisión y alertas se refiere, aquí tenéis más información:

https://docs.microsoft.com/es-es/cloud-app-security/what-is-cloud-app-security


Un Saludo y buen fin de semana.









miércoles, 15 de mayo de 2019

Habilitando la auditoria en Office 365

Hola,

Una función muy importante y que por defecto se encuentra deshabilitada en nuestro tenant de Office 365 es la auditoría.

En este post vamos a ver como habilitarla tanto a nivel de interfaz gráfica como powershell. Una vez habilitada veremos como se registran en el "Audit Log" todos los eventos relacionados con las diversas aplicaciones que componen la suite, Teams, OneDrive, Correo, SharePoint etc....

Habilitar la auditoría es un paso obligatorio para posteriormente trabajar con Cloud App Discovery y sus advanced alerts, esto lo veremos en próximos post.

Habilitar auditoría a través de administración Web:

Con privilegios de administrador Global accedemos a nuestro portal office, accedemos al área de administrador y seleccionamos el centro de administración "Security & Compliance" buscamos la sección de Audit log o auditoría y nos aparecerá la opción de "Habilitar" bien resaltada:



Tomar nota que los eventos, dependiendo del servicio origen, tardarán entre 30 minutos y 24 horas en aparecer. Los registros de auditoría estarán disponibles durante 90 días en planes estándar y hasta 365 días en planes Enterprise E5.

Habilitar auditoría a través de Powershell




Una vez habilitada la función y tras un tiempo prudencial, podremos comenzar a usar la búsqueda de eventos relacionados con cualquier aplicación de office 365, crear, borrar buzones, compartir, descargar, eliminar, documento en OneDrive o SharePoint etc...







Otro tema interesante es que para un resultado de búsqueda, por ejemplo "Se ha creado nuevo usuario" se puede configurar una alerta que se desencadenará ante este evento en cuestión.





En próximos post veremos como configurar "Advanced Alerts" usando "Cloud App Discovery", función algo desconocida que es muy interesante pero sobre todo importante cuando cada vez estamos subiendo mas información a la nube y queremos tener cierto control y supervisión.

 Un saludo.

martes, 14 de mayo de 2019

Gestión del registro de la Jornada con Office 365

Hola,

En este post no vamos a profundizar en legislación... no obstante:

"Desde el pasado lunes 13 de Mayo, se encuentra en vigor la nueva ley que obliga a toda empresa a tener un registro de la jornada de sus empleados"

Como sabemos Office 365 o Microsoft 365 (de este último producto hablaremos en siguientes post) dispone de una serie de herramientas que potencian la colaboración y productividad de los usuarios.

En las siguientes líneas vamos a ver como podemos implementar una solución para la gestión del registro de la jornada de nuestros empleados usando Office 365. Esta "aplicación" nos permitirá el registro tanto de entrada o salida, fecha y hora, además de localización exacta del evento, todo ello usando un dispositivo móvil mediante un "botón".

Como vamos a ver, los pilares de la solución son:

  • Un libro Excel Online - Donde se registraran los eventos del usuario en cuestión
  • Un Site SharePoint Online - Donde se almacena y se accede el archivo basado en  Excel Online
  • Un par de flujos de Microsoft Flow - Necesarios para el recordatorio del registro de jornada y para el propio registro de entrada y salida al trabajo.

A continuación vamos a describir las partes principales para que esta aplicación sea funcional.

En primer lugar debemos disponer de un archivo Excel online, formateado con los campos que nos interesan:




En segundo lugar un repositorio compartido en nube, en nuestro caso un sitio de SharePoint Online con los permisos de acceso adecuados:




En tercer lugar un par de Flow configurados adecuadamente, el primero de ellos nos recordara mediante notificación push al móvil que debemos registrar entrada o salida al trabajo. El segundo Flow, basado en botón, nos permitirá registrar el evento (Entrada o salida), la ubicación "Manual" mediante lista desplegable de opciones y la ubicación real o GPS mediante la localización 👀



En cuarto lugar debemos tener instalada la App de Microsoft Flow en nuestro dispositivo móvil, disponible en Google Play o bien App Store de IOS.



IMPORTANTE: La app debe disponer de acceso a notificaciones y ubicación mientras se usa.



Bien, hora de probar la solución:

Si todo ha ido bien, deberemos recibir esta notificación push diariamente, tanto a la hora de entrada como salida estipuladas:



Siendo aplicados, usaremos el "botón" de Flow para registrar bien nuestra entrada o salida, además de ubicación manual disponible en las opciones que se presentan (Este paso sería adicional, como antes se ha nombrado, la ubicación se registrará dependiendo nuestra ubicación real con la dirección exacta, población y código postal)


Desde la app móvil Flow, accedemos a "Botones" para registrar el evento en cuestión y la ubicación que nuestro administrador ha puesto a disposición mediante lista de opciones:



Completamos ambos desplegables con evento y ubicación:






Aceptamos y si todo ha ido bien quedará registrado y recibiremos la notificación correspondiente:




Y en el archivo Excel Online se podrá ver el resultado:





El/la administrador/a podrá dar seguimiento y tratar como le interese esta base de datos de registro fácilmente gracias a Excel Online.

Por otro lado y como medidas de seguridad, cada vez que se intenta eliminar una fila, descargar, compartir etc... este archivo en cuestión, los Admin de la solución reciben una alerta mediante correo electrónico.

!Sed felices registrando vuestra jornada laboral!


jueves, 9 de mayo de 2019

Cambiar aspecto clásico por moderno en una colección de sites SharePoint

Hola,


En este post nos vamos a centrar a explicar como podemos cambiar la apariencia clásica de una colección de sitios de SharePoint, por una apariencia moderna. Cuando tenemos la colección de sitio principal de nuestro Tenant de office365, por defecto tiene esta apariencia.




La forma de cambiar dicha apariencia seria de la siguiente forma: Pulsaríamos encima de contenidos del sitio y después en paginas del sitio.






























Por defecto nos trae dos paginas ya creadas, debemos crear una nueva pagina. Pulsamos en Nuevo, y seleccionamos la opción "Pagina de sitio".





















Editamos la pagina con la apariencia que queremos(en nuestro caso, con vínculos a diferentes HUB concentradores de sites).




















Y una vez finalizada, ya tenemos que poner que esta sea la pagina principal de la colección de sitios.






























Una vez echo esto, ya tenemos nuestra pagina principal de nuestra colección de sitios de forma moderna.



Referencias: https://support.office.com/es-es/article/usar-una-p%C3%A1gina-diferente-para-la-p%C3%A1gina-principal-del-sitio-de-sharepoint-35a5022c-f84a-455d-985e-c691ab5dfa17

 Un saludo.

lunes, 6 de mayo de 2019

Azure Automation - Parte 3 - Configurando las alertas

Hi,

En ese último post dedicado al servicio de Azure Automation nos vamos a centrar en la configuración de alertas para obtener la tranquilidad de que recibiremos un SMS o mail ante fallo de alguno de nuestros runbook.

En este articulo vamos a realizar una configuración de alertas no solo del estado general del runbook = "Job Status"  sino que también vamos a monitorizar los errores que se produzcan en el código de nuestro script (Powershell, Python etc...) supervisando y alertando sobre el estado de los "Job Stream".

Esta muy bien saber si la ejecución del runbook ha fallado o se ha suspendido pero... ¿y si falla alguna secuencia o parámetro de nuestro script? Por ejemplo los cmdlet de conexión a Exchange online son cambiados y/o actualizados por Microsoft o existe algún problema con la cuenta de Admin usada para conectar, en fin, podríamos poner mil condiciones que pueden afectar a la funcionalidad de nuestro código.

Tras esta breve introducción comenzamos con las configuraciones necesarias, donde el primer paso es configurar integración entre Azure automation y Azure Monitor donde el servicio de automation enviará los logs a un workspace de log analytics, a partir de aquí podremos configurar nuestras alertas y grupos de acción:

Estos son los pre-requisitos necesarios:

  • Azure powershell 
  • Espacio de trabajo de Log Analytics
  • El ResoruceID de la cuenta de automatización que queremos integrar


  1. Creación de un Workspace de log Analytics 
Si no disponemos de uno, tendremos que generarlo accediendo al portal de Azure-->En la búsqueda introducimos "analytics" y podremos generarlo desde el Marketplace:





   2.  Configurar integración cuenta automatización con Azure Monitor

El siguiente paso sería conectar powershell (Connect-Azaccount) a nuestra suscripción de azure y realizar la integración:

 Obtenemos y anotamos el ResourceID de la cuenta de automatización a integrar y del workspace de log analytics:

# Find the ResourceId for the Automation Account
Get-AzResource -ResourceType "Microsoft.Automation/automationAccounts"

# Find the ResourceId for the Log Analytics workspace
Get-AzResource -ResourceType "Microsoft.OperationalInsights/workspaces"


Creamos un script con el siguiente código, añadiendo los ResourceID obtenidos en el paso anterior y realizamos la integración:

$workspaceId = "[resource id of the log analytics workspace]"
$automationAccountId = "[resource id of your automation account]"

Set-AzDiagnosticSetting -ResourceId $automationAccountId -WorkspaceId $workspaceId -Enabled 1

Tras la integración el servicio de automation puede tardar hasta una hora en comenzar a enviar los log al espacio de trabajo de log analytics.

Para comprobar que la integración es correcta ejecutamos el siguiente código:

Get-AzDiagnosticSetting -ResourceId $automationAccountId

y en la salida nos aseguramos que "LOGS" aparece como "enabled=True"


Otra opción para asegurarnos de que todo es OK, seria acceder al servicio de Azure Monitor y en configuración de diagnostico validar que esta habilitado:





   3.  Configuración de alertas para Job Status y Job Streams


Podemos ver como se han comenzado a registrar los logs de nuestra cuenta de automation en azure monitor de la siguiente forma:

Accedemos a Azure Monitor-->Registros y ejecutamos la siguiente Query

AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"





Una vez validado, sin salir de esta pantalla podemos comenzar a configurar alertas relativas a Job status y Job Streams sobre nuestros runbook.


En primer lugar vamos a configurar una alerta para envío de correo cuando un runbook falla o queda en estado suspendido

Esta sería la Query que tenemos que realizar y sobre ella configurar una regla de alerta:

AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s



La regla de alerta deber estar basada en consulta, este seria el aspecto final:



Luego debemos generar un "Grupo de acción" donde indicamos que se realizará al desencadenarse la alerta, en nuestro caso se enviará un correo electrónico a la dirección especificada (podría ser una lista de distribución para todos los interesados)



Por último debemos introducir la información necesaria para nuestra alerta y que recibiremos por correo:




Con estos sencillos pasos tendremos configurada nuestra primera alerta y el grupo de acción que podremos añadir a nuevas reglas de alerta configuradas 😄


Para configurar nuestra segunda alerta, la más  importante y que monitorizará y alertará sobre fallos en los Job Streams tenemos que realizar los mismos pasos con estos cambios:


Esta sería la consulta sobre la cual configurar la regla de alerta:

AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count() by JobId_g

No hace falta crear otro grupo de acción, podemos usar el creado anteriormente.


Bien, una vez configuradas las reglas de alerta podemos ver su estado en la siguiente pantalla, preparadas para entra en acción:






Referencias en la web:
https://docs.microsoft.com/en-us/azure/automation/automation-manage-send-joblogs-log-analytics


Un Saludo


viernes, 3 de mayo de 2019

Azure Automation - Parte 2 - Configurando un Runbook

Hi,

Continuamos con la segunda parte de esta serie de post dedicados a Azure Automation, uno mas de los tantos servicios que hospeda el Cloud público, en este caso de Microsoft. 

Comenzamos enumerando las opciones más relevantes que tenemos dentro de la cuenta de automatización, imprescindibles para poder configurar y ejecutar nuestros Runbooks:

  • Runbook: Se pueden generar nuevos o importar desde archivo o galería, basados en powershell, Python 2 o gráficos. El runbook contiene las secuencias necesarias para realizar el proceso que queremos automatizar mediante ejecución manual o programación.

  • Grupos de Hybrid Worker: La función Hybrid Worker nos permite usar automation para automatizar procesos que se ejecutan onpremises u otras nubes. Podemos instalar el rol de Hybrid worker en un equipo físico o virtual, Windows o Linux que se ejecuta en nuestro Datacenter. El requisito fundamental es la conexión puerto 445 de salida hacia las url de azure. Esta función daría para un post entero, aquí os dejo mas información: https://docs.microsoft.com/es-es/azure/automation/automation-hybrid-runbook-worker

  • Tareas de monitor: Función muy interesante, consta de 2 runbook, uno de monitorización y otro de acción. Un claro ejemplo seria, si en una carpeta aparece un archivo nuevo (runbook monitor) crea una copia de seguridad automáticamente (runbook de acción)

  • Módulos: Necesarios para poder confeccionar nuestros script de powershell, al igual que los instalamos en nuestro equipo, también debemos añadirlo a automation (Por ejemplo el modulo MSONLINE para ejecutar procesos en Office 365). Podemos agregarlos desde local en formato zip o bien instalarlos desde la "galería de módulos".

  • Credenciales: Se trata de nuestro "almacén seguro" de credenciales, donde las damos de alta para después poder añadirlas a nuestro código que conforma el runbook en cuestión. Un claro ejemplo sería unas credenciales de Administrador de algún servicio de Office 365.


Una vez descritos los fundamentos, vamos a crear nuestro runbook partiendo del siguiente escenario real:

"Usamos las reglas de transporte de Exchange Online para el tratamiento de mensajes enviados/recibidos a miembros de ciertos grupos de seguridad habilitados para correo. El mantenimiento de la membresía de estos grupos lo realizamos mediante script para la creación y actualización de contactos externos, el cual lanzamos manualmente cada día, tras la exportación de archivos CSV con estos contactos desde nuestro CRM" 

A priori simplemente deberíamos importar a automation nuestro script powershell (.ps1), crear el runbook y programar su ejecución ¿verdad? pero... nuestro script usa un archivo CSV local, el cual tenemos que ubicar en algún lugar accesible para el servicio de automation. En este caso pensamos en Hybrid Worker, no obstante no queremos instalar roles en maquinas locales y crear dependencias, nos interesa que la ejecución sea puramente en la nube así que vamos a usar el storage de azure, en concreto un File Share, para cargar ahí nuestros CSV y que estos sean consumidos por el runbook 👌



  1. Creación de un File Share dentro de nuestra cuenta de almacenamiento y carga de archivos CSV

Doy por supuesto que tenemos una cuenta de storage en Azure por lo que no veremos el proceso de creación, tan sencillo como cualquier otra tarea de infraestructura en Azure

Para crear un recurso de archivos accedemos a la cuenta de almacenamiento y en el panel principal seleccionamos "Archivos", creamos un nuevo recurso indicando nombre y cuota si lo requerimos:



Una vez creado el recurso tenemos 2 opciones para cargar el/los archivos CSV requeridos por nuestro script, bien manual con el botón de carga o una idea sería usar el botón "conectar" que nos permite crear una unidad de red conectada al recurso en cualquiera de nuestras maquinas locales, tras esta conexión persistente podríamos automatizar la copia o exportación de archivos CSV a esta ubicación que a su vez sería el storage de azure 👀



       2.  Creación del runbook

Accedemos a la cuenta de automatización-->Runbooks e importamos nuestro script sin modificar su código, tal cual funciona en local, debemos seleccionar el achivo .ps1 e indicar el tipo "powershell", además de ponerle nombre:





Una vez cargado nos aparecerá disponible y podremos ver, editar, publicar, iniciar....
*Cada vez que editamos el runbook es necesario publicarlo para que sea funcional. Si no vamos a modificar nada es recomendable usar la opción "Ver"



Bien, una vez importado es necesario adecuar el script para que pueda conectar a la cuenta de almacenamiento, teniendo en cuenta que el servicio de automation no puede leer o escribir directamente en el storage de azure, da igual si son blob, table o files...así que la solución es descargar el archivo a ubicación TEMP durante la ejecución del runbook para que este pueda ser leído y por tanto crear los contactos en Exchange online a partir de el. 

Este sería nuestro resumen de edición y adecuación del script que ejecutará automation para conseguir nuestro cometido y usar ese tiempo tan preciado en otros temas de mas valor para el negocio: 

  •  Variables para conectar a nuestra cuenta de almacenamiento:
$storageAccountName ="nombredelacuentadestorage"
$storageAccountKey ="clavealfanumericadelacuentadestorage"
$context = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey 

  • Variable donde se almacena la ubicación temporal donde se descarga el archivo CSV
$TempStorage=$env:TEMP + "\ExternalContacts.csv"

  • Instrucción para la descarga desde File Share a ubicación temporal del archivo csv en cuestión:
Get-AzureStorageFileContent -ShareName nombrefileshare -Path "ExternalContacts.csv" -Destination $env:temp -Context $context
  • Conexión a Exchange online donde se indica el nombre de unas credenciales que se han generado previamente con los permisos de Administrador de Exchange. De este modo evitamos escribir en nuestro código el usuario y la contraseña (explicado al inicio del post):
$UserCredential = Get-AutomationPSCredential -Name 'adm365'
$Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession -Session $Session -DisableNameChecking:$true -AllowClobber:$true | Out-Null

En el resto de script, donde no vamos a profundizar,  para conseguir la lectura del CSV y por tanto la  creación y adición de contactos a grupos habilitados para correo, tan solo debemos indicar como path del CSV esta variable $TempStorage 👌

Import-Csv $TempStorage | ForEach {New-MailContact ……………….


Solo nos quedaría probar, para ello tenemos el panel de prueba como recomendación previa a la publicación:



Y por ultimo "PUBLICAR"






        

      

      

       3. Programación del runbook 

Una vez lo tenemos testeado y publicado, es hora de programar su ejecución, en este caso será diaria a las 20:30 PM. Para ello debemos vincular una programación y si no existe ninguna, crearla. Las programaciones generadas pueden ser vinculadas o desvinculadas fácilmente a nuestros runbook






Hasta aquí este segundo post de la serie, en próximos post veremos lo más importante, monitorización y alertas sobre nuestros runbook integrando Azure Automation con Azure Monitor 


¡Un Saludo y Feliz automatización!






Azure Automation - Parte 1 - Creando la cuenta de automatización

Muy buenas a tod@s,

En esta ocasión volvemos a la carga con una serie de post relacionados con el servicio Azure Automation, el cual nos permite automatizar la creación, implementación, supervisión, mantenimiento de recursos de nuestro entorno Azure y/o sistemas externos (ejemplo Office 365).

En esta primera parte vamos a crear nuestra primera cuenta de automatización así que sin más dilación vamos al ataque.

Accedemos al portal de azure http://portal.azure.com y seleccionamos "Crear nuevo recurso" introduciendo "automation" en el campo de búsqueda:



Una vez tenemos los resultados seleccionamos "automation" y comenzamos el proceso de creación de la cuenta, introduciendo los valores obligatorios, si no disponemos de grupo de recursos habrá que crear uno, de lo contrario, usar uno existente





Más información sobre cuentas de ejecución de Azure:
https://docs.microsoft.com/es-es/azure/automation/manage-runas-account

Una vez rellenada la información obligatoria, seleccionamos crear y ya tendríamos nuestra primera cuenta de automatización preparada



Fácil ¿verdad?

En las siguientes partes de esta serie veremos como crear y programar Runbooks usando escenarios del día a día.

¡Feliz automatización!