Translate

miércoles, 14 de junio de 2017

Microsoft se lava las manos


Nuevo aviso de Microsoft para viejas y nuevas vulnerabilidades

Fuentes : Experiencia personal
Nota.- ** No está totalmente revisada la gramática aún **

Microsoft ha lanzado un nuevo aviso con recomendaciones sobre viejas y nuevas vulnerabilidades que afectan a plataformas antiguas.

https://technet.microsoft.com/library/security/4025685.aspx

Aunque el resonar de Wannacrypt se desvanece con el paso de los dias de forma tozuda la realidad demuestra que la industria española está muy expuesta a un problema grave de continuidad en su negocio.

Insistiré de nuevo, la solución es un plan de seguridad adecuado o cortar los cables ethernet con unas tijeras.

Javier G. Sáenz

Consultor Senior de sistemas industriales ICS/SCADA
Arquitecto/programador especialista de sistemas ICS/SCADA
Consultor Senior IT
Experto en ciberseguridad industrial, ISA S-99
Analista Programador Senior Siemens Simatic
Ingeniero de Software Senior proyectos de control de procesos

Especialidades:En general :
Ingenieria del Software Senior, metodos formales y ágiles
Ingniero de Sistemas Windows Senior
Programador multidisciplinar y multiplataformas, desktop, servidores e industrial
DBA Junior, specialidad Microsoft MS SQL
Operador de red Junior
Comprometido con ISO9001 , ISO27001, ITIL V2, COBIT, TOGAF, PMBOK

martes, 6 de junio de 2017

Wannacrypt, otro aviso más


Wannacrypt ha generado alarma y pánico, las grandes compañías con mayor o menor previsión pusieron en marcha planes previstos o extraordinarios para impedir la infección viral de este tipo de malware.¿ Que hemos aprendido ?

Fuentes : Experiencia personal
Nota.- ** No está totalmente revisada la gramática aún **

La respuesta para la mayoría de los casos es "se ha aprendido poco". Salvo aquellas empresas con una cultura y despliegue de seguridad bien aprendida y diseñada creo que el resto lo único que ha podido hacer es correr mucho para parchear el MS17-010 y rogar a los dioses.

Wannacrypt ha demostrado que una auténtica infinidad de ordenadores con Windows son vulnerables los 365 dias del año a un ataque tipo 0-day.

Como dice un mediático "hacker" : << ante un 0-day es imposible disponer de la defensa perfecta, siempre hay que pensar en minimizar los daños >>. Es un razonamiento bastante lógico dado que la propia naturaleza de un 0-day te avisa de que es algo nuevo e inesperado, te puede coger con los pantalones bajados.

Los constructores de fortificaciones de la edad media ( en España tenemos una amplia representación) ya conocían esta premisa del ataque sorpresa masivo. Por ello incluian una serie de mecanismos, artefactos y estratagemas para ir frenando, reducir la carga y evitar los intentos de intromisión al interior ( torres vigías externas, fosos, varios muros en paralelo, barbacanas, etc ).

El problema es que aún la mayor parte de las empresas con plantas industriales no solo no ven la exposición y vulnerabilidad de sus redes informáticas si no que no entienden que la continuidad de su negocio se ve comprometida si las redes industriales integradas en las redes informáticas convencionales son expuestas a un ataque tipo Wannacrypt o de cualquier otra índole dañina. Es como si una ciudad estado populosa, rica y estategica en un paso de comerciantes decidiera proteger solo el edificio del gobierno local y dejar sin protección el resto de la ciudad estado.

Como ya comenté en otro artículo, los directivos de las empresas siguen sin ser conscientes, o no quieren serlo, del problema que algún día les explotará en la cara. Muchos ejecutivos piensan que únicamente es un problema del area IT.

Culpa de la crisis económica es además el hecho de los recortes que se han ido practicando en estos últimos años en pos de salvaguardar los beneficios o meramente sobrevivir. Estos recortes no son inocuos y gratuitos, cada vez es más evidente la enorme cantidad de deficiencias causadas por este motivo en defecto ( ausencia de mantenimiento, obsolescencia y falta de mejoras ) o en exceso ( sobre explotación de los recursos limitados ).

Wannacrypt ha puesto de relieve muchas deficiencias : deficiencias de convergencia industrial-IT en el plano de las redes de comunicaciones, obsolescencia del parque informático y de software, dificultades en la gestión de parches críticos de seguridad, inexistencia de antivirus, etc.

El problema del parcheo

En los niveles de control o supervisión de una planta una amplia mayoría de dispositivos están basados en sistema operativo Windows. Microsoft regularmente tiene que sacar parches con aquellas partes de su sistema operativo que generan la posibilidad de acceso y escalado de privilegios a amigos de lo ajeno y por tanto de capacidad para hackers, malintencionados y malware de hacer daño. Pero el hecho de tener que aplicar regularmente parches al sistema operativo significa que ciertos comportamientos de este puede variar y como efecto colateral el de las aplicaciones que dependen de ello, es decir, nos podemos encontrar que tras un parcheo determinada aplicación deja de funcionar o funciona mal de forma incomprensible aleatoriamente.

Como norma general nos encontraremos que el fabricante o proveedor de la solución industrial se encoge de hombros y asegura que solo garantiza el funcionamiento actual pre-parche. La excepción son aquellos fabricantes serios que tienen un programa de testeado de parches de Microsoft respecto a sus productos. Sin embargo estos planes tienen sus limitaciones, si ya de por si Microsoft tarda un tiempo en reconocer una vulnerabilidad y sacar un parche, tenemos que sumar el tiempo de la verificación de aquella compañía de productos industriales y encima que lo haga a la versión y módulos que interesa al cliente.

En definitiva aplicar parches a los dispositivos con Windows en un entorno industrial es todo un reto casi imposible. Al final todo suele quedar igual que estaba si no llega a ocurrir una desgracia infecciosa o sus efectos son inapreciables.

Plan de seguridad, DiD

La solución al problema del parcheo y otros problemas de la convergencia es tener un buen plan de seguridad en el que se desarrollen medidas del tipo Defence-In-Depth que no es mas que una especie de compendio de estrategias y técnicas de defensa que nuestros antepasados de algún modo practicaron hace mas de cinco siglos.

Aplicar medidas en concreto y aisladas sin mantener una visión integral en conjunto de seguridad puede ser a todas luces ineficaz y con toda seguridad ineficiente.

El desarrollo de un plan de seguridad no es una labor obvia, sencilla o exenta de trabas. Es una labor costosa en tiempo, en esfuerzo creativo, en coordinación y en dinero que debe ser vista como una auténtica inversión de futuro. Es un objetivo que debe ser marcado por la dirección, ningún departamento en solitario puede llevarlo a cabo sin la ayuda/involucracion del resto de la compañía. Desgraciadamente hay que recordar la tópica disputa entre el área de fabricación y el área IT ( en el caso que este último exista como tal y con cuerpo presupuestario propio en la compañía ).

Una vez llegado el dia no deseado como en el pasado mayo se hace patente otra gran deficiencia de las empresas españolas, la capacidad de detección del problema, análisis y la gestión de una respuesta. Si antes he hablado de defensa también hay que dedicar espacio a la confrontación y recuperación. Un plan de seguridad tambien debe tener esto en cuenta: hay que pensar en tener un equipo técnico preparado para analizar la situación y especificar medidas, en tener planes de recuperación y de contingencia asi como procedimientos y protocolos. La comunicación y coordinación incluso muy bien pensadas previamente no serán puestas a prueba hasta la aparición de una crisis a no ser que se hagan incluso simulacros ( esto sería rizar el rizo y nunca he oido a una empresa que lo haya hecho ).

Las empresas que no hagan sus deberes en todos estos puntos se exponen no solo a los efectos dañinos de un ataque cibercriminal sino a sufrir el pánico, desconcierto y caos a modo de pollo sin cabeza. En este caso el resultado final esta en manos de tener buena o mala suerte.

En el caso de Wannacrypt hemos visto en prensa que una cervecera y un fabricante de coches se han visto afectados. Solo salir en la prensa ya es un importante varapalo a la imagen.

El parche de Wannacrypt

En este punto voy a dedicarle unas lineas al parche de Microsoft para dispositvos legacy, dícese principalmente de Windows XP y Windows 2003.

Microsoft de algún modo oficial y en contra de su política de fin de vida ha decidido sacar parche MS17-010 para XP y 2003. Pero los requerimientos son SP3 para XP y SP2 para 2003.

Es de agradecer, pero a ver que se hace con los que no cumplen los requisitos. Pues las opciones son :
- O se sube de Service Pack hasta cumplir con los requerimientos
- O no se instala el parche y se acomete otra contramedida como el ostracismo.

En el primer caso nos arriesgamos que tras la instalación de o instalaciones de los SP ( son varios cientos de megas de archivos que cambian una gran parte del sistema operativo ) nos encontremos que las aplicaciones ya no funcionan como debieran. En el mejor de los casos el fabricante se mojará y nos dará una opinión o recomendación, que probablemente sea la de "es un riesgo del cliente".

En el segundo caso nos obligará a prescindir de servicios remotos o incluso de la funcionalidad de lo afectado.

Existe una tercera posibilidad, analizar el parche y conocerlo mejor. Cuando lancemos el parche este descomprimirá el contenido en el raiz del volumen, es momento de cotillearlo.



Dentro de SPXQFE encontramos los archivos a reponer :


No me quiero extender, pero basicamente se repone el driver del servicio "Server" que provee de acceso a ficheros, impresion y named-pipe para comparticion en red.

Dentro del directorio update para el parche de Windows 2003 por ejemplo encontramos el archivo "update_SP2QFE.inf" que nos da mucha información. Entre ellas las siguientes lineas:
[Version]
Signature                 = "$Windows NT$"
LanguageType              = %LangTypeValue%
NtBuildToUpdate           = 3790
NtMajorVersionToUpdate    = 5
NtMinorVersionToUpdate    = 2
MaxNtBuildToUpdate        = 3790
MaxNtMajorVersionToUpdate = 5
MaxNtMinorVersionToUpdate = 2
MinNtServicePackVersion   = 512
MaxNtServicePackVersion   = 512
ThisServicePackVersion    = 512
CatalogFile               = %SP_SHORT_TITLE%.cat

Son los datos de verificación de versión. MinNtServicePackVersion limita la aplicación del parche a la versión en decimal 512 ( 200 en hexadecimal o versión 2.00) del Service Pack instalado. No probeis a modificar nada porque no será útil.

Más adelante vemos:
[SourceDisksFiles]
    SP2QFE\srv.sys=1
    SP2QFE\w03a3409.dll=1
[DestinationDirs]
    CopyAlways.System32.files=11    ; %windir%\system32 (copy even if don't exist)
    CopyAlways.Drivers.files=12     ; %windir%\system32\drivers (copy even if don't exist)
    CopyAlways.Cache.files=65619        ; %windir%\system32\DllCache (copy even if don't exist)

Es decir, tenemos la posibilidad de hacer una pequeña locura y probar a copiar por nuestra cuenta los archivos. El único inconveniente es el WFP ( Windows File Protection ) que repondrá el .sys original de modo inmediato. Se puede forzar a que se lo trague, basta borrar el archivo original cacheado que usa para reponer el sistema. Una vez hecho el WFP se dará por vencido y nos preguntará si queremos dejar el nuevo archivo desconocido. Si respondemos si y reiniciamos habremos instalado el parche en plan bruto maualmente.

Evidentemente nos hemos saltado a la torera el resto de tareas que se realizan en la instalacion del parche como es actualizar la información en el registro de Windows.

Podemos forzar el parche de Microsoft en Service Packs menores de un modo mas elegante, modificaremos una clave del registro, haremos creer al instalador del parche que el SP instalado es el que requiere :

HKLM\SYSTEM\CurrentControlset\Control\Windows\CSDVersion regdword

En el caso que el W2003 instalado solo tiene el SP1 aparecera el valor 100 hexadecimal en esta clave. Basta con poner 200 hexadecimal y el parche se instalará correctamente.

Tras el correspondiente reinicio podemos reponer la clave del registro a su valor original de 100 hex.

Ahora bien, hay que verificar que el nuevo driver funciona como debe en la versión forzada. Para ello lo recomendable es coger maquinas virtuales e ir probando.

En mi experiencia comprobé que Windows XP SP2 y Windows 2003 raso y SP 1 se tragan el parche correspondiente y el funcionamiento de comparticion de archivos e impresoras o algunos servicios que dependen de recursos administrativos en red ( como la consola de usuarios ) es correcto. Sin embargo Windows XP raso y XP SP1 no es compatible con este nuevo driver y el servicio lanmanserver no levanta.

Curiosamente este es el único riesgo que se corre, que el servicio Servidor (lanmanserver) no levante, es por tanto un riesgo muy delimitado y facilmente resoluble en el caso de atrevernos a forzar el parche.

Este ejercicio de "irresponsabilidad controlada" es un ejemplo de analisis técnico de un equipo de respuesta y como opción puede ser beneficioso ya que en el caso de ser admitido como solución aceptable entonces los equipos que no cumplen con los requerimientos de los parches legacy sacados por Microsoft podrán permanecer en la red protegidos de la vulnerabilidad enternalblue. En mi opinión es mucho más aceptable que dejar expuestos sistemas críticos de una compañia a la vulnerabilidad que ha lanzado a Wannacrypt a la fama.

Conclusión

Wannacrypt es otro aviso mas, no olvidemos el Conficker o Stuxnet y familia, Las mafias y otros grupos delictivos organizados han puesto los ojos en la industria.

Si eres responsable IT de tu compañía con una planta industrial informatizada procura aprender DiD.

Javier G. Sáenz

Consultor Senior de sistemas industriales ICS/SCADA
Arquitecto/programador especialista de sistemas ICS/SCADA
Consultor Senior IT
Experto en ciberseguridad industrial, ISA S-99
Analista Programador Senior Siemens Simatic
Ingeniero de Software Senior proyectos de control de procesos

Especialidades:En general :
Ingenieria del Software Senior, metodos formales y ágiles
Ingniero de Sistemas Windows Senior
Programador multidisciplinar y multiplataformas, desktop, servidores e industrial
DBA Junior, specialidad Microsoft MS SQL
Operador de red Junior
Comprometido con ISO9001 , ISO27001, ITIL V2, COBIT, TOGAF, PMBOK