martes, 3 de agosto de 2010

Cómo evaluar/medir las vulnerabilidades y a cuáles debo prestarles atención primero?

Ningún software está libre de fallas o vulnerabilidades de seguridad, es una realidad de la que nadie que administre computadoras se escapa. Recientemente se publicó el documento científico"Beyond Heuristics: Learning to Classify Vulnerabilities and Predict Exploits" en la conferencia KDD 2010 y cuyo autor principal es Mehran Bozorgi. El documento presenta el uso de una técnica de aprendizaje de máquinas llamada Linear SVM para determinar la posibilidad que una vulnerabilidad de seguridad sea implementada (lo que se conoce como crear un exploit). Esta técnica busca ayudar a los administradores de sistemas, quienes tienen que decidir a cuales vulnerabilidades prestarles atención primero debido a la gran cantidad de anuncios que aparecen a diario sobre fallas de seguridad. En los últimos 8 años se han publicado en promedio más de 140 vulnerabilidades por semana. Aun cuando no todas aplican a un sistema informático en particular, el número de publicaciones que debe revisar un administrador de sistema sigue siendo alto debido a la naturaleza heterogénea del sistema (está compuesto de distintos programas, cada uno con sus propias vulnerabilidades).

El documento apunta a una pregunta que ataca a todo profesional de seguridad informática: cuán importante es la experiencia para resolver problemas de seguridad, especialmente en esta área que carece de principios de diseño y modelos matemáticos robustos y que demuestra estar en sus primeras fases de desarrollo? El área de aprendizaje de máquinas por el contrario se basa principalmente en realizar análisis estadístico sobre conjuntos de datos (datasets) que permitan dar respuestas, sin necesidad de depender en la opinión de "expertos" (aunque también existen métodos estadísticos que aprovechan esta información). Los resultados presentados por Bozorgi y sus compañeros son promisorios, comparando su técnica con un método heurístico y popular en la comunidad de seguridad: el métrico CVSS.

En el año 2004, como miembro del equipo de seguridad informática de la Autoridad del Canal de Panama (ACP), nos enfrentamos al tema de como manejar la creciente ola de reportes de vulnerabilidades que recibíamos semanalmente. Nuestra solución fue completamente heurística, basándose en un sistema de puntaje similar al CVSS (antes de que ellos hicieran lo mismo :). Aunque no tan elegante como CVSS, nuestra solución era de fácil implementación y uso.

La parte medular del sistema de ACP era el cuestionario utilizado para evaluar cada nueva vulnerabilidad. Por cada respuesta afirmativa, se asignaba un puntaje a la vulnerabilidad. El puntaje oscilaba entre 0 y 10 puntos y dependiendo del puntaje total se clasificaba la vulnerabilidad como critica (7 a 10 puntos), alta (5 a 6), moderada (3 a 4) y baja (0 a 2). Dependiendo de esta clasificación, se determinaba si debíamos informar a los administradores de sistemas o no. He aquí el cuestionario y puntaje por pregunta afirmativa:
  1. Afecta a recursos de alto valor? 1 punto
  2. Afecta la infraestructura de red (ej. conmutadores, murallas de fuego, DNS)? 1 punto
  3. Afecta a un producto ampliamente usado o instalado en la ACP? 1 punto
  4. Afecta instalaciones por defecto de un producto? 1 punto
  5. Existe código disponible públicamente que aproveche la vulnerabilidad o está siendo ejecutada ampliamente en el Internet? (ej. virus) 1 punto
  6. La vulnerabilidad se puede acceder remotamente? 1 punto
  7. La vulnerabilidad se puede acceder sin credenciales? 1 punto
  8. Se han publicado detalles técnicos de la vulnerabilidad? 0.5 punto
  9. El resultado permite acceso administrativo o con privilegios? 1 punto
  10. Se requiere de ingeniería social (ej. visitar un sitio, hacer clic sobre un enlace web) para aprovechar la vulnerabilidad? 0.5 punto
  11. Existen registros de auditoria en la ACP que demuestran intentos o ataques utilizando la vulnerabilidad? 1 punto
Los resultados fueron alentadores. En el 2004, sólo enviamos 5 alertas de 54 vulnerabilidades reportadas en productos Microsoft y utilizados en la ACP. Sin embargo, los valores seleccionados para cada pregunta carecían de base científica y se basan exclusivamente en la opinión consensuada del grupo que desarrolló el documento. Además, el documento de Bozorgi sugiere que se pueden obtener mejores resultados si se utiliza técnicas de análisis estadístico.

El área de aprendizaje de máquinas sugiere implícitamente que una persona nunca puede vencer al mundo, en términos del conocimiento que cada uno puede aportar. En otras palabras, no importa cuan inteligente sea un ser humano para resolver un problema, el mundo real puede darnos una mejor solución. En el caso de las vulnerabilidades, las soluciones humanas son la de la ACP y CVSS, mientras que la solución basada en Linear SVM es la del mundo real. La razón por la que esta última es la del mundo real es que utiliza el registro de las características de cada vulnerabilidad reportada desde el anyo 2001 (un largo periodo) y realiza un análisis estadístico sobre este registro. O sea, toma una postura imparcial sobre los datos que se le presentan, a diferencia de la tabla de la ACP en donde a priori se le da mayor peso a cierto tipo de información (por ejemplo, la pregunta 1 tiene mayor valor que la pregunta 8).

Abajo aparece una tabla con algunos de los resultados presentados en el documento:

Fuente: Bozorgi, et al.

La primera columna indica el número de días (t) utilizados para determinar la factibilidad de que una vulnerabilidad sea explotada/implementada luego de t días. La segunda y tercera columna indican el número de casos positivos (|P|) y casos negativos (|P|) utilizados para entrenar el modelo. La cuarta y quinta columna indican los resultados de utilizar el método heurístico CVSS y de Linear SVM respectivamente, para determinar la factibilidad de implementación de la vulnerabilidad. Como puede observarse en cada renglón, los valores de la quinta columna son superiores a los de la cuarta.

Les recomiendo leer el documento de Bozorgi ya que es un excelente documento para aprender más de la técnica propuesta y también un buen ejemplo sobre como presentar resultados en una publicación científica. Al leerlo, uno puede determinar que la técnica propuesta posee limitaciones. Para comenzar, la técnica sólo busca determinar cuan rápido será implementada una vulnerabilidad. Mientras tanto, los métodos de ACP y CVSS buscan determinar cuan peligrosa es una vulnerabilidad (lo que no solo depende de si la vulnerabilidad ha sido implementada o no). Adicionalmente, en el sitio web del proyecto no está disponible (al momento de escribir este artículo) el dataset utilizado para calcular los valores presentados en el documento. Esto impide que uno mismo puede validar los resultados. Al final, los autores del documento sugieren que se utilicen técnicas estadísticas como complemento a las técnicas heurísticas. Esto será más viable a medida que continua nuestra uso y dependencia en sistemas informáticos, lo que generará más y mejores grupos de datos para ser analizados con técnicas como Linear SVM.

sábado, 24 de julio de 2010

Qué lenguaje de programación debo aprender? En julio es Java

Toda persona que trabaja y/o estudia en el área de computación ha evaluado aprender algún lenguaje de programación. Aunque para algunos ha sido fácil la decisión (el proyecto o curso en que trabajabas tomó la decisión por tí), para otros se puede convertir en toda una experiencia religiosa. Algo así como si tuvieras que decidir entre ser cristiano o musulmán (nada malo en escoger uno o el otro, simplemente que hay que escoger). Así que la pregunta es, cuál lenguaje debo escoger si quiero aprender a programar?

La respuesta correcta es cualquiera, pero con una observación importante. Puedes escoger cualquier lenguaje pero debes aprenderlo bien. O sea, a profundidad. Este ha sido uno de los mejores consejos de tecnología que me han dado (gracias Rob!) ya que es muy probable que todo lo que uno quiere o necesita hacer, se puede lograr con cualquiera de los lenguajes más populares. El problema es que no siempre uno aprende todo lo necesario para resolver la mayoría de las tareas que uno enfrenta. Por esta razón es que cuando decidas aprender un lenguaje, explora todas las opciones que te ofrece. En ocasiones esto significa aprender más sobre las librerías o paquetes disponibles o las funciones o estructuras de datos que permite utilizar un lenguaje.

Una buena razón de aprender bien un lenguaje de programación es que varios de los conceptos utilizados (propiedades) al desarrollar el lenguaje, son también utilizados en otros lenguajes. Esto facilita que cuando desees aprender otro lenguaje, la transición sea más sencilla que si no supieras ningún lenguaje. Como ejemplo, tienes los lenguajes orientados a objetos como Java, C++ e incluso lenguajes scripting como Python.

Ok, pero que ocurre si alguien quiere una respuesta más sencilla a la presentada arriba? Que tal si la persona que quiere aprender sobre programacion desea que le indiquen un lenguaje y que no tenga que tomar la decisión religiosa por su cuenta? Entonces tengo dos comentarios. Primero, el lenguaje de programación a aprender dependerá del área en donde trabajes o desees trabajar. Por ejemplo, si eres o deseas trabajar en el área de tecnologías Web, entonces te conviene aprender lenguajes como Java, Javascript, C# o PHP. Si eres más un administrador de sistemas, es posible que debas prestarle atención a lenguajes tipo scripting como Perl o Python.

El segundo comentario es que puedes darle una ojeada al índice de programación TIOBE. Este índice está basado en la popularidad de los distintos lenguajes de programación. Para calcularlo, se utiliza los buscadores Web como Google, MSN y Yahoo! y es una manera de medir la popularidad de los lenguajes. Los autores han publicado mensualmente este índice desde el año 2001. Abajo aparece el resultado para este mes, julio 2010.

Fuente: tiobe.com

Aunque los resultados no necesariamente sorprenderán a muchos (Java, C y C++ son los tres más populares), es interesante ver las tendencias y cambios que varios de estos lenguajes reportan en distintos meses. En la tabla de arriba, la columna 5 indica el índice del lenguaje, seguido por el cambio en comparación a un año atrás y la columna 7 indica la categoría del lenguaje. Un lenguaje categoría A es considerado "mainstream" o de uso popular. La definición completa del índice, así como de las categorías, la puedes encontrar aquí.

Al final, el índice TIOBE tampoco responde a la pregunta original sobre el tipo de lenguaje que uno debe aprender. Pero como buenos ingenieros si provee luces sobre cuán populares pueden ser los lenguajes (de acuerdo a lo que indica solamente el Internet, o la parte de él que revisan los buscadores) y nos da números, lo que nos permite pensar y decidir analíticamente. Y eso le puede dar paz a uno... al menos si eres ingeniero. :)

miércoles, 7 de abril de 2010

Qué hace DHS en temas de seguridad informática?

La semana pasada se llevó a cabo el XI Simposio del centro CERIAS de Purdue University. CERIAS son la siglas en inglés de "Center for Education and Research in Information Assurance and Security" y es uno de los principales centros de investigación y educación en seguridad informática, en los EEUU. El evento anual siempre reúne personalidades interesantes e importantes de la seguridad informática en los Estados Unidos. Este año no fue la excepción, ya que contamos con la presencia de:
  • Mike McConnell, ex-Director de NSA (National Security Agency, o como dicen algunos, No Such Agency :)
  • Randy Beers, actual sub-secretario para DHS (Department of Homeland Security) y
  • Dr. David Bell (el mismo del modelo de control de acceso Bell-Lapadula).

Para quienes no pudieron asistir, CERIAS ha publicado las notas del evento en su blog: http://www.cerias.purdue.edu/site/blog/. Además de asistir al evento, participé tomando las notas de la presentación del Sr. Beers, las cuales están disponibles [aquí]. Durante su charla, me pareció interesante escuchar como el gobierno de Estados Unidos, y DHS en particular, está manejando el tema de la seguridad informática para proteger los recursos gubernamentales y los sistemas informáticos relacionados a la infraestructura crítica del país. Fue evidente notar que para EEUU y el éxito futuro de su economía, manejar apropiadamente la seguridad informática es indispensable. El Sr. Beers incluso habló de algunas iniciativas técnicas a nivel nacional como el equipo de respuestas a incidentes US-CERT y el sistema de detección de intrusos (IDS) llamado Einstein.

Para aquellos que nos gusta sumergirnos en temas técnicos, siempre es bueno escuchar el "resto de la historia". Seguridad informática es mucho más que sólo los aspectos de tecnología. El Simposio de CERIAS permitió ver y escuchar sobre aspectos y esfuerzos no-técnicos, que son necesarios para el éxito de cualquier programa de seguridad informática. Especialmente si se trata de proteger los intereses de una nación como los EEUU.

jueves, 25 de marzo de 2010

Se solicita asistente de investigación para estudio del Internet en Panamá

Próximamente estaré participando junto a otros investigadores en el primer estudio (según conocemos) sobre la topología y tráfico del Internet en Panamá. Para ello, estamos buscando un estudiante dinámico e interesado en el área de redes de computadoras para que participe en este emocionante proyecto. Aquellos interesados pueden escribirme (gmhoward@gmail.com) por cualquier pregunta o para enviar su aplicación. Esperamos comenzar en el mes de Julio con el proyecto.

He aquí la información detallada de la posición:

El candidato ideal participará en el desarrollo y administración de la plataforma informática para culminar exitosamente el proyecto. Se espera que el candidato posea conocimientos comprobados (por medio de cursos o trabajos realizados) en instalación de sistema operativo Linux/Unix y lenguajes de programación tipo “scripting”.

Esta pasantía le ofrecerá al candidato la oportunidad de adquirir habilidades técnicas y experiencia de investigación, durante los ocho (8) meses que dura el proyecto. Participará con el resto de los investigadores en producir los entregables del proyecto.

RESPONSABILIDADES

  • Apoyar en la implementación de la plataforma informática del proyecto
  • Apoyar en la recolección de los datos para estudio de topología y tráfico
  • Apoyar en el análisis de los datos recolectados
  • Administrar y mantener la plataforma informática, basada en sistema operativo Linux
  • Desarrollar programas de automatización (scripts) de tareas periódicas
  • Diseñar, administrar y mantener la seguridad del sitio web del proyecto, el cual estará basado en HTML y JavaScript (o un manejador de contenido)
  • Comunicar estado de tareas (por medio de reportes de avance y notificación oportuna a superiores de problemas y riesgos)
  • Realizar respaldos periódicos (diarios y semanales) a plataforma informática y datos del proyecto (relacionados con topología y trafico)
  • Tener disponibilidad para desplazarse a distintos puntos de la ciudad de Panamá para realizar revisiones del equipo utilizado
  • Participar en las reuniones semanales con resto del equipo
Esta posición reportará típicamente al gerente del proyecto y junto a este se definirán las metas (diarias y semanales) y se brindará guía en el trabajo. Se estima que la posición requiere 20 horas de trabajo a la semana

REQUISITOS
  • Ser ciudadano panameño
  • Estar cursando actualmente carreras de licenciatura o maestría en áreas de tecnologías de información y comunicaciones (TIC). Por ejemplo: ingeniería electrónica, sistemas computacionales, ingeniería de software
  • Mantener un índice académico acumulativo de 2.0 o superior (sobre escala de 3.0)
  • Tener experiencia (curso o trabajo realizado) en redes de computadoras basadas en protocolos TCP/IP
  • Tener experiencia (curso o trabajo realizado) en al menos un lenguaje de programación tipo “scripting” (Perl, Python, Shell Scripting)
  • Tener experiencia (curso o trabajo realizado) instalando, configurando y administrando sistemas con sistema operativo Linux
  • Poseer habilidad para cumplir metas en plazos establecidos
  • Poseer habilidad para trabajar independientemente y como parte de un equipo
PREFERIBLE
  • Experiencia en desarrollo de aplicaciones basada en tecnologías Web, basados en HTML y JavaScript
  • Experiencia en al menos un lenguaje de programación de alto nivel (C, C++ o Java)
  • Experiencia en administración de sistemas de respaldo, basados en tecnología RAID
  • Experiencia en administración de dispositivos de red (router) con sistema operativo Cisco-IOS
  • Fuerte habilidad para comunicarse oralmente y por escrito
Aquellos interesados en aplicar, favor enviar: (1) copia de cédula, (2) copia de créditos universitarios y (3) hoja de vida (incluir tres referencias con dirección electrónica y número de teléfono) a las direcciones electrónicas: gmhoward@gmail.com y roberto.barnes@gmail.com. En caso de preguntas, favor escribir a estas direcciones electrónicas.

viernes, 19 de marzo de 2010

XIII Congreso Nacional de Ciencia y Tecnología, 6 al 9 de Octubre 2010

El próximo Congreso Nacional de Ciencia y Tecnología se realizará del 6 al 9 de octubre de 2010 en el Centro de Convenciones de la Ciudad del Saber, en Ciudad de Panamá, Panamá. El congreso es realizado por la Asociacion Panameña para el Avance de la Ciencia, APANAC. El evento representa una excelente oportunidad de participar junto a la comunidad científica panameña en la presentación de trabajos de investigación relacionados a nuestro país. Además, es uno de los eventos anuales que reúne a la comunidad panameña para tratar temas y problemas que afectan nuestra sociedad, desde una perspectiva científica y en busca de soluciones.

El Comité Organizador del congreso invita a participar en las distintas modalidades de publicación (conferencias por Invitación, simposios, comunicaciones libres orales, afiches y mesas redondas) y recibirá los resúmenes de trabajos de investigación hasta el próximo 31 de agosto de 2010. Las áreas temáticas incluyen las distintas ramas de la ciencia y tecnologia, incluyendo: ingenierías y Ciencias Computacionales, tecnología de la información y la comunicación, aspectos éticos y legales de la actividad científica y tecnológica, biotecnología, educación y energía.

El costo por participante (profesional, no miembro de APANAC) es de $60, hasta el 31 de agosto de 2010 y $70 después. Para profesionales miembros hay un descuento de $10 (también aplica el descuento por pagos hechos antes del 1 de septiembre) y estudiantes pagan $30.

Fechas importantes
1 de febrero de 2010: Inicio de recepción de resúmenes
31 de agosto de 2010: Límite para pago anticipado
31 de agosto de 2010: Límite para la entrega de resúmenes
11 de septiembre de 2010: Entrega de evaluaciones de los resúmenes
6-9 de octubre de 2010: XIII Congreso Nacional de Ciencia y Tecnología

Para mayor información, visita la pagina web de APANAC (www.apanac.org.pa) o escribe a la dirección electrónica congreso@apanac.org.pa. No te lo pierdas!

martes, 26 de enero de 2010

Exitosa celebración del evento "ESTUDIANDO COMPUTACIÓN Y TELECOMUNICACIONES EN PAÍSES INDUSTRIALIZADOS"

El pasado 19 de enero realizamos el evento "ESTUDIANDO COMPUTACIÓN Y TELECOMUNICACIONES EN PAÍSES INDUSTRIALIZADOS". Al mismo asistieron 35 personas, entre profesionales y estudiantes interesados en oportunidades de estudio en Europa y EEUU. Debo decir que el evento fue un exito gracias al apoyo por segundo año consecutivo de IEEE Panamá (Muchas gracias a Haydi Gálvez y todo el equipo!) y de todos los expositores, quienes compartieron sus experiencias y reflexiones de la forma mas sincera y clara, para beneficio de quienes asistimos al evento. Adicionalmente, la audiencia mantuvo la discusión interesante gracias a la buena asistencia y preguntas que hicieron a lo largo de la charla.

Compartimos con ustedes las presentaciones que utilizaron los expositores el día del evento:
  • Jesús Alvarado / Beneficios de Pertenecer a IEEE Panamá [presentación]
  • Gaspar Modelo Howard / Como Aplicar y Oportunidades de Financiamiento para Panameños [presentación]
  • Juan Pablo Espino / Experiencia de estudios en el Royal Institute of Technology, Suecia [presentación]
  • Ramsés Morales / Aprovechando el Primer Semestre [presentación]

Adicionalmente participe como moderador de la mesa redonda Oportunidades y retos para quien estudia computación o telecomunicaciones en un país industrializado. En la misma participaron Min Chen, Karla Arosemana, Rolando Armuelles, Roberto Barnes e Iván Armuelles. Aquí encontrarán las conclusiones de la mesa y que compartimos ese día: [presentación]

En conclusión fue un evento en donde múltiples profesionales compartieron sus experiencias y recomendaciones para cursar estudios en el extranjero y los asistentes tuvieron la oportunidad de conocer distintas opciones de estudio, compartir sus inquietudes y aclarar dudas sobre los aspectos que involucra estudiar en EEUU y Europa. Agradecemos nuevamente a todos los que hicieron de este evento una realidad. Esperamos que sea de provecho (incluso para quienes no pudieron asistir pero nos visitan en esta página) y tengamos la oportunidad de repetir el evento en un futuro. Saludos!

lunes, 11 de enero de 2010

Seminario de IEEE Panama: Estudiando Computación y Telecomunicaciones en Países Industrializados

Por segundo año consecutivo, estaremos realizando el seminario "ESTUDIANDO COMPUTACIÓN Y TELECOMUNICACIONES EN PAÍSES INDUSTRIALIZADOS". El evento se realiza gracias al esfuerzo y decidido apoyo de la IEEE Sección Panamá. Para este año contaremos con la participación de varios expositores, quienes compartirán sus experiencias de estudio en Estados Unidos y Europa. Si estás considerando o planificando realizar estudios avanzados (maestría y/o doctorado) en estas áreas, este evento es para tí!

FECHA: Martes 19 de enero de 2010
HORA: 6:30PM - 9:00PM

LUGAR: Hotel Crown Plaza

COSTO: Miembros IEEE: gratis / No miembros (estudiantes): $5


He aquí la agenda del evento:
  • Como aplicar y oportunidades de financiamiento para panameños
    Gaspar Modelo Howard


    Abstracto: Ofreceremos una descripción del proceso para aplicar desde Panamá a universidades en países industrializados (EEUU y Europa), para estudiantes interesados en carreras relacionadas con computación (maestrías y doctorados). Adicionalmente se presentarán algunas opciones de ayuda financiera disponibles a estudiantes panameños.

  • De Panamá a Suecia, Experiencia de Estudios en el Royal Institute of Technology
    Juan Pablo Espino

    Abstracto: La presentación abordará las experiencias como estudiante de maestría (Ing. Eléctrica) en Suecia. Se expondrá la estructura del sistema de educación superior sueco, información real sobre costo de vida, opciones de becas en Suecia y compañías líderes en tecnología, particularmente en ingeniería eléctrica y computación. Finalizaré con comentarios sobre las ventajas y desventajas de estudiar en Suecia de acuerdo a nuestra experiencia.

  • Aprovechando el Primer Semestre
    Ramsés Morales


    Abstracto: El
 primer
 semestre
 es
 de
 gran
 importancia:
 las
 decisiones
 que
 tomes
 pueden 
acelerar
 o
 retrasar
 tu
 programa,
 pueden
 aumentar
 o
 disminuir
 cuanto vas 
a 
disfrutar 
tus 
estudios 
y 
definitivamente
 influenciarán
 el 
área 
de 
investigación
 que
 elijas.
 En
 esta
 charla
 presentaré
 ideas
 que
 me
 habría
 gustado
 conocer
 antes de 
iniciar 
mi 
primer 
semestre. 
Considero 
la 
situación 
actual 
de 
estudiantes
 Panameños en
 áreas
 afines
 a
 computación—por
 ejemplo,
 investigación
 naciente
 en 
universidades
 Panameñas—y
 presento
 un
 mini‐manual
 que
 espero
 les
 sirva
 para
 referencia 
futura.

  • Mesa Redonda: Oportunidades y retos para quien estudia computación o telecomunicaciones en un país industrializado
    Iván Armuelles, Rolando Armuelles, Roberto Barnes, Min Chen

    Abstracto: Los panelistas discutirán las ventajas y desventajas de realizar estudios tecnológicos en un país industrializado, ¿Es una buena inversión de tiempo y dinero? ¿Existe mercado en Panamá para personas con estudios avanzados en tecnología? ¿Qué preguntas claves debe responder un individuo antes de tomar la decisión de irse a estudiar?
Al final del evento, tendremos un refrigerio para que los asistentes puedan compartir sus inquietudes y comentarios con los expositores. Ademas contaremos con la presencia de varios profesionales que también han realizado estudios en países industrializados y quienes gentilmente compartirán sus experiencias.

Por favor comparte esta información con personas interesadas. Te esperamos!