domingo, 26 de septiembre de 2010

Cómo ser un científico de datos (en seguridad informática)?

Si usted ha vivido lo suficiente en este planeta, difícilmente no se ha enfrentado a la siguiente pregunta: qué quieres ser cuando seas grande? Esta pregunta siempre abre una caja de Pandora que en muchos casos nunca se cierra. Yo soy un ejemplo. Aunque hace varios años tome la decisión de ser un profesional en seguridad informática, sigo definiendo que significa esto ya que al menos para mí, es una tarea continua (como el cliché que muchos pregonan en seguridad: "seguridad no es una meta, es un proceso"). Así que he decidido hablar sobre un tema que impacta en gran forma la respuesta a la definición del profesional en seguridad informática, de cara al crecimiento exponencial de los datos a los que tenemos acceso hoy en día y por los próximos años.

La propuesta es sencilla: si usted trabaja en seguridad informática, usted debe ser capaz de manejar/analizar grandes cantidades de datos para hacer apropiadamente su trabajo. Esto significa que debe contar con las herramientas (conocimientos, habilidades) necesarias para lograrlo; de eso se trata este artículo. Cuales son esas herramientas? O usando un término más elegante: cómo me convierto en un científico de datos (en seguridad informática)? Pude haber utilizado el término analista pero científico suena más importante. :)

Científico de datos es un título que he encontrado insistentemente y cada vez con mayor frecuencia. Este profesional utiliza principalmente métodos estadísticos para analizar grandes cantidades de datos y así encontrar patrones de comportamiento, tendencias y/o respuestas, incluso en tiempo real en algunos casos. No es sorpresa entonces que los estadísticos protesten que el término científico de datos está de más, ya que ellos han estado haciendo ese mismo trabajo por siglos. Y aunque tienen razón en gran parte y el término puede ser considerado un oxímoron, es válido en el mundo actual.

En los últimos años, el análisis de datos se ha vuelto mucho más relevante debido a la revolución computacional (poder computacional disponible en cualquier lugar, cantidad de datos recolectados y ancho de banda para transmitirlos) que hemos vivido en las últimas décadas y lo impactante que está ha sido en todas las facetas de nuestras vidas. Ya nadie se sorprende de ver televisión o hacer pagos usando el Internet, encontrar un resumen de nuestra vida en un sitio web o de enterarse que hizo el hijo de mis amigos por medio de mi teléfono celular y Facebook. Realizar muchas de nuestras actividades diarias en el ciberespacio, por medio de computadoras, también ha tenido el impacto directo e indirecto de crear grandes cantidades de metadatos, que ahora necesitan ser estudiados.

Las empresas se han dado cuenta de la posibilidad de trabajar con grandes cantidades de datos y algunas incluso tienen años hablando del tema. IBM es un buen ejemplo de esto, observen el siguiente video:



Microsoft Research publicó en octubre pasado el libro titulado "The Fourth Paradigm: Data-Intensive Scientific Discovery". El libro es un tributo al científico Jim Gray, quien en 2007 compartió su visión del cuarto paradigma en investigación científica, en referencia al mundo descrito arriba. El libro está disponible de forma gratuita por lo que es una excelente oportunidad para conocer las distintas oportunidades que actualmente aparecen en las áreas de ciencias naturales, medicina, infraestructura científica y comunicaciones.

Regresando a la seguridad informática, tampoco escapamos de la necesidad de analizar grandes cantidades de datos. Solamente ver el aumento de velocidad en el enlace de conexión al Internet que poseen nuestras organizaciones para estar de acuerdo. Hace 10 años atrás nadie hablaba de conexiones de 10Mbps, algo mucho más común hoy en día. Cómo se adaptan, por ejemplo, los sistemas de detección de intrusos para analizar el tráfico a esa velocidad? En el área de investigación en seguridad informática también puedo mencionar dos proyectos que me parecen muy apropiados, ambos provenientes del Grupo de Investigaciones en Seguridad Informática de la Universidad de California, San Diego. El primero, Como Detectar URLs Maliciosos, muestra como utilizar algoritmos de lenguaje de máquinas y millones de datos analizados en tiempo real, para determinar si un enlace web (como los que encontramos en las páginas web o en los mensajes de correo electrónico) es malicioso y antes que el usuario haga utilice el enlace. El segundo proyecto lo cubrimos brevemente en otra entrada de este blog, por lo que recomendamos su lectura.

Entonces, cuáles son las áreas que debe conocer un científico de datos, incluyendo para seguridad informática? Sin incluir las obvias (redes, sistemas distribuidos y seguridad) que dan experticia sobre las peculiaridades del problema, hay tres temas importantes:
  1. Estadística: es la base, definiendo la recolección, organización e interpretación de los datos. En otras palabras, es el oxígeno. Sin esta ciencia, no hay vida (para analizar datos).
  2. Lenguaje de Máquinas: diseño y desarrollo de algoritmos para modificar el comportamiento de las computadoras, en base al análisis de datos. Por esta última parte de la definición es que un gran número de algoritmos de este campo utilizan técnicas estadísticas. Lenguaje de máquinas es un área muy interesante y con mucho futuro.
  3. Álgebra Lineal: Trata sobre el estudio de vectores, matrices y campos vectoriales. Uno de sus beneficios es que permite el analisis en paralelo de los datos, lo que ayuda al manejar grandes cantidades de datos. Ademas la arquitectura de computadoras también ya permite este tipo de análisis/cálculos.
Esta lista proviene de la perspectiva de un ingeniero en computación (o ciencias computacionales), aplica a cualquier tema de estudio (no sólo seguridad) y no significa que corresponde directamente a los cursos que hay que tomar. La respuesta podría ser distinta si se le pregunta a un matemático o estadístico. Además, es importante no confundir los requisitos de un analista de datos con los de un administrador de base de datos. Aunque ambas áreas tienen tareas o temas en común, la administración de base de datos posee una definición mucho más limitada y puede ser considerado como un requisito (no indispensable) del analista de datos.

Hace unos años atrás presenté un póster sobre mi tema de investigación, en una conferencia de seguridad informática y como estudiante de ingeniería en computación. A lado mío había un estudiante del departamento de estadística, también presentando un póster. Luego de conversar, concluí que su tema tenía un matiz demasiado teórico y un poco lejos de la realidad vivida en seguridad informática. Pero su propuesta también permitía analizar más datos y más rápido. Y desde entonces me he preguntado (nuevamente) que tengo que hacer para mejorar como profesional en seguridad informática.

domingo, 5 de septiembre de 2010

Implementación del DNSSEC y algunas expectativas falsas sobre el PKI

El 15 de julio pasado se llevó a cabo la ceremonia para implementar las extensiones de seguridad al protocolo DNS, conocidas como DNSSEC, en los servidores . (punto) del Internet. DNSSEC utiliza una infraestructura de llave pública (PKI) para su implementación y operación. El impacto y beneficio de DNSSEC es mundial, lo que también demuestra el valor que posee la tecnología PKI. La razón por la que menciono el rol de esta tecnología es que como profesional de la seguridad informática he participado en proyectos que han utilizado PKIs y observado al mismo tiempo como se ha mal ganado una reputación negativa en el camino. La implementación de DNSSEC es evidencia de como PKI puede ser una excelente solución, siempre que se haya identificado apropiadamente el problema para el cual funcionará.

DNSSEC es un conjunto de especificaciones que ayudan a mejorar la seguridad del protocolo DNS, utilizado para traducir los nombres que escribimos en nuestros navegadores web a las direcciones utilizadas por las computadoras (por ejemplo, www.utp.ac.pa debe ser traducido a 168.77.99.19 para que un navegador web visite el sitio de la Universidad Tecnológica de Panamá o UTP). Esta traducción ocurre luego que el navegador hace la consulta a otros servidores de DNS. El problema es que esta consulta se hace sin ser autenticada, lo que podría resultar en la falsificación de resultados y la eventual visita del navegador a un sitio equivocado (siguiendo el mismo ejemplo, visitar un sitio falso en lugar de la UTP. Imagínese lo que esto significaría para los estudiantes que van a pagar su matrícula en la UTP y terminan enviando el dinero a un sitio falso). Aquí es donde DNSSEC viene al rescate. DNSSEC permite autenticar la fuente de las traducciones de nombres a direcciones (y viceversa) antes de visitar cualquier sitio. Si una fuente no es legítima, de acuerdo al PKI utilizado por DNSSEC, se previene que el navegador visite el sitio malicioso (o no autenticado).

La tecnología PKI ha sufrido de una mal ganada fama durante más de una década, al punto que varias personas cuestionan su utilidad. En lo personal creo que la implementación de DNSSEC es un excelente ejemplo de porque el PKI es un valioso recurso para mejorar la seguridad de los sistemas informáticos, cuando es bien implementado y se tiene una clara imagen del problema a resolver (y por ende del rol del PKI).

La mala fama de la tecnología PKI proviene principalmente de la época de la revolución del .COM. En aquellos tiempos se pensaba que el PKI (o los certificados digitales generados por estos) era todo lo que se necesitaba para garantizar la seguridad de los sitios web. Otra razón de la mala fama es que se pensó que los PKI podían resolver todos los problemas (algo parecido al concepto de "un sólo tamaño para todos" o "one size fits all").

Al reventar la burbuja del .COM también reventó la confianza que se tenía en la tecnología PKI. Realmente no había mucho que se pudiera hacer, excepto darle tiempo al tiempo, ante las altísimas expectativas que habían por la revolución del .COM y consecuentemente por la tecnología PKI. Por otro lado, la idea de utilizar el PKI como una solución"one size fits all" todavía persiste, aunque no tan insistente como hace algunos años. Hace casi una década atrás, existieron leyes sobre el tema en países como Panama y Colombia, que decretaban instituciones a nivel nacional para manejar de forma exclusiva el tema de los certificados digitales (y por ende, de los PKIs). Hoy en ambos países ya se han derogado estas leyes, pero en algunos casos todavía persiste la idea de implementar PKIs nacionales utilizando mecanismos legales inferiores.

Entre 2003 y 2004, tuve la oportunidad de participar en la implementación del primer PKI en la Autoridad del Canal de Panamá (ACP), en el proyecto de recolección de datos para tránsito de naves. El PKI implementado fue diseñado para suplir necesidades específicas de este proyecto, firmar documentos electrónicos y establecer una red de confianza entre todos los participantes del sistema de recolección de datos. Aunque su diseño también incluyó su posible rol como autoridad certificadora raíz para otros proyectos, se mantuvo el diseño e implementación original. Luego de más de seis años, el PKI ha cumplido con su rol inicial y es para mi una muestra del uso de la tecnología para resolver apropiadamente un problema para el cual estaba diseñado y respondiendo a una institución (bajo la misma administración, facilitando su implementación).

Aunque en una ceremonia mucho más modesta que la realizada para la implementación de DNSSEC, la generación de la llave para proteger el servidor raíz fue realizada por el personal de Seguridad Informática de la ACP (Juan Chong, Eduardo Thomas y yo), el consultor del proyecto Tan Chee Young, y los ingenieros Francisco Loaiza y Edwin Reina (director y sub-director del Departamento de Informatica en aquel momento). Abajos unas fotos del momento (histórico?):

Figura 1. Generación de la llave privada para el servidor raíz del PKI utilizado en ACP, el 15 de enero de 2004. De izquierda a derecha: el autor, Francisco Loaiza, Edwin Reina, Juan Chong, Tan Chee Young y Eduardo Thomas.

Figura 2. Entrega de los "tokens" con parte de la llave privada del servidor raíz, entregadas al director
y sub-director de informática (pero almacenadas en un lugar seguro y secreto :)

El proyecto DNSSEC apenas ha comenzado y junto al PKI utilizado no están libre de dificultades, al igual que el PKI de la ACP. Pero ambos casos (cada uno en su justa dimensión) permiten demostrar claramente los beneficios que ofrece la tecnología PKI.

Hay mucha más información sobre el tema de seguridad en DNS y DNSSEC. Si deseas conocer sobre ataques de seguridad a los protocolos DNS, estos son conocidos como "DNS cache poisoning". Detalles sobre la implementación de DNSSEC y el PKI correspondiente están disponibles en: (1) registro completo (con videos) del proceso de firma de los servidores raiz, (2) arquitectura utilizada en DNSSEC para la generación y protección de llaves criptográficas, (3) compendio de documentos sobre el tema, (4) como participar en el proyecto y (5) el rol en el proyecto DNSSEC del Registro de Direcciones de Internet para América Latina y el Caribe, LACNIC. La antigua y actual leyes sobre PKIs de la República de Panamá están disponibles aquí: Ley 43 de 31 de julio de 2001 y Ley 51 del 22 de julio de 2008. Más información sobre el esfuerzo del Gobierno de Panamá de promover el uso de PKIs y certificados digitales está disponible en el sitio de la Dirección de Comercio Electrónico del Ministerio de Comercio e Industrias.