miércoles, 19 de enero de 2022

Mostrar diferencias en NTDS.dit para forense o monitorización

 Estimados amigos de Inseguros !!!

En el capítulo de hoy vamos a mostrar una herramienta muy interesante a mi parecer para dos propósitos principalmente. Una herramienta que es capaz de mostrar las diferencias entre dos versiones de la base de datos del Directio Activo, NTDS.Dit.


El proceso de descarga del fichero lo puedes hacer de las muchas maneras que hay.  Ya sabes que es un base de datos abierta, no puedes ir al "sitio" y copiarlo.

Mi opción más sencilla es esta:

powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q"

Una vez tenemos el fichero, procedemos a realizar algún cambio en algún objeto del AD para poder reflejarlo en el informe.

Volvemos a ejecutar el comando de extracción y es cuando ejecutamos la herramienta NtdsDiff del genio https://twitter.com/0gtweet.


Siguiendo escrupulosamente el orden y nombre de los ficheros como nos piden el script, tenemos un reporte amable donde ver los cambios.



Como decíamos, se me ocurre usarlo de manera defensiva, para intentar detectar movimientos sobre todo de persistencia, y en actividades DFIR donde podemos ver muchos hallazgos concentrados.

El uso que cada uno le de depende del contexto, pero seguro que es una herramienta buena a tener en cuenta.

Como siempre, gracias por leerme !!!


Y si te gusta este contenido, te animo a que te registre para estar al día de nuevos post, cursos, webinars, eventos etc. 

viernes, 14 de enero de 2022

DeTTect :Framework para Auto evaluación Mitre

 Estimados amigos de Inseguros !!!

En el post de hoy voy a contar una vez más alguna cosita sobre Mitre Att@ck. Como sabeis es algo que manejo a diario y me gusta bastamte. Mi anterior artículo quizás sea una buena introducción.

La nutshell sería: un marco de referencia en donde enumerar y describir técnicas, tácticas y procedimientos que emplean los cibercrimiales, asociando la parte defensiva y ofensiva.

Dicho como en mi pueblo, todos los ataques que hacen los malos, y como defendernos.

Como sabes, hay un mapa navegable en el que podemos interactuar con la matriz, indicando Scores, colores, textos... Al final es muy útil tener visialmente un mapa del estado de mi organización, según el grado de cobertura ante los ataques conocidos. 

Por ejemplo, el T1196 Control Panel Items nos indica que hay una técnica de ataque que usan los malos para enviarnos ficheros en formato CPL y poder ejecutar payloads. Bien, nos indica que la manera de protegernos ante este ataque es la monitorización de procesos y una lista de apps permitidas y una política de negación.

Ahora yo me auto-evaluo y pienso, tengo estas dos medidas? La monitorización de procesos si, porque uso Sysmon, pero no tengo Applocker o similar. Para mi estudio, tengo un 50% de cobertura ante este TTP. 

Me voy a la matriz y pinto ese TTP con un naranja, por ejemplo, porque para mi rojo es que lo tengo todo mal, y verde todo bien.

Así con todos los TTP.. me permite tener ese mapa.

Aquí es donde entra el proyecto DeTTect que os quiero traer hoy. 

Un proyecto, un frontend que me genera capas de la Matriz Mitre en formato json pero con un GUI que permite elegir el grado de "cobertura" del ttp en base a Data Sources. Mucho más sencillo. Si yo tengo el Data source Monitor de Procesos sysmon a tope, la herramienta rellena las TTP correspondientes. 

Pongamos un ejemplo gráfico para ilustrar el asunto. Vamos a configurar nuestro nivel de cobertura, lo "bien" que lo hacemos, para la monitorización de procesos, por ejemplo, si usamos Sysmon o similar.


Podemos configurar de 1 a 5 distintos parámetros, por ejemplo, tenemos Sysmon instalado en todos los equipos? retenemos los datos lo suficiente, tienen un formato estándar que me permita correlar/comparar con otros data sources... aquí tienes la definición de las 5 métricas.

DimensionsDescriptionQuestions?Example
Device completenessIndicates if the required data is available for all devices.When doing a hunting investigation can we cover all devices/users that we need to?We are missing event data for endpoints running an older version of Windows.
Data field completenessIndicates to what degree the data has the required information/fields, and to what degree those fields contain data.Are all the required data fields in the event present and contain data to perform my investigation?We have proxy logs, but the events do not contain the "Host" header.
TimelinessIndicates when data is available, and how accurate the timestamps of the data are in relation to the actual time an event occurred.Is the data available right away when we need it?

Do the timestamps in the data represent the time the record was created or ingested?
We have a delay of 1-2 days to get the necessary data from all endpoints into the security data lake.

Timestamps are representing not the time an event occurred, but ingestion time in the security data lake.
ConsistencySays something about the standardisation of data field names and types.Can we correlate the events with other data sources?

Can we run queries across all data sources using standard naming conventions for specific fields?
Field names within this data source are not in line with that of other data sources.
RetentionIndicates how long the data is stored compared to the desired data retention period.For how long is the data available?

How long do you want to keep the data?
Data is stored for 30 days, but we ideally want to have it for 1 year.

ScoreDevice completenessData field completenessTimelinessConsistencyRetention
0 - NoneDo not know / not documented / not applicableDo not know / not documented / not applicableDo not know / not documented / not applicableDo not know / not documented / not applicableDo not know / not documented / not applicable
1 - PoorData source is available from 1-25% of the devices.Required fields are available from 1-25%.It takes a long time before the data is available.

The timestamps in the data deviate much from the actual time events occurred.
1-50% of the fields are standardised in name and type.Data retention is within 1-25% of the desired period.
2 - FairData source is available from 26-50% of the devices.Required fields are available from 26-50%.Data retention is within 26-50% of the desired period.
3 - GoodData source is available from 51-75% of the devices.Required fields are available from 51-75%.It takes a while before the data is available, but is acceptable.

The timestamps in the data have a small deviation with the actual time events occurred.
51-99% of the fields are standardised in name and type.Data retention is within 51-75% of the desired period.
4 - Very goodData source is available from 76-99% of the devices.Required fields are available from 76-99%.Data retention is within 76-99% of the desired period.
5 - ExcellentData source is available for 100% of the devices.Required fields are available for 100%.The data is available right away.

The timestamps in the data are 100% accurate.
100% of the fields are standardised in name and type.Data is stored for 100% of the desired retention period.



Como puedes ver, de una manera "amigable" puedo rellenar el estado de ese dataset. 

Ahora cargamos el fichero resultante en nuestra matriz de navegación Att@ck y podemos ver de una manera gráfica y visual el estado de cobertura.

Pero atención, podemos hacerlo a la inversa, podemos usar en vez de referencia el Data Source, podemos usar el TTP, es decir, podemos indicar puntualmente el grado de cobertura que tenemos para una técnica concreta. En este ejemplo, vamos a tomar la matriz de O365, para seleccionar un TTP.

Me parece brutal el esfuerzo por ayudarnos a mantener un mapa actualizado, o al menos para hacer una carga inicial, una auditoría, una valoración.

Ahora vamos con la pelea. La instalación es muy sencilla: Docker.

El funcionamiento es muy sencillo. Una vez dentro del contenedor, ejecutamos el editor, lo que nos levanta el servicio web:

root@020752e06d54:/opt/DeTTECT# python dettect.py editor

Editor started at port 8080

You can open the Editor on: http://localhost:8080/

Con esto creamos el YAML. Ahora tenemos que convertilo en Json para poder cargarlo como layer en nuestro Att@ck.:

python dettect.py ds ./input/data.yaml -l --health

Espero que te guste el proyecto y lo uses de buena fe :-)

Gracias por leerme !!!


Y si te gusta este contenido, te animo a que te registre para estar al día de nuevos post, cursos, webinars, eventos etc. 

miércoles, 12 de enero de 2022

Despliegue de entornos de laboratorio en Azure y otros sistemas para red team y blue team.

 Estimados amigos de Inseguros !!!

Una de las tendencias actuales en el mundo IT es el de "as a code". Infraestructura como código lleva siendo algo habitual desde hace unos años para con, otras prácticas DevOps, nos permiten crecer de manera automática y controlada nuestros escenarios.

Podemos llevarlo al desarrollo, usando Terraform, Ansible, Kubernetes, lo que sea, pero en esta ocasión vamos a hablar de algunos repositorios para Azure en formato ARM. 

Las plantillas de las que vamos a hablar están desarrolladas en Json, pero hay un nuevo lenguaje de uso más sencillo denominado Biceps, para poder usar las plantillas de Azure Resource Manager.


Lo hagas con el lenguaje o tecnología que mas te guste, la idea es muy sencilla, y para ti lector asiduo a los sistemas y/o seguridad, lo que queremos es desplegar máquinas para laboratorios. Si, es mi caso. No me dedico a instalar estos sistemas, pero si que ando instalando/rompiendo laboratorios cada dos por tres.

*En los entornos de operaciones suelen desplegar este tipo de soluciones mediante plantillas, para que con el paso del tiempo, se más fácil, homogeneo y barato hacerlo en distintos clientes. Mi nivel en ARM no es este, y lo uso como usuario para ahorrarme el trabajo solamente*

Instalar un Windows Server, el Directorio, añadir el equipo... llevo 20 años haciéndolo, me apetece un doble click...

Es aquí donde entran en juego las plantillas ARM. No es mi propósito explicart. como funciona. Mi propósito de este post es indicarte algunos repositorios de plantillas que me parecen útiles, por ejemplo...

Microsoft Sentinel To-go, del genio Roberto Rodriguez principalmente. En este repositorio tenemos plantillas relacionadas con Microsoft Sentinel.


Un click, unas cuantas preguntas y tenemos estor entornos desplegados. BRUTAL !!!

BlackSmith, entre otros, el mismo genio anterior. En este caso tenemos plantillas para desplegar entornos similares sin Sentinel, con bases de datos, etc.


Si eres fan o asiduo a Mitre, conocerás el documento APT29/The Dukes. En este documento, o más bien proyecto,  tenemos la documentación detallada del tipo de ataque, o mejor dicho de la campaña completa de ataques, pero con los detalles técnicos a bajo nivel. Tan a bajo nivel que tenemos las configuración de simulación de adversarios disponible para cargar en Caldera...alucina vecina...

Pero para poder ejecutar este proyecto, al final necesitas la infraestructura sobre la que se van a correr las simulaciones... 

Aquí es donde tenemos otra vez al genio con la plantilla para desplegarla...SimuLand. Pero si no fuera suficiente, el hombre nos pasa 3 artículos en donde nos dice como "casarlo todo" y ejecutar el proyecto de manra global. Artículos uno, dos y tres

Otro proyecto que me gusta mucho por su vinculación con MITRE es https://github.com/BlueTeamLabs/sentinel-attack . En el que podemos desplegar varias opciones interesantes sobre nuestro Sentinel, como son:

Por supuesto que la propia Microsoft nos ofrece en sus repos. plantillas de inicio sencillas, en concreto estas de las demo me parece útiles para empezar, para instalar extensiones en máquinas, cositas interesantes. 

Otra cuestión más allá de crear la infraestructura, es hacerla vulnrerable. En este blog hemos hablado largo y tendido por ejemplo con Adaz,  donde ademas teníamos máquinas blue team como ELK, o por ejemplo hacerlo con ARM y DSC en este artículo. El proyecto original es DefendTheFlag de la firma de Redmon. Detections Lab es otro clasico para desplegar entornos Vulnerables y de Blue Team.

Si lo que quieres es solo las vulnerabilidad, segurmente Vulnerable-AD es el más conocido. Game Of Active Directory no he tenido ocasión de probarlo pero creo que aporta pocos más ataques, vulnerabilidades.

Otro interesante, esta vez para la herramienta BloodHound es BadBlood. Nos permite "nutrir" nuestro entorno de eso tan preciado que buscamos con la teoría de visualización de la herramienta.

Al final es cuestión de buscar más o menos lo que necesitas, y buscando más o menos es fácil cambiar las opciones para adaptarlo al máximo a tu entorno deseado y a las ganas que tengas de invertir tiempo en esto. 

Lo que es innegable es que hace unos años meteríamos varias veces un disco de 3,5" en varios equipos. Luego usamos unas Iso en fichero... unas máquinas virtuales... unos entornos cloud y ahora ya esto. La sencillez es abrumadora. 

Espero que te haya parecido interesante este artículo y que te animes a comentarme más recursos útiles.

Gracias por leerme !!!




miércoles, 5 de enero de 2022

Zero Trust o confianza Cero: un nuevo reality de infieles?

 Estimados amigos de Inseguros!!!

Si para los de mi edad Gran hermano fué un experimento un tanto deprorable, lo de las casas/islas/campamentos de jóvenes que van a hacerse famosos y pasar un buen rato... ya ni te digo.

Veo el eslogan: Confianza Ciega: 10 chicos y 10 chicas se van de camping desnudos a ver quien se "jinca" a quien... Lloros, tias operadas, tios enseñando pechos... seguramente hace unos años hubiera ganado con la idea. *me informan que existe este programa xDDDDDD*


Pero no !!! en Inseguros no enseñamos los pechos !!! a pesar de contar con el físico :-) vamos a seguir en nuestra línea.

Si el ramsomware es la amaneza de moda, en el mundo "defensivo" tenemos que irnos al Zero Trust. Seguro que lo has escuchado. Mas que una solución, es una manera de pensar, y vamos pensar un poquito sobre esto alineados un poco a servicios Microsoft, aunque realmente el concepto es extrapolable a practicamente cualquier vendor o ecosistema de soluciones. 


Por ejemplo Google lo denomina Beyond Corp


Este concepto que promete ser la nueva ola de cambios no es nuevo. Allá por el 2014 Google publico este paper, en el que hablaba precisamente del concepto Zero Trust, es decir, no hay servers en un entonro confiable detrás de un perimetro, sino que hay que considerar que todas las redes son no confiables y actuar desde este punto de vista. Esto es basicamente mi definción para el Zero Trust.

Podemos irnos al NIST a su documento, o directamente a la wikipedia, que ya hace menciones de este tipo de iniciativas desde los inicios de Internet...

Lo que quiero transmitir es que este concepto no lo ha inventado X, ni Y ni Z, es algo que se ha ido cociendo conforme ha ido creciendo la exposición a internet y las consecuentes amenazas.

Para seguir desarrollando el concepto, vamos a seguir los ámbitos de actuación que Microsoft promueve. No se trata de una guía cerrada en la que en cada fase hay X productos. Precisamente lo contrario, están todas las fases conectadas mediante servicios y productos, pero por hacerlo un poco organizado lo presentamos así.

  • Identidad.

    Yo soy Jmolina@miempresa.com porque conozco ese correo, o porque conoczco ese usuario y la contraseña que tiene? Todos sabemos que las contraseñas tienes debilidades, por lo que alguien que no sea yo, puede usar ese login. 

    Y si metemos un segundo factor de autenticación? ( algo que tienes, algo que eres, algo que sabes). Hay más posibilidades de que "yo" sea "yo".  Ese MFA lo uso para el correo, para la VPN, o para todo? porque ya que lo uso, tendré que usarlo en distintos entornos... pero quizás esto venga luego. 

    Tus colaboradores, tus empresas mantenedoras, usan un usuario genérico tipo partner@miempresa.com o tienen uno nominativo con las mismas medidas de seguridad que el personal interno? Cuando accedemos a los recursos, en el móvil tenemos la misma seguridad.

    Cuando hacemos el login en una wifi no confiable en un pc de un amigo, tenemos alguna restricción? La identidad ya no es solo el usuario y contraseña como puedes ver... es la suma de muchas verificaciones.

    Cuando das acceso a un partner, usas un modelo de aprobación, en el que le das permisos solo unas horas? Podrías detectar el "impossible travel" ? es decir, que un usuario hace login en una ciudad, y en un espacio de tiempo menor a lo que le costaría el viaje, lo hace desde otra...o que de repente un usuario hace login en un pais considerado "poco confiable" porque no hay delegaciones allí...

  • Puntos de conexión.

    Hemos dicho móviles, pc´s de conocidos... Al final, el entorno Cloud nos permite esa movilidad y esa independencia del dispositivo, pero no tiene sentido que administres el Directorio Activo desde un Tablet público en una Office Room de un hotel. Quizás para descargar un documento o acceder a una aplicación si, pero para temas "serios" no tiene mucho sentido que, aunque seas el usuario rey todo poderoso, expongas ese riesgo. 

    Es recomendable tener dispositivos enrolados de empresa, pc´s, móviles, cacharros, y asociar a ellos un nivel de "exposición". Un usuario desde una shell usarndo Curl, por muy usuario potente que sea, no debería poder hacer ciertas cosas... me pillais por donde voy?
  • Aparte de esto, los que venías del NAC, Intunes, etc. podemos tener equipos que por cualquier condición, por ejemplo porque no se han actualizado, ya no sean igual de confiables que uno que si está actualizado. O porque no lleva las últims firmas del AV... El equipo debe cumplir con las políticas de seguridad definidas. No vale con "ser " de empresa, debe "estar" compliance..

    En esos dispositivos, puedes controlar una perdida? están cifrados los discos? podrías borrarlos remotamente?

    Por supuesto que en los clientes "Windows" tienes antivirus, pero en lo móviles Android? Ios? Las amenazas en los equipos no son solo virus... visitar una web maliciosa puede comprometer el equipo mediante un exploit, o un robo de credenciales, y eso no es un virus... Hablamos de detección de amenazas...


  • Aplicaciones.

    Basado en lo anterior, pensamos en el login de un equipo, o en la conexión a una VPN, pero y las aplicaciones? Está el ERP preparado para trabajar y otorgar privilegios según las premisas antes comentadas? Por ejemplo, que puedas entrar en modo lectura a ver tu nómina desde tus vacaciones en el Caribe, pero no puedas modificar el número de cuenta de tu nómina desde ese pc raro...

    Tienes esas aplicaciones auditadas? no me refiero al Owasp... eso ya lo se :-) me refiero a que si sabes las que tienes. No hay que irse muy lejos para el caos con el Log4j, y el mayor problema hemos visto que ha sido identificar las aplicaciones que lo usaban... el inventario es el principio de la seguridad !!!


  • Infraestructura.

    Tienes cloud? tienes multicloud? controlas qué está pasando tanto en Aws como en Azure.


  • Tienes procesos de integración, por ejemplo ETL de transformación? webservices que "chupan" y "dejan"... todas estos procesos, todas estas aplicaciones, deben tener una identidad. Recuerdas el mundo On premise donde teníamos un SqlServer corriendo con el usuario administrador del dominio porque así no falla? pues NO. Cada microservicio tiene que tener una identidad, para dotarle luego de las políticas de acceso concretas.

    Por ejemplo, ese proceso ETL que lee de un aparato IoT y que vuelca en un Pentaho... está limitado a nivel firewall punto a punto, puerto a puerto? En el mejor de los casos "antiguos" tendríamos una red aislada, una vlan, una dmz... mejor punto a punto.

    En esa conexión punto a punto, imagina un equipo industrial con Windows CE... tienes un firewall entre el equipo y el servidor para controlar las amenazas?

    Al igual que los datos de los "aparatos" importantes, tenemos que tener visibilidad de todos los eventos de ciberseguridad, y tenerlo en un SIEM. En este SIEM no nos centramos con firewall y antivirus verdad? si el 90% de las amenazas nos vienen por el correo, será interesante tener los logs del correo centralizados no? no me refiero entrar al Security Center de la solución, me refiero a un SIEM y todo lo demás. Por ejemplo, el comportamiento, la respuesta automática, la orquestación, el machile learning para mejorar la detección, el uso de Threat Intelligence... esas cosas que sabes que tanto nos gustan del mundo SOC. 


  • Datos.

    Como todo el mundo sabe, el dato es el activo del "futuro", del presente. Tener información nos da poder. Clasificar los datos según su criticidad es básico. Lo decían ya los consultores de la LOPD... que si medio, bajo o alto... pero pasamos la auditoria y nunca más hicimos nada. 

    Tiene que saber mi programador la clave de administrador de la base de datos en producción? Tiene que saber mi administrador la clave de administrador de todo el dominio. 

    La persona que hace los pagos, incluso las nóminas, tiene que saber el motivo de mi reducción de IRPF por mi 66% de incapacidad, o solo saber que tiene que hacerlo?

    Al final tenemos muchos datos, de distinta índole, y su protección primero pasa por su identificación y clasificación. 

    Una vez sabemos que los datos son lo que son, empezamos con las medidas. Por ejemplo, un documento Word de oferta puede que cuando llegue al cliente no deba ser de escritura... o que incluso se borre pasado un tiempo. Que no se puedan acceder a ciertos datos desde ciertas condiciones... imagina todas las casuísticas que puedes reflejar aquí, y casi todas tendrán su vertiente tecnológica para cumplir.

    La protección puede ser todo lo profunda que queramos, pero seguro que tenemos que ser capaces de controlar los USB... fíjese usted que novedad... o un pequeño control DLP con exfiltración, basada en algunos patrones fáciles de texto... Toda esta línea de trabajo es fundamental. 

    Imagina un hospital privado, con su software de gestión ( HIS). Imagina el ingreso de un famoso en el centro. Crees que el lógico que el administrativo de la puerta de ingresos conozca el resultado del informe toxicológico? o que tenga acceso al teléfono? tenemos que filtrar mucho estos datos, incluso a nivel base de datos a nivel de campo, de tupla. Cifrando por supuesto los datos en tránsito, pero tambien en custodia. Lo que viene siendo el ejemplo de tener las passwords en base de datos en algún formato hasheado seguro....

  • Red.

    El elemento base de todo sistema. Seguro que tienes un Firewall de última generación con las opciones de seguridad. Pero tienes un WAF para tus servicios WEB? La gente que tiene webs residuales que no gestionan ellos, seguramente no les importa que un día entre un cliente y llame a "casa" diciendo que hay una foto de "noseque" en la web... o el gerente... o que salga en un leak de internet todos los usuarios y claves de tu web... La web es importante y es responsabilidad nuestra, la lleva Marketing, Ventas, o esté alojado en "casa Pepe".

    Intentar usar IPSEC internamente es complejo ya que hay muchos sistemas que no lo permiten, pero entre los sistemas que si, por qué no? Igual pasa con las versiones SMB inseguras.
Si seguiste el úlitmo post sobre las medidas anti-ransomware, conicidiras conmigo, y con otros muchos lectores que me lo han comentado que si, que bien, que perfecto, pero ahora como se hace "eso".

Al final son una seria de medidas, de ideas, de conceptos que te lanzo para que reflexiones, y pienses cuales de ellos serían interesantes en tu organización. Y que hagas un análisis funcional y de requisitos de lo que tu negocio y tecnología necesita. Con esto podrás crear un plan en corto y medio de los siguientes pasos.



Te pongo un ejemplo. Si usas redes Microsoft creo que tiene sentido usar la nube Azure y la colaboración con M365. Si usas estos productos, tiene sentido que cuando hablemos de gestión de identidades uses el propio Azure Active Directory y que para los equipos on-premise usas el MFA de Windows Hello por ejemplo. 

Pero esto es una opinión, una evolución para mi orientada a seguir confiando en Microsoft. Pero puedes instalar un MFA de la marca Fortinet para tu VPN perimetral. y puedes cifrar tus portátiles con Sophos, puedes usar un CASB para acceder a tus recursos en Gsuite... 

Cada entorno tiene sus soluciones. El handycap que encuentro con el modelo Zero Trust de Microsoft es que como es normal, va todo orientado a un entorno Cloud o Híbrido del fabricante, y en muchas organizaciones nos encontramos con escenarios mucho mas hetereogeneos, o lo contrario, que aún no han dado los pasos iniciales hacia el cloud. Estas empresas quizás no puedan seguir al pie de la letra todas las recomendaciones del Vendor, o si. 

Yo abogo por conocer los conceptos, y luego buscar las soluciones. Si la gestión de identidades la quieres hacer con otro Vendor, perfecto, evalua las capacidades presentes y futuras que te da, y decide. Pero que tienes que gestionar las identidades, es algo inevitable. Así con todo.

Si estás animado a seguir con estas reflexiones y quieres profundizar sobre los productos o servicios que tenemos a nuestra disposición, se me ocurre esta lista:


Como he dicho, esta lista sería una guía, no se trata de comprarlo todo, o que sin esto no puedas empezar. Simplemente que hay que tener clara la postura Zero Trust y tomar decisiones alineadas con el futuro. No mirar en una solución aislada que nos pueda mermar el crecimiento por incompatibilidades entre sistemas.

Espero que hayas comprendido el concepto de Zero Trust con algunos ejemplos o reflexiones, y ahora toca la parte más dura, elegir con qué tecnología hacerlo, pagarlo, y ponerlo en marcha :-)

Como siempre, cuenta con tu partner de referencia en estos aspectos para que te orqueste la situación. Es el mejor consejo que te puedo dar.

Gracias por leerme.

martes, 4 de enero de 2022

Ransomware...trabajos previos: 15 medidas efectivas !!!

 Estimados amigos de Inseguros !!!

Siento no hablar hoy del último CVE en *** o del último APT del banco de no se donde. Hoy vamos a hablar de algo muchos menos interesante, ya aburre, pero es lo que estamos sufriendo las empresas y es el famoso Ransomware.

Muchas veces los informáticos somos amigos del "programa X" o del "comando y" o incluso del "Sistema operativo Z" porque es más seguro... Muchas veces, o casi siempre, somos nosotros mismos nuestros peores enemigos.

Haciendo trabajos de consultoría y auditoría contactas con muchos profesionales que... en pocas palabras... flipas...  

Yo he oido de todo, pero no "por internet"... sino delante mia, en la misma habitación !!! Recuerdo algunos así sueltos como: mi hosting tiene tecnología 100% anti hackers. Mi red tiene un doble anillo de seguridad...Tengo el firewall XXXX... Mil tonterias que en algunos casos merecía la pena preguntar qué creía que tenía, y en otros casos solo callar, afirmar, poner cara de interesado y pensar en la tostada con tomate del bar de la puerta...

Me gusta mucho poner similitudes, y no hay una mejor que la de "Se tu propip Chicote". Cuando ves este programa y ves la mierda chorrear por la cocina, no entiendes como el propietario no lo ve, pero a veces nos cegamos por la cercanía, por el ego, por la falta de visión transversal, por problemas con negocio, por mil cosas, pero más o menos las soluciones están ya escritas.

Voy a poner otro ejemplo, algo con lo que por desgracia siempre tengo en mente, la dieta. Yo creo que todo el mundo sabe qué hacer para mantener un estado de forma saludable, pero siempre buscas "la dieta" el "papelico con las comidas" las "pautas" el "motivador"... si está muy claro !!!! pero en el subsconsciente, los que tenemos este problema, siempre buscamos la "pastilla mágica" la solución.

Cuando hablas de Ransomware, ocurre lo mismo. TODOS sabemos qué hay que hacer, pero siempre esperas que tu empresa de confianza, tu producto, tu blog favorito... te de las pautas concretas. Seguro que las sabes.

Voy a intentar daros unos consejos básicos, muy concretos, y si crees que puedes ayudar a crear una mejor lista, prometo actualizarlo.

Resumen de medidas

  • Backup de los datos en formato 3,2,1. De los datos. Algo que llevamos diciendolo desde la saciedad, y claro, si lo llevas a cabo te aburre leerlo, pero ¿y la cantidad de gente que no lo hace?




  • Backup de imágenes maestras. Gold Backup. Es importante tener copias de los sistemas críticos independiente de los datos. Por ejemplo, el controlador de dominio, el servidor de aplicaciones, el servidor de base de datos. Luego restauraremos una copia del domio, de las aplicaciones y de las bases de datos, pero tener una imagen maestra funcional ayuda mucho a la hora de crear un restablecimiento Tier 0. Imagina tus copias de seguridad con Veeam... cada día... con una retención de 1 mes... Y ahora imagina que el malo llevaba en ese sistema 4 meses sin dar la cara...

  • Actualización de Software. Es imprescindible tener un plan de actualizaciones. Todos sabemos que muchas veces es inevitable tener servidores antiguos o versiones desactualizadas. TODOS, pero si tiene una justificación, tiene que tener un plan. Por ejemplo, si necesitas un 2008 para lo que sea, fortificalo al MAXIMO, por ejemplo, establece un firewall de por medio para los publicar solo el servicio necesario, mete unas ACL´s fuertes y monitoriza su uso.

  • Segmentación. Qué decir de las vlans !! Tener segmentada la red, con vlans o lans, o dmz es básico, pero no solo a nivel de buenas prácticas para tu vozip... mete ACL´s entre vlans !!! No sirve de nada tener 20 vlans si puedes "traficar" de una a otra.

  • Evita el RDP expuesto a internet.  Evita cualquier servicio que permita conectarse a la organización sin que exista medidas de seguridad básicas como MFA. Si, a todos !!! SSH, VPN, Correo, TODO. Es sencillo !!! Los que estamos haciendo auditorias de seguridad lo vemos todos los días. El proceso en el hacking, lo que hacen los malos, es comprometer un sistema y desde ese, moverse por el resto con credenciales. Si para cualquier movimiento te pide MFA, paras casi TODOS los ataques. Hace unos años esto era inviable, pero hoy por hoy, todo el mundo trabaja con un MFA bancario, y si es un requisito, lo es. Además no es caro. Olvida esconder el puerto RDP...usar SSH que es más seguro y tonterias al uso. Tampoco inventes procesos raros, complejos para el usuario. Quizás tu seas capaz de gestionar un port knocking pero tus usuarios no. Un MFA SENCILLO.

  • Seguridad en el puesto de trabajo. El 90 % de los ataques nos van a venir por el usuario final, por una navegación, por un correo, por una mala praxis. Tenemos que tener equipos fortificados. Por supuesto con un BUEN antivirus. Esto es como todos, hay buenos y malos, caros y baratos. Tener un antivirus malo te da un nivel de protección mejor que uno bueno. A que tiene sentido? no compres el más barato, es PEOR. No digo que compres el más caro, NO ES MEJOR. Por otro lado, si la mayoría de los ataques vienen por el endpoint. El usuario NO debe ser administrador. Esto tiene muchos problemas, no puede instalar lo que quiere... no puede comportarse como quiere... PERFECTO, es lo que tenemos que lograr. Podemos jugar con seguridad de aplicaciones, denegado y autorizando un pool de aplicaciones. Podemos jugar con el VDI y crear escenarios "homogéneos". Según el tamaño y presupuesto de tu organización podrás hacer unas cosas u otras, pero esta línea de trabajo debe estar definida. No digo que de un día para otro le quites el admin a tu jefe y 10 directivos... a veces no se puede... pero tenlo en el radar y prepara un plan.

  • Formación al usuario. Al hilo de lo anterior. Si la mayoría de las veces tenemos el susto por aquí, tenemos que formar y entrenar al usuario. No es justo que queramos digitalizar la empresa, queremos que los usuarios trabajen de manera segura, sin formación? Imagina entrar a CUALQUIER empleo y que no te expliquen como funciona la "maquina"...

  • Mínimos privilegios. Esta línea de trabajo es otro clásico, pero no lo usamos. Para que tienes que ser administrador del dominio en tu laptop cuando ves páginas de viajes? es más, para qué tienes que ser administrador del dominio para administrar un Sql Server en un servidor Miembro? Otra, para que tienes que usar tu usuario administrador del dominio para conectarte por VPN !!!! es un Clásico !!! usa un usuario y usuario_admin. Para conectarte desde el hotel con wifi o con 4g usa el usuario plano por VPN, y luego ya veremos como elevar, pero no expongas usuarios privilegiados a redes no confiables. Ojo con esto...

  • Crea redes confiables. Hace 10 años internet no era confiable y la lan si. Ahora tienes que trabajar como si tuvieras malos en tu red. Montar un host bastion en el que en el caso anterior, conectarte con un usuario básico y elevar de manera segura, bajo unas condiciones, debería ser un paso a tener en cuenta. Un mfa distinto para conectarte a ese bastion? SI. y todo tipo de tecnologías orientadas a la gestión de indentidades y accesos, lo que se denomina ZERO TRUST. 

  • Relaciones con terceros. Cuantos usuarios tienes para tus partners? los necesitas 24/7 ? deben ser administradores del dominio? TODOS te lo van a pedir, pero tu es postura hacerles firmar que en caso de verse comprometida la red por su culpa, tendrán una penalización fuerte... ya verás como no la firman y relajan sus necesidades. TU eres el garante de tu seguridad y ningún externo/colaborador tiene que definir esta estrategia. Si puede, pero que se haga responsable.

  • Documentación. No me refiero a tener la ISO 27001 pasada. Me refiero a tener un DFD, un diagrama de flujo de datos de los principales procesos de la organización. Mantenerlo medianamente actualizado, cada 6 meses !! pero hacer este ejercicio nos permite detectar fallos en el diseño, y sobre todo, en caso de incidente, nos ayudará mucho a tener claro el entorno, tanto tu equipo, como un equipo DFIR que deba ayudarte. Empieza por hacerlo a lapiz, no inviertas tu vida en softwares complejos...y poco a poco mejora el Diagrama, pero empieza YA.

  • Inventario. Lo primero que tenemos que hacer es saber qué tenemos que proteger. Cuando preguntamos a las empresas MUY POCAS tienen un sistema efectivo de inventario. Imagina un momento de crisis buscando direcciones MAC, IP´s... nombres de equipo raros, logs de DHCP... Una fiesta buena...

  • Ten un pequeño plan de respuesta. Esto es muy complejo, pero como con otros elementos de la lista, comienza por algo. Por ejemplo:
    • En caso de infección, tienes que ser capaz de "aislar" los elementos. Apagar Switches, cortar comunicaciones, apagar wifi´s.
    • Si no eres capaz o por cualquier motivo no se puede, poder desconectar los equipos.
    • Por último, si no se puede, apagar todo.
    • Como vas a restaurar los elementos críticos... en la misma red donde tienes la infección? Como vas a probar los backups, conectándolos a la red? y si están en un clud?
    • Tienes capacidad para almacenar logs? muestras de memoria? trazas de red?
    • Puedes bloquear accesos a terceros para evitar contagiar a clientes/usuarios/partners?
    • Sabes como actuar legamente? tu DPO está en orden?
    • ...

  • Monitorización. La respuesta a incidentes se va a realizar mirando las evidencias, los eventos, los logs. Seguro que tienes un sistema centralizado de logs? o cada Windows, Cacharro, aplicación los escribe en cada sitio?

  • Hazlo. Si he tenido la suerte de que leas este artículo, gracias, compártelo :-) pero hazlo !!! auto-evalúa en qué grado estas. Muchas cosas las sabrás, otras no. Algunas las tendrás perfectas, algunas las tendrás por iniciar, pero hazte un plan. Estamos en Enero, es el mes de las buenas propuestas. 
Al final el post creo que ha virado a la protección del Ransomware, a un entorno más o menos seguro. Por supuesto que hay muchas mas acciones a fortificar, pero creo que con estas 15 medidas podemos alcanzar cotas bastante aceptables.

Siento si esperabas un producto concreto. Un Script Powershell que lo haga todo, pero no, esto es NUESTRO trabajo, no hay balas de plata.

Gracias por leerme.