Comunicado de Apache Struts sobre el caso Equifax

Equifax es una agencia de análisis de riesgo crediticio que sufrió el robo de datos de millones de clientes. Algunos medios vincularon el robo a  problemas de seguridad en el framework para el desarrollo de aplicaciones Java Apache Struts. Esta es la respuesta de sus responsables:

El Comité de Gestión de Proyectos de Apache Struts (PMC) desea comentar sobre la brecha de seguridad de Equifax, su relación con el framework Apache Struts y la cobertura mediática asociada.

Lamentamos escuchar noticias de que Equifax sufrió una violación de seguridad y un incidente de divulgación de información que potencialmente se llevó a cabo al explotar una vulnerabilidad en el web Framework Apache Struts. En este momento no está claro qué vulnerabilidad de Struts se habría utilizado, si es que se hubiera utilizado alguna. En un artículo en línea publicado en Quartz. com, se asumió que la brecha podría estar relacionada con el bug CVE-2017-9805, que fue anunciado públicamente en 4/9/2017 junto con actualizaciones del software Struts que la corregían junto a otras vulnerabilidades. Sin embargo, la brecha de seguridad ya se detectó en julio, lo que significa que los atacantes usaron una vulnerabilidad anunciada anteriormente en un servidor Equifax sin parchear o explotaron una vulnerabilidad que no se conocía en ese momento, la llamada Zero-Day-Exploit. Si la violación fue causada por la explotación de CVE-2017-9805, para entonces habría sido una Explotación de Día Cero. El artículo también establece que la vulnerabilidad CVE-2017-9805 existe desde hace nueve años.

Nosotros, como PMC de Apache Struts, queremos dejar claro que el equipo de desarrollo se esfuerza enormemente en asegurar y endurecer el software que producimos, y en solucionar los problemas cuando nos llaman la atención. Alineándonos con las políticas de seguridad de Apache, una vez que recibimos la notificación de un posible problema de seguridad, trabajamos en privado con la entidad informante para reproducir y arreglar el problema y lanzar una nueva versión reforzada contra la vulnerabilidad encontrada. A continuación, anunciamos públicamente la descripción del problema y cómo solucionarlo. Incluso si conocemos el código de exploit, intentamos retener esta información durante varias semanas para dar a los usuarios del Framework Struts tanto tiempo como sea posible para parchear sus productos de software antes de que aparezcan exploits. Sin embargo, dado que la detección y explotación de vulnerabilidades se ha convertido en un negocio profesional, es y siempre será probable que los ataques ocurran incluso antes de que divulguemos completamente los vectores de ataque, invirtiendo el código que arregla la vulnerabilidad en cuestión o explorando vulnerabilidades aún desconocidas.

En cuanto a la afirmación de que especialmente CVE-2017-9805 es un defecto de seguridad de nueve años de antigüedad, hay que entender que hay una gran diferencia entre detectar un defecto después de nueve años y conocerlo durante varios años. Si este último fuera el caso, el equipo habría tenido dificultades para dar una buena respuesta de por qué no lo arreglaron antes. Pero este no era realmente el caso aquí –se nos notificó hace poco tiempo sobre cómo un cierto trozo de código puede ser mal utilizado, y lo arreglamos lo antes posible. Lo que vimos aquí es un negocio común de ingeniería de software –la gente escribe código para lograr una función deseada, pero puede que no esté al tanto de los efectos secundarios no deseados. Una vez que esta conciencia es alcanzada, nosotros, así como todos los demás mantenedores de la biblioteca y del framework, ponemos grandes esfuerzos en remover los efectos secundarios tan pronto como sea posible. Probablemente es justo decir que cumplimos muy bien con este objetivo en el caso de CVE-2017-9805.

Nuestro consejo general para empresas e individuos que utilizan Apache Struts, así como cualquier otra biblioteca de soporte de código abierto o cerrado en sus productos y servicios de software, es el siguiente:

1. Comprender que frameworks y bibliotecas de soporte se utilizan en sus productos de software y en qué versiones. Realizar un seguimiento de los anuncios de seguridad que afecten a estos productos y versiones.

2. Establecer un proceso para desplegar rápidamente una versión de reparación de seguridad de su producto de software una vez que los framework o las bibliotecas de soporte deban actualizarse por razones de seguridad. Lo mejor es pensar en términos de horas o pocos días, no semanas o meses. La mayoría de las brechas de las que nos damos cuenta son causadas por fallas en la actualización de componentes de software que se sabe que son vulnerables durante meses o incluso años.

3. Cualquier software complejo contiene fallas. No crear una política de seguridad partiendo del supuesto de que los productos de software compatibles son impecables, especialmente en términos de vulnerabilidades de seguridad.

4. Establecer niveles de seguridad. Es una buena práctica de ingeniería de software tener capas individuales aseguradas detrás de una capa de presentación pública como el framework Apache Struts. Una brecha en la capa de presentación nunca debe permitir el acceso a recursos de información significativos o incluso a todos los recursos de información interna.

5. Establezcer el monitoreo de patrones inusuales de acceso a sus recursos Web públicos. Hoy en día hay una gran cantidad de productos comerciales y de código abierto disponibles para detectar tales patrones y dar alertas. Recomendamos este tipo de monitoreo como una buena práctica operativa para los servicios críticos de negocio basados en la Web.

Una vez seguidas, estas recomendaciones ayudan a prevenir brechas como las lamentablemente experimentadas por Equifax.

Por el comité de gestión del proyecto Apache Struts,

René Gielen
Vicepresidente, Apache Struts

Fuente

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s