Jupyter Notebook abre un agujero de seguridad

Share this…

Jupyter Notebook se ha convertido en una herramienta de confianza para aprender nuevos lenguajes de programación, realizar pruebas de concepto y analizar datos.
Una investigación de DataGravity encontró que más de 350 servidores Jupyter Notebook han estado ofreciendo acceso no autorizado a la interfaz web de Jupyter y la interfaz de línea de comandos. Además instalaciones de servidores por defecto de Jupyter Notebook anteriores a la versión 4.3 no ofrecen ningún mecanismo de seguridad por defecto que pueda prevenir a los atacantes acceder a la interfaz web.
Esto hace posible para los atacantes explotar tres vectores de ataque triviales que les proporcionan el acceso total a los equipos objetivo con los permisos del usuario que inicializó el servidor.
Vector 1: Ejecutar código arbitrario dentro de la computadora portátil
Las computadoras portátiles de Jupyter pueden correr código en diferentes lenguajes, sin embargo, cada una tiene su propio kernel (por ejemplo Python, Ruby, entre otros) que ejecuta código en un solo lenguaje. Utilizando código cuidadosamente construido, un atacante podrirá ejecutar comandos en el sistema dentro del portátil.
Por ejemplo, una computadora usando el kernel de Python3 podría levantar e instalar la herramienta Netcat a través de subproceso, como se muestra continuación.
Vector 2: Ejecutar comandos de sistema local dentro de la computadora portátil
Similar al vector 1, pero sin la dependencia de saber el lenguaje de programación específico en el servidor de Jupyter Notebook, un atacante puede interactuar directamente con el sistema operativo utilizando un sigo de exclamación (!) antes del comando del sistema. Un simple comando whoami o ls podría ejecutarse en el sistema, así como comandos para borrar archivos (por ejemplo rm) como se muestra a continuación.
Jupyter Notebook security
Vector 3: Iniciar un shell directamente desde la interfaz web
Quizás el vector más fácil de explotar es el que ofrece una interfaz directa con el sistema en cuestión. La interfaz web de la computadora portátil ofrece una terminal que puede ser utilizada para abrir una terminal del sistema en una nueva pantalla.  Esta terminal, mostrada abajo, permite comandos directos como si estuviera interactuando directamente con el sistema vía la aplicación.
Jupyter Notebook security
Estos vectores fueron reportados el 13 de diciembre del 2016 a través del sistema VE con el identificador asociado CVE-2016-9970.
Buscando servidores vulnerables
Utilizando Shodan, el motor de búsqueda para dispositivos conectados a Internet, DataGravity creó una consulta de búsqueda que puede identificar los servidores de Jupyter Notebook que no tenían una contraseña establecida para el acceso a la interfaz web. Ejecutando la misma búsqueda el martes 24 de enero de 2017 a las 9 am PT, el número de servidores vulnerables conectados ha aumentado a 632 (en comparación a los 481 en diciembre).
Datos recientes muestran que las tres localizaciones geográficas más importantes de las instancias descubiertas residen en los Estados Unidos (467), China (33) y Japón (17), pero también hay impactos en Sudamérica, Rusia, India e Irán, entre otros.
Jupyter Notebook security
Como se ve en el gráfico, Amazon lidera con la mayor cantidad de instancias descubiertas, pero otros proveedores en la nube (Google, SoftLayer, Microsoft), proveedores de alojamiento (Digital Ocean) e instituciones educativas (Merit Network, Universite de Strasbourg) se encuentran en el top 10.
Jupyter Notebooks security
Fuente:https://www.seguridad.unam.mx

Share this…