Sistemas operativos fósiles o la falta de actualización de los sistemas de control industrial

marzo 17, 2013 § Deja un comentario

Esta mañana he venido a trabajar en metro, como acostumbro a hacer. Cuando he pasado junto a la fila de máquinas expendedoras de billetes he visto que una de ellas estaba bloqueada y en pantalla aparecía una ventana de error con una imagen fija que identificaba el sistema operativo de la misma: Windows 2000.

Este hecho, tan simple, nos sirve para ilustrar una de las características que diferencian los sistemas TIC de los sistemas de control industrial. Efectivamente, los PC de control y supervisión suelen tener el sistema operativo de uso corriente en el momento en que se implantó el sistema/instalación. Y suele permanecer así para siempre. Es más, en general ni siquiera se instalan las distintas actualizaciones distribuidas periódicamente por el desarrollador.

Esto tiene distintas causas. Algunas de ellas son las siguientes:
1. Porque los responsables de estos equipos son gente de producción y no tienen los medios ni los conocimientos para responsabilizarse de mantener estos sistemas actualizados.

2. Porque la programación de los sistemas industriales requiere de un perfil de personal que, en general, no está disponible en la empresa (hay que contratar a terceros). Por esta misma razón ocurre a veces que hay elementos, alarmas, etc. de los programas de supervisión que han quedado obsoletos y aún así no se eliminan de las interfaces gráficas.

3. Porque el sector es muy conservador y poco dado a modificar cosas que, en principio, funcionan.

4. Porque el software es un desarrollo específico y ya no existe servicio técnico por parte del proveedor/desarrollador/integrador. Esto puede parecer raro, pero teniendo en cuenta la vida de los equipos industriales, medida en lustros, no es nada raro que uno se encuentre con que al cabo de los años no tiene a quién llamar.

5. Porque actualizar el sistema operativo puede requerir actualizar el software de supervisión, lo que requiere el trabajo de especialistas externos, lo que supone un coste, lo que no vamos a hacer ya que todo funciona y no se ve la necesidad.

6. Porque existe la percepción de que una actualización sirve para arreglar cosas que el proveedor del sistema operativo no hizo bien a la primera (pero que afectan a otros, ya que a mí ‘me funciona todo bien’, por lo que no veo la necesidad de actualizar nada).

7. Porque se tiene la percepción de que las cosas viejas están puestas a prueba durante más tiempo y son fiables, mientras que las nuevas no (por eso los informáticos tienen que estar continuamente haciendo parches). Fíjense en las connotaciones negativas asociadas a la palabra parche, que independientemente de su significado específico en la jerga de una profesión es, para el resto de hablantes, sinónimo de ‘arreglo chapucero con lo que tenía a mano para ir tirando’.

8. Porque hay miedo de que el software deje de funcionar si se actualiza el sistema operativo (y no es un temor injustificado). En un proceso industrial en producción no hay líneas de reserva (por lo general) y un fallo en el sistema de control implica una parada del proceso, pérdidas de trabajo en curso y tiempos de indisponibilidad cuyo coste es fácilmente evaluable en términos de lucro cesante. Por no hablar del riesgo sobre vidas humanas. En aquellos casos en los que existe una estación de ingeniería o un servidor SCADA de respaldo en los que es posible probar los efectos de modificar el SO o el programa, las razones de la no actualización hay que buscarlas en otros puntos de este listado.

Este es un hecho con el que los expertos en seguridad deben familiarizarse. Cualquier estrategia debe tener en cuenta que uno no se va a enfrentar a los mismos problemas que existen en los sistemas TIC. Y que puede que técnicas y herramientas perfectamente válidos en estos no lo sean en un sistema industrial. También nos sirve como recordatorio de la extrema vulnerabilidad de los sistemas industriales, expuestos a morir de enfermedades superadas hace tiempo en otros lugares.

Vamos, de un constipado.

Fuente: Security art work

Anuncios

KeyGrinder, hashing de contraseñas para servicios web

enero 11, 2013 § Deja un comentario

La administración de contraseñas no es un tema que debamos tomarnos a la ligera. En un mundo ideal, deberíamos tener una contraseña diferente para cada servicio online que utilicemos, y, para tal caso, contraseñas fuertes. Pero lamentablemente no vivimos en un mundo ideal, y como ayuda memoria solemos usar la misma contraseña, porque francamente resulta imposible recordar la cantidad de información que estamos manejando. Para los usuarios de iPhone, un novedoso gestor de contraseñas nos permite mejorar nuestra experiencia en este sentido, con una aplicación web y para iPhone que nos ayudará a estar más seguros y organizados. Se trata de KeyGrinder.

La idea detrás de KeyGrinder es que podamos usar la misma contraseña para todos los servicios en los que tengamos una presencia, sin tener que comprar, por precios que muchas veces están bastante lejos de nuestro bolsillo, un administrador de contraseñas que cumpla con nuestros requisitos de seguridad. Y lo mejor de todo, es que es completamente gratuito. Si la primera preocupación es la seguridad, no debería existir. KeyGrinder utiliza la tecnología de hashing para almacenar contraseñas de forma segura, una tecnología diseñada especialmente para evitar el robo de identidad, entre otras cosas. Con KeyGrinder, podemos generar contraseñas fuertes, recordando nada más que una contraseña simple.

Cada una de las contraseñas conforman un hash, por lo que cuando comenzamos a usar KeyGrinder deberemos seleccionar una contraseña maestra y luego ingresar el resto de los servicios que accedemos seguido. La longitud de la contraseña resultante dependerá de la primera contraseña que hayamos ingresado, y del servicio que hayamos seleccionado. Cuanto más larga, más segura será, hasta 26 caracteres. Poder tener acceso a una plataforma que realice esta administración es más que útil, y recordemos que no tenemos que pagar para nada por este servicio. Si somos usuarios intensivos de diferentes plataformas en internet, entonces es una opción ideal.

Los usuarios de iPhone y iPad pueden combinar la potencia de la aplicación web con una móvil, que ofrece las mismas funcionalidades que el servicio web. KeyGrinder para iOS nos permite recordar los sitios web que hayamos visitado, para luego ingresar nuestra contraseña maestra y poder acceder a nuestra multiplicidad de servicios. Es un genial administrador, que además nos brinda esta seguridad adicional.

Ninguna contraseña es infalible, por lo que les recordamos que, en el caso de no desear usar KeyGrinder o un servicio similar, tienen que tener una contraseña fuerte con combinaciones de caracteres especiales y números, que no esté relacionada con alguna información que pueda adquirirse a través de ingeniería social, por ejemplo. Los servicios de generación y administración de contraseñas, en este sentido, pueden resultar muy útiles. Nunca tenemos que olvidarnos de mejorar la seguridad de nuestra vida en internet.

Fuente: Bitelia

Vulnerabilidad en software de huella digital

octubre 16, 2012 § Deja un comentario

Hasta 16 compañías entre las cuales tenemos a Sony y a Dell por citar un par de ejemplos, incluían (¿incluyen?) en algunos de sus portátiles un software de gestión de autenticación a través de huella digital llamado UPEK Protector Suite, se ha descubierto que este software almacena las contraseñas en el registro con una encriptación ciertamente débil de modo que en pocos segundos cualquier atacante puede tener acceso a ellas.

El software UPEK Protector Suite, es un tipo de gestor que juega la baza de que solo con nuestra huella dactilar podremos autenticarnos en nuestro sistema, permitiendo al usuario olvidarse de las “engorrosas” contraseñas. Hasta aquí muy bien, el problema viene en el momento en que activamos el software, el cual escribe nuestra contraseña en el registro encriptándola muy débilmente, por lo que se puede conseguir en cuestión de segundos, como ha demostrado Elcomsoft. En este caso aunque nuestra huella digital sea única y un medio relativamente seguro de acceder a la información, si el software que gestiona nuestra identidad comete una pifia como en este caso, todo el sistema es violable.

En las pruebas realizadas por esta empresa rusa, una vez deshabilitado el software la contraseña seguía estando en el registro debiendo ser borrada manualmente. Authentec, la compañía de UPEK Protector Suite; ya no lo comercializa, pero este software se distribuía con portátiles de las siguientes empresas: Amoi, Asus, Clevo, Compal, Dell, Gateway, IBM/Lenovo, Itronix, MPC, MSI, NEC, Sager, Samsung, Sony y Toshiba.

Fuente: Cyberseguridad

10 herramientas para que los niños aprendan a programar

julio 30, 2012 § Deja un comentario

Programar es, según la RAE, elaborar programas para la resolución de problemas mediante ordenadores. Donde programas son una serie de instrucciones debidamente elaboradas para dicho ordenador. Visto de otra manera, el programador escribe un mensaje, el código fuente, que el ordenador recibe, entiende y ejecuta luego de una serie de traducciones. Así se establece un tipo muy especial de interacción hombre-máquina, que comienza en la mente del programador y termina en los registros del CPU.

La programación es ciencia y arte. Por un lado, como programadores, tenemos que hacernos de una buena colección de algoritmos y estructuras de datos para resolver problemas con cierta eficiencia. Aquí está la ciencia. Por el otro lado, debemos adquirir el oficio de programar con alguna herramienta, que va desde el lenguaje de programación hasta el entorno de desarrollo, sin mencionar técnicas de ingeniería de software para gestionar proyectos complejos y donde las preferencias-obsesiones personales entran en juego, incluso podemos hablar de estilos de programación. Aquí está el arte. Un programador experimentado sabe equilibrar esas dos fuerzas.

¿Cómo enseñar programación a un niño? Digamos a alguien entre 8 y 15 años de edad. No creo tener la mejor respuesta en términos pedagógicos, sin embargo, sí puedo recomendar alguna de las siguientes herramientas diseñadas especialmente para que los niños aprendan a programar, sin las complejidades teórico-prácticas de la programación profesional, con diferentes paradigmas a escoger.

No soy padre, pero si lo fuera creo que la experiencia de enseñarle a tu hijo a programar será la próxima versión de enseñarle a andar en bicicleta. Si tú lo has hecho, por favor cuentanos tu experiencia en los comentarios.

  1. Alice
    Código abierto. Inglés.
    Ambiente de programación creado en Carnegie Mellon University, donde los niños pueden contar historias animadas con bloques 3D: “para la próxima generación de científicos de la programación.
  2. Doma de Serpientes para Niños
    Código abierto. Inglés y español.
    Basado en el famoso “Snake Wrangling for Kids”, es un libro electrónico para enseñar programación a niños mayores de 8 años mediante el lenguaje de programación Python, disponible en cualquier sistemas operativo. Éste lenguaje, cabe mencionar, es sencillo, flexible y poderoso: soy un acérrimo fan.
  3. Kids with Ruby
    Código abierto. Inglés.
    Es un software interactivo para aprender programación con el lenguaje Ruby: unos de los más bellos lenguajes, si me permiten decirlo, que podrán encontrar. Como dijo Yukihiro Matsumoto, creador de Ruby, “espero ayudar a que cada programador en el mundo sea productivo, disfrute y sea feliz programando. Este es el principal propósito del lenguaje Ruby”.
  4. Kodu
    Comercial. Inglés.
    Con Kodu lo niños pueden crear juegos de manera visual desde la PC y XBox. Fue diseñado para enseñar a programar con tres conceptos eje: creatividad, resolución de problemas y narrativa.
  5. LEGO MindStorms NXT
    Comercial. Inglés, español.
    Son robots programables, ya sea con el NXT Intelligent Brick para programas relativamente sencillos, o con alguno de entre cincuenta lenguajes de programación disponibles.
  6. Hackety Hack
    Código abierto. Inglés.
    Sin experiencia previa en programación, por supuesto, Hackety Hack es un software ya clásico para enseñar a programar con Ruby, una lección a la vez. Creado por el no menos famoso hacker _why, Hackety Hack incluso obedece a un manifesto que en una de sus últimas líneas dice que “es libre y se mantendrá así en adelante”.
  7. Petit Computer
    Comercial. Inglés.
    Si sentarse a programar no es opción, tal vez sí lo sea usar un Nintendo 3DS o DSi con Petit Computer, que permite crear programas en BASIC. No es que BASIC sea la mejor opción, sin embargo puede ser atractivo hacerlo desde la consola portátil.
  8. Raspberry Pi
    Comercial/Código abierto. Inglés.
    Este ha sido uno de los mayores éxitos de la comunidad del software y hardware libres en los últimos años. Se trata de una pequeña placa que puede costar entre 25 y 35 dólares, donde cabe Linux, y está diseñado expresamente para la enseñanza de programación básica. Además de ser un gadget fabuloso para un hacker, su portabilidad y precio permiten montar talleres móviles de programación para niños con poco acceso a la tecnología.
  9. RoboMind
    Gratuito. Inglés.
    Tenemos ante nosotros un proyecto similar a LEGO Mindstorms, pero en software: un ambiente de programación básica aplicada a un robot virtual, con la posibilidad de profundizar en temas de robótica e inteligencia artificial. Utiliza su propio lenguaje, ROBO, diseñado con una sintaxis simple.
  10. Scratch
    Código abierto (salvo algunas partes). Inglés.
    Este proyecto ya es un clásico. Comenzó en el MIT en 2006 y hoy en día tiene una comunidad vibrante de usuarios que comparten proyectos y experiencias. Scratch se conforma de un entorno de programación visual orientada a la creación de juegos y animaciones para iniciar a los niños en los bloques básicos de la programación.

Fuente: alt1040

El 40% de los usuarios no actualiza sus equipos

julio 27, 2012 § Deja un comentario

El 40% de los usuarios adultos no actualiza con regularidad los programas informáticos de sus equipos, ya que la mayoría no están preocupados por la seguridad y el principal handicap es el tiempo que se ‘pierde’ en actualizar el programa en cuestión.

Por otra parte, el estudio elaborado por la compañía Skype en el marco de la Semana Internacional de Modernización Tecnológica, indica que los hombres suelen actualizar sus equipos con más frecuencia que las mujeres, aunque la mayoría de usuarios se quejan de la falta de información durante el proceso.

En concreto, la compañía asegura que el 40% de los usuarios no actualizan su software, principalmente por motivos relacionados con la seguridad, por el tiempo que tardan en instalar las nuevas versiones o porque no ven las ventajas que ofrecen.

Otros motivos señalados por los encuestados para no actualizar los programas es porque no entienden las actualizaciones, por lo que prefieren no aplicarlas, o bien porque en alguna ocasión generan incluso bugs que ponen en peligro el equipo.

Sin embargo, a pesar de las reticencias, Skype destaca la necesidad de instalar las últimas versiones de software para mejorar la experiencia y mantener los ordenadores seguros, por lo que también han analizado los motivos por lo que los usuarios actualizan sus equipos.

Según el informe, la mayoría de los usuarios actualizan el equipo para que su ordenador esté lo más seguro posible y sin fallos, así como disfrutar de las últimas características de software disponibles, aunque un aspecto fundamental -para el 52% de los encuestados- es que la actualización sea gratuita.

Fuente: rtve

Investigadores desarrollan el primer modelo software de un organismo vivo

julio 27, 2012 § Deja un comentario

Hace un año conocíamos que un equipo de la Universidad de Manchester trabajaba en la implementación de un modelo del cerebro humano usando un millón de procesadores ARM para representar el 1% de la capacidad del cerebro; un ejemplo bastante ilustrativo de investigaciones que pretenden modelar mediante software y hardware procesos y sistemas biológicos. Si hasta ahora este tipo de modelos abordaba funciones aisladas o fracciones de sistemas complejos, un equipo de la Universidad de Stanford ha alcanzado un hito bastante significativo: han desarrollado el primer modelo software de un ser vivo.

El resultado que ha alcanzado el equipo de investigación dirigido por el Profesor Markus Covert, del área de bioingeniería, es muy interesante puesto que combinando los datos de unos 900 artículos científicos y 1.900 experimentos de caracterización de los 525 genes de una bacteria en un clúster de 128 computadoras, el equipo fue capaz de obtener un modelo software de la bacteria más pequeña que habita en nuestro planeta, el Mycoplasma genitalium.

El modelo software desarrollado permitió a los investigadores realizar una simulación que requirió unas 10 horas de espera y generó 0,5 GB de información, unos datos que sirvieron para verificar que el modelo generado y la simulación eran correctas:

No puedes entender cómo funciona algo hasta que no eres capaz de reproducirlo tú mismo
El Mycoplasma genitalium es un organismo con 525 genes, una bacteria muy simple si la comparamos con la E. Coli (muy común en los experimentos de laboratorio) que tiene 4.288 genes pero que permitió al equipo trabajar con un modelo simple que pudieron caracterizar mediante múltiples experimentos y pruebas con los que comprobar la veracidad del modelo. Concretamente, el equipo modeló como si fuesen “módulos separados” 28 de los procesos biológicos de esta bacteria, con la idea de describir mediante algoritmos cómo respondían a distintos estímulos.

¿Y para qué puede servir un modelo que permita simular un organismo vivo? Al igual que en otras disciplinas como la ciencia de los materiales o la electrónica, podemos utilizar la simulaciones para verificar diseños o estudiar el comportamiento de un material sin necesidad de someterlo a un test real, en el campo de la biología este tipo de modelos software podría permitir a los investigadores verificar sus teorías o estudiar nuevos tratamientos médicos trabajando delante de un ordenador.

Si usas un modelo como guía de tus experimentos vas a poder descubrir cosas mucho más rápido

Aunque aún estamos lejos de poder modelar mediante un software el funcionamiento completo del cuerpo humano, e incluso de organismos algo más simples, este hito abre la puerta al desarrollo de herramientas CAD aplicadas a la biología, es decir, simuladores que podrían ayudar a los científicos a acelerar sus investigaciones y que, quizás, podrían nutrirse de la gran cantidad de datos generados en otras investigaciones.

Fuente: alt1040

El “segundo bisiesto” del 30 de junio también causó problemas en la red

julio 3, 2012 § Deja un comentario

Un “segundo bisiesto” (Leap Second, o segundo intercalar según la Wikipedia) es un segundo extra que se agrega a los relojes atómicos del mundo en ciertas fechas, de forma de mantenerlos sincronizados y alineados con el movimiento de rotación de la tierra. Se introdujo por primera vez en el año 1972, y hasta la fecha son ya más de 20 los que se han agregado en total, a un ritmo bastante irregular.

Ayer 30 de junio se sumó un nuevo segundo bisiesto a la lista, exactamente a las 23:59:59 según el tiempo de Greenwich, con lo que los relojes marcaron el tiempo que ven en la foto de arriba. Esto generó algunos problemitas en varios servidores repartidos por la red y que vieron como sus servicios asociados estuvieron offline por varias horas, y por supuesto, la causa fue este segundo extra del tiempo. La situación es bastante simple: el Network Time Protocol es el protocolo utilizado para alinear los relojes con los relojes atómicos (se usa en la plataforma de aplicaciones de Java o en el mismo Linux), y cuando se agrega el segundo extra al reloj, el NTP simplemente se pone a correr en círculos y con las manos sobre la cabeza, sin saber que hacer exactamente.


Entre los afectados por el segundo problemático se encontraron Gawker Media, Reddit, StumbleUpon, LinkedIn, FourSquare y hasta Mozilla, todos dependientes de Java, Linux, o algún sistema que utilizara el mencionado protocolo NTP.

En cambio, otros como Google se anticiparon al evento y prepararon su NTP para que fuera agregando milisegundos al reloj de forma gradual y previa a la llegada de este segundo bisiesto. De esta forma, no hay segundos repetidos ni nada por el estilo y el tiempo para los servidores de Google sigue funcionando como si nada hubiera pasado.

La pregunta es inevitable: ¿qué hicieron ayer con su segundo extra? Seguro que muchos querían usarlo darse más tiempo de navegación por el mundo de la internet, pero entre el problema generado por esto y por la caída de la nube Amazon, las fotos del desayuno/almuerzo a través de Instagram o el check-in en algún lugar favorito tuvieron que esperar.

Fuente: Fayer Wayer

¿Dónde estoy?

Actualmente estás explorando la categoría software en Seguridad Informática.