ClickCease ¿Seguridad de nivel empresarial con código fuente abierto? |tuxcare.com

Únase a nuestro popular boletín

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

Sobre la ética de la investigación en seguridad de código abierto

20 de mayo de 2021 - Equipo de RRPP de TuxCare

La investigación sobre seguridad es un aspecto importante de la ciberseguridad, pero no es especialmente fácil llevarla a cabo ni hacerlo científicamente. No es de extrañar, por tanto, que un equipo de investigación se plantee probar tácticas "novedosas" para llevar a cabo la investigación.

Sin embargo, el pasado mes de abril, un equipo de investigación de seguridad de la Universidad de Minnesota se metió en un buen lío por unos métodos que sobrepasaban los límites éticos.

En este artículo explicaremos por qué necesitamos tanto la investigación en seguridad de código abierto, por qué la investigación en ciberseguridad requiere una base científica y cómo se equivocó el equipo de la Universidad de Minnesota.

Contenido

Introducción a la investigación sobre seguridad de código abierto

Comprender la investigación científica

Por qué es importante el método científico

¿Qué ha pasado en Minnesota?

Por qué no es ético el planteamiento de la Universidad de Minnesota

Ética en la investigación sobre ciberseguridad

Conclusión

Contenido extra: Charla con Jay LaCroix (LearnLinuxTV) - Ética del código abierto, y cómo la Universidad de Minnesota falló a Linux.

 

Introducción a la investigación sobre seguridad de código abierto

La ciberseguridad es esencialmente una carrera. En un bando están los actores malintencionados que se apresuran a encontrar nuevos fallos desconocidos (vulnerabilidades) en los programas informáticos, incluidos los de código abierto.

Estos nuevos fallos no descubiertos, también conocidos como vulnerabilidades de día cero, son extremadamente valiosos para los atacantes. Dado que los usuarios aún no han protegido sus sistemas contra estos fallos, las vulnerabilidades de día cero son más fáciles y lucrativas de explotar.

En el otro bando están los investigadores de ciberseguridad, los equipos que intentan encontrar fallos antes de que los malos encuentren esas vulnerabilidades. Cuando los investigadores de seguridad descubren fallos en software de código abierto, pueden tomarse medidas correctivas. Los investigadores prueban cuidadosamente las medidas de mitigación -como los parches- y luego hacen público el fallo, publicando también los métodos de mitigación.

Como en cualquier carrera, cuanto más se esfuerce uno de los equipos, más probabilidades tendrá de ganarla. Por eso son tan importantes los esfuerzos en la investigación de seguridad de código abierto: cuanta más investigación se haga, menos posibilidades tendrán los actores malintencionados de explotar los fallos de día cero encontrados por los malos.

La descripción anterior es algo simplificada. Por ejemplo, en términos de código de software, los investigadores observarán cómo un fallo puede llevar a una cadena de compromisos. Y, a grandes rasgos, los investigadores en ciberseguridad no sólo se fijarán en las líneas de código de software, sino también en aspectos como los fallos de red y hardware, los procedimientos y políticas, y otros aspectos más estratégicos de la ciberseguridad.

Podría decirse que la investigación en seguridad de código abierto es urgente. Es sólo cuestión de tiempo que se descubra un fallo, y es mejor que lo descubra un investigador de seguridad y no un hacker.

Sin embargo, esta urgencia no justifica tomar atajos. En la investigación sobre ciberseguridad, seguir una metodología de investigación científica y ética importa tanto como en el caso de las ciencias naturales o sociales.

 

Comprender la investigación científica

Los métodos de investigación científica pueden parecer innecesariamente rígidos y restrictivos, pero están probados y existen para que los investigadores puedan presentar resultados que resistan el escrutinio. Los métodos de investigación rígidos y estructurados ayudan a los investigadores a evitar las trampas y los errores más comunes que pueden socavar la validez de la investigación.

Por ejemplo, los métodos de investigación se diseñan para evitar problemas de manipulación de datos, ya sea intencionada o accidentalmente, mediante un diseño de investigación sólido. Los riesgos de errores de investigación, como el plagio, también se mitigan cuando los estudios de investigación se diseñan de acuerdo con metodologías establecidas.

Una visión completa del método científico queda fuera del alcance de este artículo, pero para resumir, podemos dividir la investigación científica estructurada en método - y principios rectores.

En cuanto al método, los estudios científicos se construyen esencialmente en torno a una hipótesis. En primer lugar, el investigador formula una hipótesis basada en observaciones, experimentos o mediciones anteriores. A continuación, se hace una predicción que se pone a prueba mediante experimentos. Cuando llegan los resultados, se analiza la hipótesis y se confirma o modifica a la luz de los resultados.

A continuación, hay una serie de principios que rigen este proceso. La investigación debe ser siempre objetiva y libre de sesgos: los datos deben ser representativos, por ejemplo, no un conjunto de datos especialmente seleccionados que se recortan de los datos de origen para manipular los resultados.

 

Por qué es importante el método científico

Otros principios clave del método científico son la capacidad de reproducir los resultados y la capacidad de verificarlos. En conjunto, estos principios sirven de guía a los investigadores para que los esfuerzos dedicados a la investigación científica produzcan resultados sólidos, fiables y comprobables.

Podríamos señalar dos áreas clave. En primer lugar, cuando pensamos en el progreso científico, ya sea en ciberseguridad o en otro ámbito, solemos pensar en bloques de construcción. Los investigadores se basan en los resultados de sus predecesores, por lo que estos bloques de construcción deben ser suficientemente sólidos.

Al seguir un método científico sólido, los investigadores crean "estructuras" sobre las que los futuros investigadores pueden construir. Por el contrario, si la ciencia es defectuosa, la estructura puede derrumbarse. Por eso el método científico es tan minuciosamente lento y comedido. Sólo funciona con la recopilación sistemática y empírica de pruebas, para que la ciencia pueda resistir el escrutinio.

Pero el segundo elemento, y quizá uno de los más críticos, de los métodos de investigación científica es la ética. No es difícil entender por qué "atajos" que causan daño a los sujetos pueden conducir a resultados más rápidos en un estudio científico. Por esa razón, los estudios están sujetos a un escrutinio ético, y es la razón por la que las principales instituciones educativas tienen comités de ética: para escrutar la ética que hay detrás de los proyectos de investigación.

Es fácil imaginar cómo, en ausencia de límites éticos, los estudios médicos y sociales pueden perjudicar a los sujetos estudiados.

Incluso en la investigación sobre ciberseguridad, puede resultar tentador avanzar mucho más rápido realizando estudios que causen daño a los sujetos estudiados. Esto es lo que ocurrió en la Universidad de Minnesota este año.

 

¿Qué ha pasado en Minnesota?

En abril, tres investigadores de la Universidad de Minnesota (UMN) estaban realizando un estudio sobre algo llamado ataques a la cadena de suministro de software. En otras palabras, el equipo de investigación estaba estudiando cómo los hackers podrían lanzar un ataque interfiriendo en cómo se desarrolla el software. El equipo de la UMN quería comprobar la solidez de este proceso de desarrollo.

Como sujetos, el equipo de la UMN eligió al grupo que rige el desarrollo del núcleo de Linux. La investigación se basó en una metodología que forma parte integrante del desarrollo de software de código abierto: la posibilidad de que diversas organizaciones y particulares aporten código al núcleo de Linux, sujeto a un proceso de revisión.

Al igual que muchas otras instituciones educativas importantes, el equipo de la UMN podría contribuir directamente al núcleo de Linux. Las contribuciones de la UMN estarían sujetas a revisión, y es este proceso de revisión lo que interesaba a los tres estudiantes de posgrado.

En el estudio, el equipo de investigación intentó insertar una vulnerabilidad de uso después de la liberación (UAF) en el kernel de Linux mediante el envío de código defectuoso en virtud de su capacidad para realizar envíos al kernel. El equipo quería evaluar si este código defectuoso era detectado por el proceso de revisión.

Se presentaron varias veces y, según parece, los fallos fueron detectados por el equipo que supervisa las presentaciones al kernel de Linux. Sin embargo, el equipo que supervisa el kernel de Linux no quedó satisfecho cuando descubrió que eran objeto de un estudio de investigación que desconocían. Se descubrió que los investigadores estaban enviando código defectuoso y, como resultado, se prohibió a la UMN enviar más actualizaciones al kernel de Linux.

Desde el punto de vista de la investigación, se puede entender por qué los estudiantes de la UMN se plantearon la pregunta que se hicieron. Si se envía código defectuoso al núcleo Linux, ¿se marcará? Y en caso afirmativo, ¿cuánto tarda en ser marcado? Sin embargo, desde un punto de vista ético, los métodos del equipo no eran aceptables.

 

Por qué no es ético el planteamiento de la Universidad de Minnesota

El planteamiento del equipo de la UMN contenía varios defectos éticos. En primer lugar, el equipo nunca avisó a la comunidad de código abierto de que planeaba llevar a cabo esta investigación. Como resultado, se experimentó con los sujetos del estudio sin su consentimiento, lo que va en contra del planteamiento ético de los estudios científicos.

Además, existía el riesgo de que el código defectuoso enviado por la UMN permaneciera en el kernel y acabara incluyéndose en varias distribuciones de Linux, lo que podría perjudicar a varias partes en el futuro.

Una vez más, eso no era ético, simplemente porque un estudio de investigación nunca debe provocar daños. Curiosamente, el proceso de limpieza, una vez descubierto el equipo de la UMN, fue bastante complicado, ya que los investigadores de la UMN no documentaron claramente sus esfuerzos. En esencia, todas las contribuciones de la UMN al kernel tuvieron que ser retiradas para eliminar la posibilidad de que código "experimental" defectuoso llegara a las distribuciones de Linux convencionales.

Los investigadores responsables de este estudio no obtuvieron el permiso de los sujetos, lo que constituye una grave violación de la ética en la investigación. Los investigadores también violaron uno de los principios clave del desarrollo de código abierto -la confianza- al introducir errores en el kernel a propósito. Esto provocó la reacción airada de toda la comunidad.

Cualquiera que sea la opinión sobre los méritos del estudio, no cabe duda de que se violaron los límites éticos y, por lo tanto, no es de extrañar que, hace unas semanas, el equipo de supervisión del núcleo Linux bloqueara nuevas contribuciones de estudiantes y personal de la Universidad de Minnesota.

 

Ética en la investigación sobre ciberseguridad

Al principio de este artículo, explicábamos por qué la investigación en ciberseguridad es tan importante: los usuarios de tecnología están esencialmente en guerra contra actores malévolos que van desde el delincuente común a países enteros. Los ciberataques cuestan miles de millones a la economía y pueden destruir organizaciones enteras.

Llevar a cabo investigaciones sobre ciberseguridad de forma ética es igual de importante para que los resultados sean fiables, se puedan verificar y se pueda aprender de ellos, y para evitar que se produzcan daños. Sin embargo, hay otra cuestión en juego.

Si existe un clima de miedo y desconfianza en torno a la investigación sobre ciberseguridad, es probable que ello repercuta en los futuros esfuerzos de investigación: tanto en la motivación para llevarla a cabo como en la confianza en los resultados de la investigación.

Por eso es tan importante que los investigadores en el ámbito de la ciberseguridad sigan el método científico y todas sus características asociadas, incluido un enfoque ético de la investigación en ciberseguridad.

En el caso de la UMN, el comité de ética debe examinar un estudio de investigación y señalar los problemas éticos. Sólo podemos especular por qué la junta de la UMN no puso fin a este estudio. Tal vez el comité de ética no apreció plenamente los matices del desarrollo de software de código abierto ni las cuestiones éticas planteadas por el estudio de investigación.

En cuanto al equipo de la UMN, los investigadores deberían, como mínimo, haber pedido permiso a los mantenedores del kernel para realizar el experimento. Al no hacerlo, abusaron de la buena voluntad de la comunidad de código abierto, dado que estas presentaciones del kernel se aceptan e incluyen sin más.

 

Conclusión

Si nos fijamos en la investigación científica en sentido amplio, incidentes como el que acabamos de describir son infrecuentes, pero no inauditos. Ciertamente, con el tiempo se están haciendo menos comunes a medida que el proceso de investigación y revisión se hace más exhaustivo. Por ejemplo, estamos viendo pocos de los locos experimentos médicos que vimos hace un siglo o así.

Cuando se detecta un comportamiento poco ético en la investigación, una reacción firme y la publicidad pueden ayudar a disuadir de comportamientos similares. El equipo de la UMN ha sido amonestado y la reputación general del departamento de informática de la universidad ha sufrido un duro golpe.

Debería servir de lección a los demás: incluso en la investigación sobre ciberseguridad importan el método científico y la ética. No avanzaremos de forma significativa contra la amenaza de la ciberdelincuencia a menos que exista un enfoque de colaboración que respete los intereses de todos.

Por último, debe preservarse la naturaleza confiada de la comunidad de código abierto. No es aceptable que los investigadores de ciberseguridad abusen de la confianza que es tan intrínseca al progreso del software de código abierto. Quienes gestionan el desarrollo de software de código abierto deben permanecer vigilantes y desalentar activamente la experimentación innecesaria.

 

Contenido adicional: Ética del código abierto y el fracaso de Linux en la Universidad de Minnesota

Echa un vistazo a la discusión entre Jay de LearnLinuxTV y nuestro Evangelista TuxCare Joao Correia sobre cómo la Universidad de Minnesota se equivocó con el código abierto, las fortalezas y debilidades del código abierto en general.

¿Desea automatizar la aplicación de parches de vulnerabilidad sin reiniciar el núcleo, dejar el sistema fuera de servicio o programar ventanas de mantenimiento?

Más información sobre Live Patching con TuxCare

Conviértete en escritor invitado de TuxCare

Empezar

Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín