Problemas de seguridad con Github

--Originally published at Seguridad Informática



Github ha sido conocida mudialmente como una de las mejores herramientas para los programadores, realmente una herramienta hecha a la medida para poder subir tus trabajos y códigos y llevar un control de versiones increiblemente ordenada. Todos nos hemos sentidos seguros con github, ya que su uso consiste en un control de versiones que guarda cada avance de tu proyecto, y cada vez que hagas un "commit" se guardara tu avance y siempre podras regresar a esa version que "si funcionaba bien". 

En lo perosnal soy un fanático de github y de su flexibilidad, ya que puedes ingresar cualquier tipo de lenguaje, además de llevar un control de progreso en gráficas que meustra que tanto has avanzado, además de contar con las herramientas para trabajar con colaboradores y que otros puedan mejorar tu proyecto o simplemente darte algunas sugerencias. Otra cosa que ahce de github una herramienta muy util es que es opensoruce, por lo cual todos pueden ver tu código a menos que hagas tu proyecto privado.

Con filtraciones de contraseñas masivas apareciendo casi semanalmente y la práctica común de reutilizar el mismo password en varias cuentas, los ataques de contraseña automáticos son una buena razón para establecer un nivel adicional de autenticación para servicios en línea. Compañías como Apple, DropBox , Google , Twitter , Facebook o Microsoft, han lanzado la doble autenticación a lo largo del último año.

Recientemente GitHub ha enviado correos electrónicos a usuarios con contraseñas consideradas como débiles cuyas cuentas se han visto potencialmente comprometidas tras un reciente ataque de su sistema de autenticación. El ataque, todavía es investigado, aunque se sabe que se ha originado desde unas 40.000 IPs.

Confirmado de forma official en el blog de GitHub por el Security Manager, Shawn Davenport, el popular servicio de alojamiento de repositorios Continue reading "Problemas de seguridad con Github"

¿Cómo mejorar el rendimiento de tu computadora y tu seguridad al mismo tiempo?

--Originally published at Seguridad Informática

De seguro todos aquellos que tienen una computadora conocen la opción de dormir dentro de las opciones de la computadora, bueno sigamos con esa idea por un momento. Digamos que tu como usuario entras todos los dias a las 7am al trabajo, y a esa hora tienes que encender tu computadora y sales a la 1 pm a comer, luego regresas a la oficina a las 2:30 pm y sales del trabajo a las 6 pm. Bueno, que pasa si te digo que se puede crear una aplicación que utilice un tipo de "inteligencia artificial" para que vaya aprendiendo dia tras dias lo smomentos en qu emas utilizas la computadora, esto para que optimice el rendimiento de la computadora en los momentos que se sabe que utilizaras esa computadora.

Para entender de manera mas facil, imaginemos que existen bloques dentro del CPU que representarán a la memoria, luego imaginemos que cada uno de estos bloques tiene un costo para ser usado, es decir que hay bloques que cuestan mas que otros para que se pueda utilizar su espacio. Ahora imaginemos que un día utilizas tu computadora solo por 1 hora, y el bloque que estas usando es el mas caro, ¿Porque habrias de usar el bloque mas caro por tan poco tiempo que estas utilizando tu computadora? 

La aplicación ofrece una administración en el uso de los bloques de memoria, para que dependiendo del tiempo que la uses se te asigne el bloque de memoria necesario. Esto también influye en seguridad, ya que una computadora que se cierra de manera automática en tiempos de descanso se ve menos propensa a ser victima de ataques de hacking.



¿Cómo evitar los Buffer Overflow?

--Originally published at Seguridad Informática

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 aplicación se almacenan en la memoria de acceso aleatorio, en una zona que se conoce como buffer. Un programa con un diseño correcto debería estipular un tamaño máximo para los datos de entrada y garantizar que no superen ese valor.
Las instrucciones y los datos de un programa en ejecución se almacenan temporalmente en forma contigua en la memoria, en una zona llamada pila. Los datos ubicados después del búfer contienen una dirección de retorno (que se denomina puntero de instrucción) que le permite al programa continuar su tiempo de ejecución. Si el tamaño de los datos es mayor que el del búfer, la dirección de retorno se sobrescribe y el programa leerá unadirección de memoria no válida, generando una violación de segmento en la aplicación.

Entonces, ¿cuál es el posible riesgo de seguridad asociado?

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

--Originally published at Seguridad Informática


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 de Irán.

En un tweet, el ministro Iraní de las TIC, “Mohammad Javad Azari-Jahromi”, declaró que a pocas horas del ataque el 95% de los enrutadores afectados en Irán ya habían sido reestablecidos al servicio normal.

En el caso de Rusia en muchos países del mundo se está investigando una posible interferencia en las elecciones de esos países,  creando múltiples cuentas falsas con las que compartían noticias falsas para influenciar al electorado, además de desalentar la intención de voto entre ciertos sectores de votantes, hackear y filtrar información secreta, y desprestigiar a los candidatos que no consideraban adecuados para sus intereses.

La vulnerabilidad CVE-2018-0171 es un resultado de una validación incorrecta de los datos de packer en el cliente de Smart Install, que es una característica de configuración plug-and-play y gestión de imágenes que proporciona implementación sin intervención de nuevos conmutadores

Programación de procesos

--Originally published at Seguridad Informática

Para empezar este Blog tenemos que entender algunos conceptos básicos, tales como:
  • En un sistema de un solo procesador, solo puede correr un proceso a la vez, todos los demás que quieran correr al mismo tiempo tendran que esperar hasta que el CPU este libre y se pueda reorganizar.
  • El concepto conocido como "multiprogramming" se refiere al objetivo de tener muchos procesos corriendo al mismo tiempo en un uniprocesador, así que la idea es relativamente simple, ya que podemos pensar en los procesos como personas que esperan a que un camarero les asigne una mesa en un restaurante, de la misma manera los procesos esperan hasta que una otra tarea termine de ser realizada por el CPU.

Así que ahora multiprogramming suena como una buena idea, no? Ya que esto nos puede ahorrar mucho tiempo, siendo una manera mas productiva de realizar las cosas, pero para realizar todo esto necesitamos un scheduler, par que administre las tareas que van a ser realizadas, debemos notar que esto no tiene que ser necesariamente una estructura de FIFO (First In First Out), de manera concpetual podemos pensarlo como una linea de partida de una carrera, todos estan listos para correr y tomar la bandera, pero también existe prioridades en este proceso.

Lo que vemos aqui es un diagrama de lo que es un scheduler, y el como funciona en nuestras computadoras, y el como viaja un proceso a través de su ciclo de vida. Y como la vida misma uno no escoge vivir o morir, asi que las opciones new y terminated son clasificadas como nonpreemptive puesto que no se pueden tomar decisiones en esa parte del proceso, pero todo lo demas es conocido como preemptive puesot que tienen una libertad total de lo que se realizará, lo malo es que la parte Continue reading "Programación de procesos"

Deadlock, que son y como evitarlos?

--Originally published at Seguridad Informática

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.



JavaScript, npm y seguridad

--Originally published at Seguridad Informática

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
    Continue reading "JavaScript, npm y seguridad"

Cripto Moneda ¿Cómo funciona?

--Originally published at Seguridad Informática

En los ultimos años se han dado a conocer un nuevo sistema "económico" cibernetico, que empezó siendo una simple idea no tan popular, pero que poco a poco fue agarrando fuerza ante los usuarios, esta nueva técnica se basa en un tipo de moneda cibernética que tiene un valor monetario real en el sistema económico. Estas criptomonedas se crearon para poder crear un sistema económico que sea independiente del sistema gubernamental,, siendo dificil de rastrear, robar e incluso falcificar, de esta manera se previene el lavado de dinero y el usuario puede tener completa libertad de usar su dinero de esta manera.

Este sistema es muy parecido a una compra de acciones, pues su precio flucuta demasiado, empieza siempre en valores pequeños, y después puede elevarse o bajar mas, la cripto moneda mas famosa es la "bitcoin" que hoy en día su valor alcanza los 8360.16 dolares, siendo entonces una moneda increiblemente pesada, pasando de ser solo una idea emprendedora que empezaba a tener un valor de un dolar, a una monera que ha sorprendido a todo el mundo con su valor actual.

Encriptación de datos ¿Cómo funciona?

--Originally published at Seguridad Informática

¿Qué es la encriptación de datos?

La encirptación de datos se refiere al proceso de ocultar datos mediante el uso de claves o contraseñas, para que aquellos que intenten acceder a esta información sin tener la contraseña adecuada, no podrán hacer uso alguno de esta información, ya que será imposible descifrar su contenido. De esta manera si un hacker llegase a robar datos de una empresa importante que estan encriptados, pues le sería totalmente inútil haberlos robados, porque no podrá leerlos.


Debemos tener en cuenta que la encriptación no resuelve el probelma del coontrol de acceso de usuarios, ya que los hackers aun pueden acceder a la base de datos, sin embargo no podran leer la información. 

Existe otra técnica llamada "Data masking" que si ofrece una mayor cobertura de seguridad.La criptografía, puede resguardar datos, conexiones y procedimientos almacenados.






La historia de la encriptación

Un ejemplo básico de la encriptación es asociar letras con símbolos o números, para que de esta manera solo el creador del código sea capaz de entender el mensaje, esta técnica era muy popular durante las guerras, ya que los paises los usaban para enviar mensajes a las tropas militares, y de esta manera si eran interceptadas por el enemigo, no iban a poder codificar el mensaje. Sin embargo un científico matemático en Inglaterra logró percibir un hueco de seguridad en esta técnica que apenas estaba empezando a ser utilizada. Alan Turing habia encontrado que todo era matemático, y que tiene ciertos patrones, así que podia predecir el significado de un mensaje de manera automática con ayuda de una computadora, logrando de esta manera tomar un papel muy importante durante la segunda guerra mundial.



¿Cómo funciona la encriptación?

Como se ve en la imagen anterior, se puede ver un ejemplo claro de la encriptación Continue reading "Encriptación de datos ¿Cómo funciona?"

¿Problemas con tus procesadores Intel?

--Originally published at Seguridad Informática

¿Problemas con tus procesadores Intel?

Cómo de seguro han escuchado en los ultimos meses se ha dado a conocer un problema bastante grande en el mundo de la computación relacionado con los procesadores de Intel. Esta noticia tomó a muchos por sorpresa, pues el error se concentra en un fall de diseño que le permite a cualquier aplicación entrar al "kernel space", dando como resultado un agujero de seguridad bastante crítico. Pero para esto explicaremos mas a detalle esta noticia.

¿Qué es un sistema operativo?

  • Un sistema operativo es aquel que actua como intermediario entre el usuario de la computadora y el hardware, buscando optimizar el uso del hardware, diseñado para ser eficiente.
  • Un sistema operativo administra el uso del hardware y coordina su uso a través de las diferentes programas.
  • Supervisa la ejecución de los programas para prevenir errores y administrar las operaciones de control de input/output.

¿Cómo funciona un sistema operativo?

Selection_125.png
En esta imagen podemos ver un diagrama detallado de como funciona un sistema operativo, empezando por el hardware, despues va al boot loader,e n donde se revisa que todo se encuentre en orden y existan las herramientas necesarias, y el kernel, que es aquel que se encarga de tener el control total sobre las funciones de la computadora, manteniendo la comunicación entre software y hardware para que puedan trabajar en conjunto. Como se pueden dar cuenta existe un espacio entre kernel space y user space, pues como sabemos un usuario no deberia tocar el hardware de una computadora, puesto que esto conlleva un riesgo, bueno... Pues resulta que no debe tocar nada que se encuentre dentro del Kernel space, ya que esto representaria un agujero de seguridad que le permitiria a un virus entrar a la parte mas importante del sistema, corrompiendo todo de manera Continue reading "¿Problemas con tus procesadores Intel?"