Ir al contenido principal

JavaScript, npm y seguridad

Como habran escuchado en las ultimas semanas hubo un problema de seguridad con npm. Esto debido a que se anuncio que la ultima actualizacion de npm cambia los permisos criticos del sistema de archivos de Linux, lo cual provoca como consecuencia que todo el sistema operativo se pueda romper por completo. Segun las fuentes incluidas al final de este blog, al rededor de 2000 usuarios se vieron afectados por este error de seguridad al actualizar npm, con tansolo 4 horas de su nuevo lanzamiento. Muchos utilizaron la opción de usar "sudo" para instalar esta actualziación, y como todos lo usuarios de LInux sabemos, esta opción "sudo" le permite a la nueva versión tener permisos de administrador en la computadora, cambiando permisos en varios archivos.

Ahora uno se preguntaria, porque npm? porque alguien necesitaria actualizar npm? Bueno, para todos aquellos que utilizan JavaScript deben saber sobre node.js, que gracias a este JavaScript se ha unido a varios lenguajes populares del lado del servidor como PHP, Perl, Python, Java, etc, incluyendo nuevas herramientas que facilitan su uso para el programador. Y si alguna vez han instalado node.js deben saber que esto incluye npm para administrar los paquetes de node, clasificandolos por usted. La mala noticia es curiosamente lo mismo, que al adoptar node, viene incluido npm, junto con su nuevo problema de seguridad.

Se tiene entendido que no existe un gran problema siempre y cuando no se utilice "sudo" para actualizar, ya que esto almenos le da la seguridad de que no le dio ningún permiso de administrador a la actualización. 

¿Qué hacer?














  1. Mantenga copias de seguridad que faciliten una reversión significativa. La NPM ha causado desastres de relaibilidad antes, y dada su naturaleza vagamente anárquica, los volverá a causar.
  2. Obtenga la última versión de NPM tan pronto como pueda. Afortunadamente, su sistema operativo probablemente se encargará de eso, no del propio NPM.
  3. No actualice los servidores de producción. Pruebe la última actualización en las pruebas primero.
  4. Recuerde que un software simple puede ser inmensamente complejo. Tenga esto en cuenta al hacer tiempo para las pruebas.

Comentarios

Entradas populares de este blog

Deadlock, que son y como evitarlos?

Imaginemos que estamos conduciendo por una calle de un solo sentido, y de repente quieres dar vuelta a la derecha que lleva a la casa de tu abuelita (esa calle también tien un solo carril muy estrecho), sin embargo de esa misma calle viene saliendo otro automovil, y por la falta de semaforos ambos se ven involucrados en un gran problema, puesto que no existe una manera de organizar quien puede pasar primero que otro. Bueno, esta es la definición de un "Deadlock", cuando dos o mas procesos se ven bloqueados debido a que la lucha por obtener recursos, y ninguno cede, como consecuencia se ven bloqueados para siempre y ya no se puede realizar mas trabajo.  Cómo solucionariamos esto? Bueno, como se dijo anteriormente, una solución es el uso de semaforos, lo cual administra la sincronización de los procesos, organizando quien se ejecuta primero por orden o por importancia.

¿Cómo evitar los Buffer Overflow?

Primero debemos explicar que es un buffer overflow, pues simple y sencillamente un buffer overflow es cuando un programa excede el uso de cantidad de memoria asignado por el sistema operativo. Lo que causa que se empiece a escribir en el bloque de memoria contiguo. Este tipo de fallos se utiliza por hackers que buscan tener este tipo de oportunidades para romper código, cambiar variables o introducir código y tomar control total de los equipos. Un  buffer overflow  se produce en una aplicación informática  cuando no cuenta con los controles de seguridad necesarios en su código de programación . Cabe destacar que para poder llevar a cabo un desborde de memoria, se debe contar con conocimientos de programación, como también nociones básicas de arquitectura de Sistemas Operativos. El principio operativo de un desbordamiento de búfer va de la mano con la arquitectura del  procesador  en la que se ejecuta una aplicación vulnerable, ya sea de 32 o 64 bits. Los datos ingresados en una

Redes iraníes y rusas atacadas usando la vulnerabilidad CVE 2018-0171 de Cisco

El dia 6 de Abril durante la noche se reportó un ataque de seguridad por parte de un grupo de hackers llamado “JHT” hacía varias infraestructuras de redes extranjeras, incluyendo Rusas e Iraníes, utilizando a la instalación inteligente de CISCO bajo el código CVE-2018-0171, gracias a esto los hackers lograron restablecer los enrutadores a su configuración predeterminada, además de mostrar un mensaje a las víctimas. Nos estamos refiriendo a que se sobrescribe el archivo de configuración del enrutador conocido como “startup-config” para reiniciar todo el sistema. Causando interrupciones en las redes afectadas y el archivo de configuración de inicio del enrutador se cambió por un mensaje que decía “No se metan con nuestras elecciones.... -JHT usafreedom_jht@tutanota.com" Según el ministerio de Tecnología de la Información y Comunicación de Irán, se declararon más de 200,000 enrutadores en todo el mundo que se vieron afectados por este ataque, en donde 3500 de ellos eran d