Plantilla de RCG para la tesis - Universidad
Transcripción
Plantilla de RCG para la tesis - Universidad
PROYECTO FIN DE CARRERA Resumen La profesionalización del malware es un hecho consumado. El desarrollo de aplicaciones que comprometen la seguridad de los equipos particulares y de las grandes redes corporativas, será sin duda una de las principales áreas de investigación de la informática dada la gran cantidad de datos, de metodologías, de conocimiento y de información privada que hay que proteger. Sin embargo, no existe una concienciación global del alcance de los peligros que conlleva descuidar la seguridad. A nivel personal, la pérdida de la privacidad de un único individuo, como derecho inalienable, es ya suficientemente importante como para ser tenida en cuenta. A nivel empresarial, una fuga de información por culpa de vulnerabilidades encontradas en un equipo mal protegido o una infección masiva de redes o equipos críticos, además de los elevados costes imputados a un paro de máquinas, puede ser un tema de supervivencia que suponga la diferencia entre el fracaso o el éxito. Por todo ello, en el presente Proyecto Fin de Carrera se pone de manifiesto una realidad: la de proteger los equipos industriales de las cada vez más comunes amenazas informáticas. Se analizarán la implantación de nuevos procesos de detección de variantes de malware conocido que aún no han causado daño y se introducirá el tema de detección de malware desconocido, especialmente del escrito específicamente con el objetivo de atacar instalaciones concretas. Descriptores malware, seguridad empresarial, investigación, instalaciones, protección iii PROYECTO FIN DE CARRERA Abstract The professionalization of malware is a fait accompli. The development of applications that compromise the security of home computers and large corporate networks, is, without any doubt, one of the main research areas of Computer Science given the large amount of data, methodologies, knowledge and private information that is to be protected. However, there is no global awareness of the extent of the dangers of neglecting safety. On a personal level, loss of privacy of an individual, as an inalienable right, is already important enough to be taken into account. At company level, an information leak because of vulnerabilities found in a poorly protected computer or network resulting in a massive infection on critical equipment, can be a matter of survival which involves the difference between failure and success, in addition to the high costs attributed to a breakdown of machinery. Therefore, this Project Thesis highlights what is a reality: to protect industrial equipment of the increasingly common threats. In the following pages, we will examine the implementation of new processes for detecting known malware variants that have not caused injury yet and we will place the issue of detection of unknown malware, specifically written for the purpose of attacking a concrete facility. Keywords malware, company’s security, research, facilities, protection v PROYECTO FIN DE CARRERA Laburpena Malware-aren profesionalizazioa iada gertaera ukaezina da. Bai korporazio handien sareen, baita ordenagailu pertsonalen kasuan ere, seguritatea koskan jartzen duten aplikazioen garapena hurrengo urteetan investagaziorako oso eremu interesgarria izango da, batez ere babestu behar den informazio, metodologia, ezagupen, eta informazio pribatu kopuruari esker. Hala ere, gaur egun, seguritatea kontuan ez edukitzeak sortu ditzakeen arazoei buruz ez da generalean kontzientziazio bat existitzen. Maila pertsonal batean, gizaki bakar batek bere pribatutasuna galtzea kontuan edukitzeko moduko arazoa da iada. Empresa mailan, ordenagailu sistema bat txarto zaindua egoteak, edota sare edo ordenagailu kritikoak infektatzeak sortu dezakeen informazio isurketak, makinak gelditzeak dakarren kostuaren gain, arrakasta eta hutsegitearen arteko aldea izan daiteke. Arrazoi hauengatik, Unibertsitateko Ikasketen Amaierako Proiektu honetan gaur egungo errealitate bat nabarian usten da: Industrietako makinak gero eta arruntagoak diren mehatxu informatikoengandik babestearen beharra. Oraindik kalterik sortu ez duen malware ezaguna detektatzeko prozesuen ezarpena ikertuko da, eta malware ezezaguna detektatzeari buruzko gaia aurkeztuko da, bereziki instalazio zehatz bat erasotzeko helburuarekin sortu den malware-arena. Deskriptoreak malware, empresaren segurtasuna, ikerketa, instalazioak, protekzioa vii PROYECTO FIN DE CARRERA Agradecimientos El documento que aquí empieza es fruto de muchas horas de trabajo y el resultado de 6 años de formación en los que son un sinfín de situaciones las que me gustaría compartir contigo. Pero me gustaría empezar por el principio. Allá por la primavera de 2005, cuando decidí a última hora matricularme en Deusto dejando de lado mi vocación frustrada de periodista. Es entonces, cuando me prometí a mí mismo que el camino que tomaba era una vía sin retorno para poder un día hacer de la seguridad informática mi trabajo, y poder por ella viajar, enseñar, y, sobre todo, improvisar imaginando. A fecha de publicación de este trabajo, aún no habré cumplido 24 años, pero puedo decir que he conseguido muchas de estas cosas mucho antes de lo que hubiera imaginado entonces. Me gustaría empezar estas líneas de agradecimientos recordando la acogida que tuve en el S3lab de DeustoTech cuando, ya hace más de dos años, entré por aquella puerta para hablar con Pablo. Al de una semana ya estaba trabajando con un portátil como herramienta en un escritorio que no era mío, pero me parece que por aquel entonces aún no sabía lo bien que me había tocado rodearme. Lo cierto es que debería bendecir el momento en que Igor se acercó buscando alguien que le echara un cable con una idea extraña que tenía en la cabeza sobre una serie de experimentos que le gustaría realizar. Ya me avisó Borja: “cuidado con ese, que vaya ideas que tiene”. Y, en efecto, vaya ideas. Terminamos publicando un kilométrico experimento sobre detección de malware con opcodes, trabajo que me permitieron presentar personalmente en una ponencia en un congreso de Pisa, Italia. Fue un bautismo de fuego con 22 años para un estudiante que, por aquel entonces, ni tan siquiera había cogido un avión (quién lo diría ahora), pero un bautismo que se me quedará grabado por siempre. Y eso que ha habido tiempo para todo: tiempo para quedarnos hasta tarde para revisar papers con Javi, tiempo libre para compartir vídeos que nunca sabré de dónde salieron, tiempo para agobiarse más de la cuenta con deadlines que se echan encima y tiempo para escribir, aprender, escribir, publicar, experimentar y volver a escribir. ¡Ah! Y también para aprender a presentar, a preparar transparencias, clases, charlas y a coger otros muchos hábitos que no deberíamos perder nunca si pretendemos conseguir que la gente nos entienda. Y es que puedo decir sin miedo a equivocarme, que mi paso por este laboratorio ha marcado lo que será de mí más adelante. Por ello, aún reconociendo que ha habido ratos más complicados que otros, quiero agradecer a todos los que han sido mis compañeros estos años lo fácil que han hecho mi trabajo durante este tiempo. Gracias Mikel, Juan, Carlos, Asier, Borja, Javi, Jaime, Jorge, Xabi y Xabi, Igor Ruiz, Iraide, Sendoa, Patxi, Agus, Pablo, y muy especialmente, a uno de los tipos más exigentes consigo mismos que conozco: Igor Santos. Sin vosotros, este documento tendría mucho menos peso del que ahora tiene. ix AGRADECIMIENTOS Pero en estos 6 años de carrera, hay también muchas otras cosas que agradecer. Me quiero acordar muy especialmente de Bores e Iker López, que me hicieron las cosas más fáciles cuando de verdad necesité que me echaran un cable en primero. No sé si os imagináis lo en deuda que estoy con vosotros. Por suerte o por desgracia, las personas somos lo que somos por lo que fuimos y por dónde nos colocaron nuestras circunstancias, y, como bien dice el refrán, no hay mal que por bien no venga. Así es como terminé por conocer en una serie de rebotes afortunados, a un tío que ha sido compañero de lamentos, de tertulias, de esperas interminables, de cagómetros y de rimas, de gritos silenciosos, de autobuses nocturnos y también de grandes celebraciones (algunas de ellas deportivas por cierto). ¿Qué habría sido de nosotros Tomás? No sé muy bien dónde estaríamos, pero sí que tengo la certeza de que ese lugar sería más aburrido, más descafeinado y menos desafiante de lo que ha sido el nuestro. ¿Y qué habría sido de nosotros sin Pinto? Pues que nos habría faltado un delegado por mucho tiempo que si algo me ha dejado claro es que es importante no tener pelos en la lengua para hacerte valer cuando toca y para expresarte con rotundidad si es necesario. Siempre con educación pero siempre con firmeza. Vaya 3 patas para un banco, y vaya montón de anécdotas Pero tampoco me quiero olvidar de otros compañeros de los que siempre terminas por encontrar en las primeras filas. Me refiero a Íñigo, que cogió la sana costumbre de hacerse con un par de periódicos gratuitos de los que algunos dábamos buena cuenta en los descansos, y a Unai, cuyo número de teléfono quedó almacenado en mi agenda con otro nombre en la que pudo haber sido (y afortunadamente para mí no fue) broma más graciosa de la carrera, y a las eternas discusiones con Beñat sobre fútbol, árbitros y cabezonería (nos costará ponernos un día de acuerdo sobre quién es más del Athletic), y a un Aritz en un siempre envidiable estado de forma en el que me alegro de haber encontrado un compañero de juego, y a Garci, ese individuo deportivista por accidente que algún día me tendrá que explicar cómo hacía para aguantarse los bostezos en primera fila cuando empezaban las clases a las 8 de la mañana y en vez de personas aún éramos zombies. Y no quiero cerrar este apartado sin acordarme también de otras personas muy especiales. Por un lado, quiero mencionar a un vecino mío que lleva teniendo un peso importante en todo lo que hago desde que coincidimos en clase desde 5º de primaria. Sólo quiero que quede constancia Nacho de que tenías razón en aquello que dijiste una vez en Salou: que no nos decimos lo suficiente lo a gusto que nos sentimos. Por otro lado, quiero mencionar a otro gran amigo de esos que encuentras no sabes muy bien cómo pero que tienes la certeza que durarán por mucho tiempo. Hablo de una de las personas más educadas y respetuosas que conozco, que es santanderino como yo y con el que comparto mi afición por comentarlo absolutamente todo. Dani, gracias por esas horas interminables de charla al teléfono que tanto ayudan cuando toca. x PROYECTO FIN DE CARRERA Tampoco quiero que quede en el tintero una de las mejores experiencias de mi vida. Me dejé llevar en su día con las primeras reuniones para los Erasmus y finalmente me apunté al programa eligiendo como destino principal Dinamarca. Terminé 4 meses en Copenhague, viviendo solo en una pequeña habitación con baño y cocina de no más de 30 m2, en un país en el que tuve que hacer la guerra por mi cuenta. Pero, nuevamente, volví a tener la suerte de rodearme estupendamente con gente como Álex, Silvia, Nerea, Javi o Pedro. Allí conocí también a Marta y a Ana, con las que sólo puedo decir que tuve menos fortuna porque es una auténtica pena que para conocerlas haya tenido que coincidir en Copenhague y no antes. Gracias por los ratos, por los viajes, por los sustos en el extranjero y por vuestra confianza, pero sobre todo gracias por un cuatrimestre sensacional. Y no me puedo ir sin acordarme de otros dos fueras de serie con los que he compartido muchas horas de radio. El primero de ellos, Jon, es un modelo a seguir cuya experiencia me vuelve a demostrar que si peleas por lo que de verdad quieres, tarde o temprano terminarás por alcanzar tus objetivos. Él quería hacer radio, y ahora la está haciendo con los mejores. Enhorabuena por lo que te toca y gracias por ese plus de motivación que nos das a los demás. El segundo, es otro compañero de ondas. Con Diego, he compartido micrófono durante muchas horas de radio, esa otra afición que nos pierde a ambos. Con un equipo como el nuestro, ha sido un auténtico placer aprender a salir de entuertos en antena como hemos hecho durante todos estos años. Y es que 6 años son muchos años, y en este tiempo hay lugar para casi todo. Da tiempo a enamorarse, a desenamorarse y a volverse a enamorar con más fuerza. En 6 años da tiempo a viajar a Copenhague, a visitar mundo, a aprender un nuevo idioma, a ir a una final, a llorar, a enfadarse, a reírse a carcajadas, a ver como dejan de funcionar un par de móviles que acaban por los suelos y a volverse a reír a carcajadas… Pero mientras ellas vienen y se van, mientras tus amigos cambian de clase y de objetivos, mientras el Athletic sigue sin ganar un título, mientras sucesos terribles sacuden el mundo y te indignan por la hipocresía que los promueve, mientras tanto, hay una serie de personas que siguen ahí donde han estado siempre. Y me quiero acordar en estas líneas de mis abuelos y del resto de gente que siempre preguntaba cómo me iba, pero mucho más especialmente, de mis padres y de mi hermana, que han hecho un esfuerzo brutal para que yo pueda aprovecharlo durante estos años privándose de muchas cosas de las que espero que no se priven en adelante. Si decía antes que este proyecto habría tenido mucho menos peso de no haber sido mis compañeros quienes lo son, puedo decir también ahora que este proyecto directamente no “habría sido” de no haberme sido inculcados una serie de valores de sacrificio y de trabajo que he mamado en casa desde muy pequeño. De verdad, de corazón, gracias por todo. xi PROYECTO FIN DE CARRERA Índice General Resumen........................................................................................................................... iii Abstract ............................................................................................................................. v Laburpena ....................................................................................................................... vii Agradecimientos .............................................................................................................. ix Índice General ................................................................................................................ xiii Índice de Figuras ............................................................................................................ xix Índice de Tablas ............................................................................................................ xxv 1. Introducción ........................................................................................................... 1 1.1 De las máquinas de cálculo hasta los equipos industriales de nuestros días ...... 2 1.2 Cronología del malware, desde sus orígenes hasta la actualidad....................... 4 1.3 El Malware en los sistemas industriales ............................................................ 7 1.4 Retos y Objetivos del proyecto .......................................................................... 9 1.5 Estructura del documento ................................................................................. 10 2. Análisis del impacto de intrusiones en Sistemas Críticos.................................... 13 2.1 Tipos de amenazas a la seguridad corporativa ................................................. 15 2.1.1 Acceso no autorizado a sistemas críticos .................................................. 15 2.1.2 Control del acceso físico a equipos de alta seguridad .............................. 17 2.1.3 Denegación de servicio ............................................................................. 17 2.1.4 Spam.......................................................................................................... 18 2.1.5 Fuga de información ................................................................................. 19 2.1.6 Control de los mecanismos de pago online .............................................. 20 2.1.7 Redes inalámbricas inseguras o mal diseñadas ......................................... 21 2.1.8 Redes sociales ........................................................................................... 26 xiii ÍNDICES 2.1.9 2.2 Dispositivos móviles ................................................................................. 27 Estado del arte de la detección de malware ...................................................... 30 2.2.1 Tendencias evolutivas del malware actual ................................................ 31 2.2.2 Apogeo de las botnet y el malware a partir de 2011 ................................. 32 2.2.3 Clasificación .............................................................................................. 33 2.3 Industrias afectadas por el malware ................................................................. 38 2.4 Casos de estudio ............................................................................................... 39 2.4.1 Stuxnet, un malware orientado a dañar a la industria ............................... 39 2.4.2 Banca electrónica ...................................................................................... 41 2.4.3 En el sector de las telecomunicaciones ..................................................... 45 2.4.4 Brechas de seguridad asociadas al uso de programas no licenciados en las Pequeñas y Medianas Empresas ............................................................................... 46 2.4.5 Defensa nacional ....................................................................................... 48 2.4.6 En el sector privado ................................................................................... 49 3. Desarrollo experimental de NOA ......................................................................... 53 3.1 Opcodes como detectores de malware ............................................................. 53 3.2 Representación vectorial del software .............................................................. 55 3.3 Asignación de pesos y relevancia de opcodes .................................................. 60 3.4 Cosine Similarity y otras medidas de comparación .......................................... 62 3.4.1 Similitud del coseno: base teórica ............................................................. 62 3.4.2 Otras medidas de comparación ................................................................. 65 3.5 Estructura del programa y funcionalidades ...................................................... 69 3.6 Metodología de la experimentación ................................................................. 74 xiv 3.6.1 Definición del entorno de laboratorio ....................................................... 74 3.6.2 Divulgación de los resultados ................................................................... 81 PROYECTO FIN DE CARRERA 3.6.3 4. Evaluación de los resultados obtenidos .................................................. 100 Planificación estratégica de un proyecto de seguridad ...................................... 103 4.1 Toma de contacto ........................................................................................... 103 4.2 Análisis de la situación del sector .................................................................. 105 4.3 definición de objetivos y metas ...................................................................... 106 4.4 Diagnóstico estratégico .................................................................................. 107 4.5 Formulación y evaluación de estrategias ....................................................... 107 4.6 Elaboración del plan estratégico .................................................................... 108 4.7 Implantación ................................................................................................... 108 4.7.1 Construcción ........................................................................................... 108 4.7.2 Infraestructuras ....................................................................................... 109 4.7.3 Sistemas informáticos ............................................................................. 110 4.7.4 Gestión y administración ........................................................................ 111 4.7.5 Mantenimiento ........................................................................................ 112 4.8 Seguimiento y control .................................................................................... 113 4.9 Evaluación de un programa de I+D+i ............................................................ 113 4.9.1 Efectos directos ....................................................................................... 114 4.9.2 Efectos indirectos .................................................................................... 114 5. Implantación segura de sistemas informáticos en la empresa ........................... 117 5.1 Seguridad física de los equipos ...................................................................... 118 5.1.1 Factores ambientales ............................................................................... 118 5.1.2 Accesibilidad directa al hardware corporativo ....................................... 120 5.1.3 Sistemas de almacenamiento USB, dispositivos de mano y portátiles ... 126 5.1.4 Protección frente a sistemas de captación de datos ................................ 128 5.1.5 Concentradores, bocas de red y conectividad ......................................... 129 xv ÍNDICES 5.1.6 Seguridad física del cableado .................................................................. 130 5.1.7 Establecimiento de un protocolo de red inalámbrica segura ................... 131 5.1.8 Monitorización de equipos y dispositivos de red .................................... 132 5.1.9 Acceso a datos técnicos de la red y del hardware ................................... 134 5.1.10 Control sobre personal externo ............................................................... 135 5.2 Seguridad lógica ............................................................................................. 136 5.2.1 Control remoto de hardware .................................................................... 136 5.2.2 Seguridad del BIOS y del interior de los equipos ................................... 136 5.2.3 Uso de firewalls ....................................................................................... 137 5.2.4 Desarrollo de una red corporativa segura ................................................ 138 5.3 Implantación de sistemas de detección de variantes de malware ................... 142 5.4 Redundancia y replicación para mantener la red siempre disponible ............ 145 5.4.1 Sistemas de alta disponibilidad ............................................................... 146 5.4.2 Redundancia de máquinas y sistemas de almacenamiento ..................... 147 5.4.3 Sistemas de backup ................................................................................. 148 5.4.4 Sistemas de arranque ininterrumpido (SAI) ............................................ 149 5.4.5 Redundancia a nivel interno de hardware............................................... 149 5.4.6 Redundancia a nivel de red y conectividad ............................................. 150 5.5 6. Sistemas de prevención de fugas de información ........................................... 152 Disposiciones finales .......................................................................................... 155 6.1 Próximas líneas de trabajo .............................................................................. 155 6.1.1 Desarrollo de un prototipo optimizado.................................................... 155 6.1.2 Detección de malware desconocido y uso de técnicas de aprendizaje automático .............................................................................................................. 156 6.1.3 xvi Cálculo de relevancias de tuplas de N-opcodes ...................................... 157 PROYECTO FIN DE CARRERA 6.1.4 Mapas filogenéticos ................................................................................ 157 6.1.5 Empaquetados ......................................................................................... 157 6.2 Conclusiones .................................................................................................. 158 Bibliografía ................................................................................................................... 163 Índice Alfabético........................................................................................................... 167 Apéndices...................................................................................................................... 171 APÉNDICE 1: ARCHIVO DE RELEVANCIA DE OPCODES ............................................ 173 APÉNDICE 2: PARSER DE FICHEROS .XML ................................................................ 183 APÉNDICE 3: PROCEDIMIENTO DE GESTIÓN DE LOS PARÁMETROS DEL PROGRAMA ................................................................................................................................... 185 APÉNDICE 4: FUNCIONES AUXILIARES PARA LA CREACIÓN DE FICHEROS . ARFF ... 191 APÉNDICE 5: FUNCIONES HASH O RESUMEN Y HERRAMIENTAS PARA SU CÁLCULO ................................................................................................................................... 195 xvii PROYECTO FIN DE CARRERA Índice de Figuras Figura 1-1. Funciones principales de un sistema de automatización. ............................... 7 Figura 1-2. Ciclo de mejora continua de la experimentación. ........................................ 10 Figura 2-1. Buscando redes inalámbricas en sistemas Linux. ........................................ 23 Figura 2-2. Proceso de captura de paquetes en un ataque a redes inalámbricas. ............ 24 Figura 2-3. Sistemas operativos para móviles más infectados. ...................................... 28 Figura 2-4. Crecimiento de las amenazas informáticas para Windows. ......................... 30 Figura 2-5. Distribución de la población del malware actual. ........................................ 38 Figura 2-6. Industrias afectadas por malware según cifras recogidas por Trend Micro. 39 Figura 2-7. Riesgos asumidos por los empresarios que utilizan software no licenciado. ........................................................................................................................................ 47 Figura 3-1. Ejemplo básico de un programa en ensamblador......................................... 54 Figura 3-2. Códigos de operación usados para la representación del programa en ensamblador de ejemplo. ................................................................................................ 55 Figura 3-3. Proceso de representación vectorial del software. ....................................... 56 Figura 3-4. Coseno de dos vectores representados en un espacio bidimensional........... 63 Figura 3-5. Descripción del conjunto de datos para la evaluación de tiempos de NOA. 75 Figura 3-6. Histograma de las similitudes de variantes de la familia Agobot con el software benigno. Queda patente una alta concentración en los rangos de similitud entre el 85 y el 95% , con bajas concentraciones a partir del 95%. ......................................... 82 Figura 3-7. Histograma de las similitudes de variantes de la familia Agobot con variantes de la propia familia. Para realizar esta gráfica se obtuvieron más de 9.000 comparaciones que muestran una clara diferenciación morfológica de esta gráfica con su predecesora, al alcanzar cotas superiores al 95% en función de la representación. ... 82 Figura 3-8. Histograma de las similitudes de variantes de la familia Antilam con el software benigno. A pesar de la alta concentración para el nivel 1 y los recursivos en el intervalo entre 90 y 95%, los resultados muestran ratios de solicitud bastante dispersos en todo el dominio. ......................................................................................................... 83 xix ÍNDICES Figura 3-9. Histograma de las similitudes de variantes de la familia Antilam con variantes de la propia familia. A diferencia de la familia Agobot, en Antilam, los resultados son menos diferenciadores. ............................................................................ 83 Figura 3-10. Histograma de las similitudes de variantes de la familia Bancodor con el software benigno. Los resultados de la familia Bancodor muestran una clara diferenciación entre el malware de esta familia y el software benigno aumentando las diferencias con la ampliación de la lingitud de las cadenas tratadas............................... 84 Figura 3-11. Histograma de las similitudes de variantes de la familia Bancodor con variantes de la propia familia. Estos resultados sugieren que, a priori, establecer thresholds en esta familia sería menos controvertido ..................................................... 84 Figura 3-12. Histograma de las similitudes de variantes de la familia Bifrose con el software benigno. Se observan bajísimas concentraciones de similitud en los ratios más altos. En general, a mayor longitud de las cadenas, más diferenciación. ........................ 85 Figura 3-13. Histograma de las similitudes de variantes de la familia Bifrose con variantes de la propia familia. Nuevamente, las diferencias morfológicas del histograma hacen pensar en una fiable diferenciación....................................................................... 85 Figura 3-14. Histograma de las similitudes de variantes de la familia Cmjspy con el software benigno. Cabe destacar aquí la alta diferenciación con el goodware para las longitudes de cadenas más largas (Level 3, 4 y sobre todo 5), concentrándose en torno al bloque de entre 0 y 5%. ................................................................................................... 86 Figura 3-15. Histograma de las similitudes de variantes de la familia Cmjspy. Para las comparaciones con malware los resultados aparecen dispersos, aunque en términos comparativos se parece sencilla la segregación. ............................................................. 86 Figura 3-16. Histograma de las similitudes de variantes de la familia Agobot con el software benigno. Nuevamente, se observa que a mayor longitud de la secuencia, mayores diferencias, con pocas muestras por encima del 95%....................................... 87 Figura 3-17. Histograma de las similitudes de variantes de la familia Delf con variantes de la propia familia. A diferencia de Cmjspy, parece que las variantes de Delf tienen un mayor grado de cohesión interna, concentrando gran parte de las muestras en torno a similitudes superiores al 90%. ......................................................................................... 87 Figura 3-18. Histograma de las similitudes de variantes de la familia Graybird con el software benigno. En Graybird también se produce el fenómeno de dispersión de las similitudes conforme crece el tamaño. ............................................................................ 88 Figura 3-19. Histograma de las similitudes de variantes de la familia Graybird con variantes de la propia familia. Se observa que para longitudes mayores a 3, los resultados se distribuyen más por el histograma aún siendo fácilmente identificables. . 88 xx PROYECTO FIN DE CARRERA Figura 3-20. Histograma de las similitudes de variantes de la familia Gruel con el software benigno. Se observa una altísima concentración de variantes en el ´último de los tramos para niveles 4 y 5 al igual que una dispersión por el gráfico de los niveles 2 y 3, sugiriendo que a mayor longitud de cadena, mayor diferenciación. .......................... 89 Figura 3-21. Histograma de las similitudes de variantes de la familia Gruel con variantes de la propia familia. La similitud de todas las comparaciones se agrupan en similitudes superiores al 95% para todos los niveles. ..................................................... 89 Figura 3-22. Histograma de las similitudes de variantes de la familia Hupigon con el software benigno. Nuevamente se observa una tendencia de que los niveles más largos segregan mejor los resultados. ........................................................................................ 90 Figura 3-23. Histograma de las similitudes de variantes de la familia Hupigon con variantes de la propia familia. Los resultados en este caso también son muy alentadores al concentrarse gran cantidad de las similitudes en los intervalos más altos. ................. 90 Figura 3-24. Histograma de las similitudes de variantes de la familia IRCBot con el software benigno. Para IRCBot los resultados son menos diferenciados, presentando una gran cantidad de similitudes superiores. .................................................................. 91 Figura 3-25. Histograma de las similitudes de variantes de la familia IRCBot con variantes de la propia familia. A excepción de para nivel 1 (y recursivos) la similitud morfológica del histograma sugiere dificultades en la diferenciación. .......................... 91 Figura 3-26. Histograma de las similitudes de variantes de la familia LittleWitch con el software benigno. La dispersión de los resultados en esta familia es muy alentadora al concentrarse en las partes más bajas del ratio. Incluso para longitudes de secuencia de 1 (y recursivas) los resultados sugieren una clara diferenciación. ..................................... 92 Figura 3-27. Histograma de las similitudes de variantes de la familia LittleWitch con variantes de la propia familia. La mayor parte de las similitudes se concentran en los intervalos superiores. En la práctica debería bastar con un par de muestras de la familia para representar la totalidad de sus variantes.................................................................. 92 Figura 3-28. Histograma de las similitudes de variantes de la familia MoSucker con el software benigno. A pesar de las altas similitudes encontradas para niveles de entre el 85 y el 95%, la frecuencia de apariciones superiores al 95% es más bien baja. Obsérvese también que esta tendencia va a la baja cuanto más largas son las secuencias. ............. 93 Figura 3-29. Histograma de las similitudes de variantes de la familia MoSucker con variantes de la propia familia. Vista la gráfica anterior, se puede sacar la conclusión de que la mayor parte de las aplicaciones que obtengan similitudes al 95% al ser comparadas con variantes de MoSucker, serán, efectivamente, aplicaciones de la familia. ............................................................................................................................ 93 xxi ÍNDICES Figura 3-30. Histograma de las similitudes de variantes de la familia PcClient con el software benigno. A excepción de para las cadenas de 1 opcode y las recursivas, los resultados se distribuyen bastante homogéneamente sin ser demasiado significativos. . 94 Figura 3-31. Histograma de las similitudes de variantes de la familia PcClient con variantes de la propia familia. A pesar de que conforme se alarga la longitud de las cadenas se reducen las similitudes en los 2 rangos superiores, se las similitudes por encima del 85% siguen acaparando la mayor parte de las resultados. ............................ 94 Figura 3-32. Histograma de las similitudes de variantes de la familia Rbot con el software benigno. Se corrobora la tendencia de que a mayor longitud de las cadenas, menor similitud media. .................................................................................................... 95 Figura 3-33. Histograma de las similitudes de variantes de la familia Rbot con variantes de la propia familia. Los resultados para la familia Rbot son un tanto desconcertantes y que podrían ser achacables al hecho de ser malware de código abierto. A diferencia de otras familias, establecer valores-frontera parece complicado y reafirma la idea de que cada familia podría tener thresholds independientes. ..................................................... 95 Figura 3-34. Histograma de las similitudes de variantes de la familia SDBot con el software benigno. A pesar de que se observan grandes concentraciones en torno a la parte más baja del espectro para los niveles de cadenas más largas, las frecuencias para tasas de similitud superiores al 90% son aún así elevadas. ............................................. 96 Figura 3-35. Histograma de las similitudes de variantes de la familia SDBot con variantes de la propia familia. La proporción aproximada de apariciones de malware con tasas superiores al 95%, es, aproximadamente de 4:1. ............................................. 96 Figura 3-36. Histograma de las similitudes de variantes de la familia SubSeven con el software benigno. Nuevamente se percibe una mayor distribución por la gráfica de las similitudes encontradas conforme mayor es la longitud de la secuencia de opcodes analizada. ......................................................................................................................... 97 Figura 3-37. Histograma de las similitudes de variantes de la familia SubSeven con variantes de la propia familia. Para SubSeven destaca el gran número de frecuencias encontradas para los niveles más altos de similitud en contraposición con las encontradas con software benigno. ................................................................................. 97 Figura 3-38. Histograma de las similitudes de variantes de la familia VB con el software benigno. A pesar de encontrar altas tasas de similitud por encima del 90%, se mantiene la tendencia de dispersar las similitudes para niveles superiores y de cncentrarlas en los niveles más bajos. ............................................................................................................ 98 Figura 3-39. Histograma de las similitudes de variantes de la familia VB con variantes de la propia familia. VB es la familia de malware más numerosa de todas (256 xxii PROYECTO FIN DE CARRERA elementos) y por tanto la que mayores diferencias presenta entre una variante y otra y la que potencialmente necesitaría de más muestras para ser representada. ........................ 98 Figura 3-40. Histograma de las similitudes de variantes de la familia Zokrim con el software benigno. Se observan dos fenómenos: las bajas cotas de frecuencias obtenidas en los ratios superiores a 95% y las altísimas concentraciones de similitudes iguales o menores al 10% para las cadenas más largas. ................................................................. 99 Figura 3-41. Histograma de las similitudes de variantes de la familia Zokrim con variantes de la propia familia. La práctica totalidad de los ratios de similitud encontrados se encuentran por encima del 90% incluso para las cadenas más largas, ofreciendo unas tasas de aciertos muy elevadas. ............................................................ 99 Figura 3-42. Histograma resumen de las similitudes de las variantes de todas las familias con el total del software benigno. ................................................................... 101 Figura 3-43. Histograma resumen de las similitudes de las variantes de cada una de las familias con cada una de las variantes de la misma familia. ........................................ 101 Figura 4-1. Enfoque propuesto por ARSYS sobre los factores que incrementan los riesgos para la seguridad. .............................................................................................. 104 Figura 4-2. Umbral de actuación de un Departamento de seguridad en función de los riesgos de seguridad a los que se enfrenta y la inversión realizada. ............................. 106 Figura 5-1. Equipo de lockpicking sencillo con diferentes ganzúas para su uso en diferentes tipos de cerraduras. ...................................................................................... 121 Figura 5-2. Modelo sugerido para el establecimiento de la base de datos de malware.142 Figura 5-3. Ventana de actualización de la base de datos de malware. ........................ 145 Figura 5-4. Cable serie RS-232..................................................................................... 147 Figura 5-5. Imagen del panel de administración del prototipo del sistema de prevención de fugas de información basado en técnicas de reconocimiento de entidades. ............ 154 xxiii PROYECTO FIN DE CARRERA Índice de Tablas Tabla 2-1. Relación de dispositivos de seguridad y de la protección que ofrecen ante ciertas amenazas. ............................................................................................................ 43 Tabla 3-1. Representación del ejemplo con longitudes de secuencias de opcodes de 1. 58 Tabla 3-2. Representación del ejemplo con longitudes de secuencias de opcodes de 2. 58 Tabla 3-3. Representación del ejemplo con longitudes de secuencias de opcodes de 3. 59 xxv PROYECTO FIN DE CARRERA Capítulo 1 1. INTRODUCCIÓN La historia de la informática está ligada desde sus inicios a la creación de máquinas con capacidades de cálculo superiores a las del propio ser humano. La aparición de este tipo de máquinas, sin embargo, hay que situarla históricamente mucho antes de la aparición de las primeras computadoras eminentemente prácticas en plena Segunda Guerra Mundial. Es a partir de entonces cuando su evolución empieza a dar pasos agigantados hasta convertir la informática y el mundo digital en una herramienta indispensable en el desarrollo tecnológico de cualquier empresa, organización o sociedad. En la actualidad, la totalidad de los equipos modernos de fabricación, así como los procesos de automatización y control están regidos por sistemas informáticos cuya seguridad, tanto física como lógica, debe ser protegida con especial celo. El hecho de utilizar estos servicios que, por un lado, permiten incrementos exponenciales de la productividad, debe ser tomado con cautela cuando se habla de proteger su integridad1, y es que las nuevas posibilidades que permiten estos sistemas, facilitan también nuevas puertas de acceso a hipotéticos atacantes que quieran causar daño en ellos, bien a través de la explotación de vulnerabilidades del software que controla los equipos, o bien valiéndose de la actitud confiada, cuando no negligente, de algunos empleados poco previsores. Así, en este primer capítulo introductorio se ofrecen los siguientes contenidos: una breve introducción de la historia de la informática a través de la evolución de las máquinas de cálculo hasta los ordenadores personales; la evolución de la industria del malware, una descripción de los retos y objetivos concretos de este proyecto fin de carrera y la estructura del resto del documento. 1 Los servicios de integridad corresponden a aquéllos orientados a garantizar que «toda la información enviada a través de la red, almacenada o procesada, no haya sido alterada de forma no autorizada»(Areitio, 2008). 1 1. INTRODUCCIÓN 1.1 DE LAS MÁQUINAS DE CÁLCULO HASTA EQUIPOS INDUSTRIALES DE NUESTROS DÍAS LOS Como ya se ha señalado, el instrumento más antiguo de cálculo reconocido es el ábaco chino. El ábaco era la evolución natural de los primitivos instrumentos de conteo ideados por el hombre. Estaba compuesto por una tabla dividida en columnas, de modo que la de más a la izquierda equivalía a las unidades, la siguiente a las decenas y así sucesivamente, permitiendo realizar operaciones de adición y sustracción si se conocían las técnicas de cálculo apropiadas. Ya en el siglo XVII, el científico francés Blas Pascal ideó una máquina calculadora que permitiría realizar sumas y restas. Dicha máquina sería perfeccionada un siglo después por Gottfried Leibnitz, que mostró en 1673 ante la Royal Society of London for Improving Natural Knowledge la primera máquina creada capaz de realizar operaciones de producto y cociente. De todas formas, no es hasta entrado el siglo XIX cuando se empiezan a comercializar las primeras calculadoras. Será un inglés, Mr. Babbage, quien desarrolle la máquina analítica que, pese a seguir teniendo un funcionamiento estrictamente mecánico, permitiría realizar cualquier tipo de operación matemática además de poder almacenar hasta 1.000 números de 50 cifras y posibilitaba el uso de funciones auxiliares. El siglo XX y el desarrollo de la electrónica dan un importante giro a la evolución de estos dispositivos. La sustitución de los engranajes y conexiones mecánicas por impulsos eléctricos da lugar a la estandarización más básica del campo de la informática: la representación de la información mediante el código binario, representándose con un «1» el paso de la corriente y con un «0» la ausencia de ella. Ya durante 1931, en el MIT (Instituto Tecnológico de Massachussets), Vannevar Bush construyó un analizador diferencial, o lo que podría llamarse la primera computadora analógica, que serviría para realizar de forma automática algunas de las operaciones elementales. Curiosamente, en el mismo año, el matemático inglés George Boole describe el álgebra que hoy en día lleva su nombre (el conocido como Álgebra de Boole) dando origen a lo que en la actualidad se conoce como ciencias de la computación. Bajo estas premisas, se crea el primer ordenador en la Segunda Guerra Mundial, el llamado Mark I, cuya interfaz, especialmente complicada, se basaba íntegramente en interruptores mecánicos. En 1944, se construyó la primera computadora electrónica de propósito general, la ENIAC2 con fines eminentemente militares al estar orientada al 2 ENIAC, siglas de Computador e Integrador Numérico Electrónico (en inglés Electronic Numerical Integrator And Computer), utilizada en el Laboratorio de Investigación Balística del Ejército de los Estados Unidos. Contaba con 167m2 y un total de 17.468 válvulas electrónicas que ofrecían una capacidad de cálculo de 5.000 sumas y 300 multiplicaciones por segundo. 2 PROYECTO FIN DE CARRERA cálculo de trayectorias de proyectiles. Ya en la década de los cincuenta se desarrollan UNIVAC3 I y UNIVAC II que, aunque orientados principalmente a un uso burocrático y administrativo, sentarán las bases para el surgimiento de los verdaderos ordenadores personales en los años 70. Son precisamente estos modelos los que acercan definitivamente la informática a un público más general. El primer PC (Personal Computer, en castellano, ordenador personal) fue fabricado en 1971 por John Blankenbaker de la Kenbak Corporation de Los Ángeles y estaba orientado al mercado educativo. La Kenbak 1 contaba con 256 bytes de memoria RAM4, comercializándose 40 equipos al precio unitario de 750 dólares de la época. Dos años después, aparece la primera computadora personal comercial, la Altair 8800, diseñada por Ed Roberts y Bill Yates y fabricada por la empresa MITS. Aunque su precio final era algo más asequible (350 dólares), para presenciar una expansión masiva y definitiva de los PC se tuvo que esperar a la aparición de la Apple I presentada en 1976, siendo 1977 el año en el que las empresas Apple, Commodore y Tandy distribuyen los primeros ordenadores personales completamente ensamblados. En agosto de 1981, IBM entra en escena convirtiéndose en la primera compañía en incluir en sus PC de propósito general el sistema operativo PC-DOS (precursor del MSDOS posterior). PC-DOS fue adquirido por William Henry Gates III (conocido popularmente como Bill Gates) sobre el cual realizaría algunas modificaciones antes de llegar a un acuerdo de explotación con IBM para sentar las bases de la empresa más importante a nivel mundial en el panorama informático: Microsoft. Se trata de uno de los puntos más controvertidos de la historia comercial de la informática, dado que es entonces cuando IBM termina por adoptar MS-DOS, que era una copia casi fiel de QDOS (Quick and Dirty OS) de Tim Paterson y a su vez clon de CP/M. Puede decirse que aquí se encuentra el origen de los virus informáticos: en el mismo punto en el que se sitúa el origen de la computación moderna de la mano del Álgebra de Boole, en la teoría de la información de Shannon, en las máquinas de Turing, en la cibernética de Wiener, en la primitiva inteligencia artificial (aún por desarrollar) o en los modelos matemáticos de Von Neumann. Y es que, de pronto, cualquier persona podía disponer de una máquina con unas notables prestaciones y con interesantes funcionalidades a un precio razonable, con la que podría realizar una variedad de cálculos y operaciones no concebidas hasta el momento. 3 UNIVAC, siglas de Computador Automático Universal (en inglés UNIVersal Automatic Computer) es el primer ordenador comercial producido en Estados Unidos con un precio original de 5.000 dólares. Contaba con 5.200 tubos de vacío y una capacidad de cálculo de 1.905 operaciones por segundo. 4 RAM son las siglas de random access memory, un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder a cualquier byte de memoria sin acceder a los bytes precedentes. La memoria RAM es el tipo de memoria más común en ordenadores y otros dispositivos como impresoras. 3 1. INTRODUCCIÓN 1.2 CRONOLOGÍA DEL MALWARE, ORÍGENES HASTA LA ACTUALIDAD DESDE SUS En el contexto anteriormente citado, muchos usuarios anónimos pudieron poner en práctica entonces rudimentarios conocimientos informáticos para desafiarse entre ellos o conseguir aparecer en los medios de comunicación, bien a través de la programación de juegos u otras aplicaciones benignas (como procesadores de texto o herramientas de ofimática), o bien a través de la creación de otras mucho menos inofensivas. Así, fue en 1949 cuando Von Neumann estableció la idea de los programas almacenados y cuando expuso la Teoría y organización de autómatas complejos, donde presentaba por primera vez la posibilidad de desarrollar pequeños programas autoreplicantes y capaces de tomar el control de otros de similar estructura gestionando el acceso a la memoria que utilizaban. Si bien el concepto tiene miles de aplicaciones en la ciencia (como por ejemplo, en campos como la inteligencia artificial), no resultaba enrevesado pensar en aplicaciones maliciosas de la teoría expuesta por Von Neumann que dieran lugar al nacimiento de los virus informáticos, programas que se reproducirían a sí mismos el mayor número de veces posible en memoria llegando a ocupar, si tenían posibilidad, la totalidad del espacio lógico disponible. De hecho, ya en 1959, en los laboratorios de Bell Computer, tres jóvenes programadores: Robert Thomas Morris, Douglas Mcllroy y Victor Vysottsky crearon un juego denominado CoreWar, basado en la teoría de Von Neumann con el objetivo de que diferentes programas combatieran entre sí tratando de ocupar toda la memoria de la máquina para eliminar así a los oponentes. Este juego es considerado el precursor de los virus informáticos. Fue en 1972 cuando Robert Thomas Morris creó el que es considerado como el primer virus propiamente dicho: el Creeper (o enredadera) que era capaz de infectar máquinas IBM 360 de la red ARPANET5 (antecesora del actual Internet) y que emitía un mensaje en pantalla que decía «Soy una enredadera, atrápame si puedes». Para eliminarlo, se creó otro virus llamado Reaper (o segadora) que estaba programado para buscarlo y eliminarlo convirtiéndose también en el primer embrión de antivirus. En la década de los 80, y a medida que los PC ganaban popularidad, cada vez más gente entendía la informática y experimentaba con sus propios programas. Esto dio lugar a los primeros desarrolladores de programas dañinos y en 1981, Richard Skrenta escribe el primer virus de amplia reproducción: Elk Cloner, que contaba el número de veces que arrancaba el equipo y al llegar a 50 mostraba un poema. 5 La red de computadoras ARPANET (en inglés Advanced Research Projects Agency Network) fue creada por encargo del Departamento de Defensa de los Estados Unidos como medio de comunicación interno entre diferentes organismos gubernamentales. El primer nodo se creó en la Universidad de California, Los Ángeles. 4 PROYECTO FIN DE CARRERA En 1984, Frederick B. Cohen acuña por primera vez el término virus informático en uno de sus estudios definiéndolo como «Programa que puede infectar a otros programas incluyendo una copia posiblemente evolucionada de sí mismo» y en 1987 hace su aparición el virus Jerusalem o Viernes 13, que era capaz de infectar archivos .EXE y .COM. Su primera aparición fue detectada desde la Universidad Hebrea de Jerusalén y ha llegado a ser uno de los virus más famosos de la historia. En 1999 surge el gusano Happy desarrollado por el francés Spanska creando una nueva corriente en cuanto a la propagación del malware que persiste hasta el día de hoy: el envío de gusanos por correo electrónico. En el año 2000 tuvo lugar una infección que tuvo muchísima repercusión mediática debido a los daños ocasionados por la infección tan masiva que produjo. Fue el gusano I Love You o LoveLetter, que, basándose en técnicas de ingeniería social, infectaba a los usuarios también a través del correo electrónico. Comenzaba aquí la época de grandes epidemias masivas que tuvieron su punto álgido en el año 2004. Fue en ese año cuando aparecieron gusanos como el Mydoom, el Netsky, el Sasser o el Bagle, que buscaban alarmar lo más posible a la comunidad informática tratando de tener la mayor repercusión y reconocimiento posible. Sin embargo, estas tendencias cambian de rumbo a partir de 2005. Curiosamente, dicho año fue el más duro y el último con epidemias masivas, y es que los creadores de malware se dieron cuenta de que sus conocimientos servirían para algo más que para tener repercusión mediática: el objetivo pasaba a ser ganar dinero. Tras 5 años de tendencia sostenida en la que los virus tal y como los conocíamos fueron dando paso a gusanos y troyanos encargados de formar redes de bots con fines puramente económicos, los programadores comprendieron que la escritura de malware era un entretenimiento que podía convertirse en un negocio muy rentable. Quizá la mejor prueba de ello sean los denominados troyanos bancarios de los que existen miles de variantes, dado que los creadores, para dificultar su detección, modificaban permanentemente el código de los mismos. Actualmente, este tipo de malware se distribuye mediante exploits, spam o a través de otro malware que descarga el troyano. Algunos troyanos que afectan al sector financiero, se encargan de robar información relacionada con las transacciones comerciales y/o datos bancarios del usuario infectado. Tal y como se explicará más adelante, otra amenaza latente relacionada con la obtención de beneficios económicos a través del malware es el spyware y adware. Algunas organizaciones de distribución de software utilizan sus aplicaciones para permitir que los creadores puedan realizar una monitorización de las actividades del usuario sin su consentimiento. En cuanto a las amenazas para móviles, no cabe duda de que la llegada de las tecnologías, móviles e inalámbricas, y su constante evolución han revolucionado en los 5 1. INTRODUCCIÓN últimos años la forma en la que nos comunicamos y trabajamos. Sin embargo, la expansión del uso de esta tecnología ha hecho que también se convierta en un vector de ataque importante para la industria del malware. Fue en el año 2004 cuando se informó de la existencia del primer código malicioso para plataformas móviles: se trataba de Cabir que, junto al ComWar, serían los más conocidos. Este último lo fue, además de por su capacidad de replicarse a través de Bluetooth, por la novedosa posibilidad que permitía hacerlo mediante mensajes de texto con imágenes y sonido (utilizando los servicios de mensajería multimedia o MMS, del inglés Multimedia Messaging System), enviándose a las direcciones y números de la agenda de sus víctimas. Actualmente, también existe malware para los sistemas operativos móviles, como pueden ser Symbian, PocketPC, Palm OS, etc., siendo el método de propagación tan diverso como las posibilidades que nos ofrecen estos avances tecnológicos: SMS, MMS, IrDA o Bluetooth. A día de hoy la plataforma más atacada sigue siendo Windows sobre procesadores de 32 bits. Como hemos mencionado anteriormente, los creadores de malware han visto en esta actividad un método de enriquecimiento y, tratando de buscar el grupo de víctimas más amplio posible, han tenido en cuenta que los usuarios de plataformas Windows representan el 90% del mercado. Algunos expertos hacen también especial incidencia en los conocimientos informáticos de las víctimas y, entienden, que la escasa proliferación de estas aplicaciones maliciosas en plataformas Linux o Macintosh puede deberse también a la mayor sensibilización de los usuarios de estos sistemas, ya que los conocimientos informáticos medios de los usuarios de estas plataformas son superiores a los del usuario estándar de equipos Windows, haciendo de la Ingeniería Social, un método de propagación menos efectivo. Es de esta manera como la persecución de la fama de los primeros creadores de aplicaciones maliciosas, ha ido dando paso a la creación de una auténtica industria del malware con fines puramente lucrativos y al servicio de cibercriminales perfectamente organizados. De hecho, las posibilidades que ofrece esta forma de delincuencia están siendo explotadas desde hace ya tiempo por una auténtica industria del cibercrimen con el objetivo de obtener beneficios puramente económicos mediante el envío de correo basura, el phising o el sabotaje de recursos de acceso público como páginas web o servidores, tal y como se explicará más adelante. En las décadas que vendrán, tanto compañías como usuarios, tendrán que ser cada vez más conscientes de los peligros que entraña disponer de sistemas de seguridad indebidamente protegidos. En el sector empresarial, además, cobrará esto una mayor relevancia dado que la seguridad que demuestren las nuevas aplicaciones comerciales, será una necesidad que reclamarán, cada vez con más fuerza, los clientes de productos relacionados directa o indirectamente con la informática. Por ello, será necesario desarrollar equipos y departamentos orientados a añadir valor a los productos comerciales apoyándose en la seguridad. 6 PROYECTO FIN DE CARRERA 1.3 EL MALWARE EN LOS SISTEMAS INDUSTRIALES Típicamente, un proyecto de automatización previo a 1990 incluía tres áreas funcionales principales: control de supervisión y adquisición de datos (SCADA6); monitorización, medición y control; y protección. Todo sistema de control y automatización debe incluir las cuatro principales funciones a desarrollar dentro de un proyecto de automatización de sistemas de energía, tal y como se muestra en la Figura 1-1. El equipo de automatización usado en cada una de las áreas debería consistir, básicamente, en: un sistema de control y automatización de dispositivos electromecánicos (tales como medidores, relés de protección, temporizados, contadores etc.) y dispositivos analógicos y digitales para el muestreo en pantalla. La información podría obtenerse localmente a partir de medidores analógicos, paneles de medición digital o paneles mímicos7 de control. Anteriormente, también se instalaban en dichos paneles interruptores electromecánicos, los cuales eran usados por los operadores para controlar los equipos principales ubicados en cada una de las subestaciones. Gestión de Control energía y del y sist. eléctrico Supervisión Sistema de Control y Automatización Sistema de Automat. del comunicación sistema asociado de distribución Figura 1-1. Funciones principales de un sistema de automatización. 6 Sistemas SCADA o sistemas de control de supervisión y adquisición de datos (del inglés Supervisory Control And Data Acquisition). 7 Estos panele son útiles para la visualización de consolas de control en instalaciones de distribución de gas, petróleo, vapor y otros líquidos, o en diferentes procesos industriales que utilicen algunos de estos elementos. También se pueden encontrar en las centralitas de control de algunas líneas de ferrocarril o suburbanos. 7 1. INTRODUCCIÓN Con los avances en microprocesadores de los años 70, el panorama empezó a cambiar. Los nuevos diseños basados en microprocesadores, los cuales luego se denominarían más adelante Dispositivos Electrónicos Inteligentes (IED por sus siglas en inglés), mostraron un impresionante número de ventajas sobre sus predecesores ya que contenían funciones y características adicionales, las cuales incluyen auto-chequeo y auto-diagnóstico, interfaces de comunicaciones, la habilidad de almacenar datos históricos y, entre otras, diferentes unidades para la entrada y salida de datos (I/O, del inglés Input / Output). Los IED también han permitido eliminar la redundancia en los equipos gracias a la integración de múltiples funciones en un solo dispositivo. Por ejemplo, al integrar los transformadores de corriente con los de potencial en un circuito individual, el IED puede medir, proteger y ofrecer posibilidades de control a distancia de forma simultánea. En la medida en que las funciones tradicionales de automatización y control se integraron en un equipo único, la definición del IED comenzó a expandirse. El término se aplica hoy en día a cualquier dispositivo basado en micro-procesadores con un puerto de comunicación y, por lo tanto, comprende a los relés de protección, medidores, unidades terminales remotas, PLC8s, almacenadores de fallas digitales y secuenciadores de eventos. Pero los escritores de malware también se han dado cuenta de las posibilidades que ofrece el panorama industrial. Las entidades corporativas tienden a proteger celosamente proyectos, presupuestos, metodologías e información sobre productos innovadores siendo, en ocasiones, esta información confidencial suficientemente jugosa como para atraer la atención de la industria del malware. Muy recientemente, en septiembre de 2010, un sofisticado gusano diseñado para robar secretos industriales e interrumpir las operaciones infectó a por lo menos 14 plantas, de acuerdo con Siemens (Maclean, 2010). Llamado Stuxnet, el gusano fue descubierto en julio de ese mismo año, cuando los investigadores de VirusBlokAda lo encontraron en algunos equipos iranís. De acuerdo con Robert McMillan (McMillan, 2010), se trataba de una de las piezas más sofisticadas e inusuales de malware jamás creadas ya que dicho gusano utilizaba, entre otras, una vulnerabilidad de Windows entonces desconocida, pero ya parcheada, que le permitía propagarse de un equipo a otro a través de memorias USB. Aunque fue diseñado para atacar los sistemas de control industrial Siemens, no se ha extendido ampliamente. Sin embargo, afectó a un importante número de plantas, según 8 Los controladores lógicos programables o PLC (Programmable Logic Controller en sus siglas en inglés) son dispositivos electrónicos muy usados en automatización industrial. Hoy en día, los PLCs no sólo controlan la lógica de funcionamiento de máquinas, plantas y procesos industriales, sino que también pueden realizar operaciones aritméticas, manejar señales analógicas para realizar estrategias de control, tales como controladores PID (Proporcional Integral y Derivativo). 8 PROYECTO FIN DE CARRERA el portavoz de la propia compañía, Simón Wieland, aunque sin causar, en principio, ningún daño (IDG News Service, 2010). De acuerdo con investigadores de la empresa especializada en seguridad Symantec (Symantec, 2010), esta nueva generación de malware es especialmente peligrosa porque los nuevos programas ya no sólo son utilizados para espiar los sistemas industriales, sino que también podrían ser utilizados para reprogramarlos, manipularlos o controlarlos remotamente, de modo que se hace necesario realizar un análisis mucho más exhaustivo de estas posibles amenazas 1.4 RETOS Y OBJETIVOS DEL PROYECTO Con el objetivo de hacer frente a las necesidades ya esbozadas de desarrollar una técnica de detección de malware que permita clasificar las cada vez más numerosas variantes de malware existentes, en este documento se propone utilizar un conjunto de técnicas basadas en el empleo de los códigos operacionales (opcodes) que permitan la detección de malware y de sus posibles variantes. Para conseguirlo, se han definido una serie de pasos, incluidos en el ciclo de mejora continua experimental de la Figura 1-2: 1. Planificación teórica Como paso previo a la ejecución puramente práctica del experimento, es necesaria una correcta planificación de los pasos a dar. Para ello, se tomarán como base los planteamientos de Daniel Bilar (Bilar, 2007), que asumen la utilización de los opcodes como medidas adecuadas para la detección de malware. 2. Fase experimental El modelo experimental deberá desarrollar al detalle un prototipo que permita corroborar los planteamientos iniciales. Para ello, se realizará un conjunto de pruebas con una serie de familias de malware, cuyas variantes serán, primero, comparadas todas entre sí y, después, comparadas con una muestra de software previamente identificado como no-malicioso. 3. Evaluación y refinamiento En esta fase se llevará a cabo un análisis de los resultados obtenidos de cara a realizar un posterior refinamiento de las técnicas utilizadas y plantear nuevas modificaciones teóricas que permitan reiniciar el proceso de mejora continua mediante la toma acciones de mejora en el futuro. 9 1. INTRODUCCIÓN Planificación Teórica Fase Experimental Evaluación y refinamiento Figura 1-2. Ciclo de mejora continua de la experimentación. Así, el prototipo comercial usará las técnicas experimentales desarrolladas anteriormente para crear un software sencillo que permita el análisis de los ficheros que se encuentren en los equipos en que esté instalado en busca de nuevas amenazas comparándolos con las muestras de la Base de Datos. 1.5 ESTRUCTURA DEL DOCUMENTO El resto de este proyecto fin de carrera está estructurada tal como sigue. 10 Capítulo 2: en este capítulo se desarrolla el estado del arte de la detección de aplicaciones maliciosas en general introduciendo los diferentes tipos de malware existentes y el crecimiento exponencial del número de amenazas. Además, se analizan pormenorizadamente cuáles son las principales amenazas a la que cualquier compañía u organización va a tener que hacer frente en los próximos años en materia de protección de sus sistemas críticos, desarrollándose además una serie de casos de estudio en los que se pone de manifiesto la necesidad de implementar los más adecuados sistemas de seguridad informática. Se enumeran también una serie de casos de estudio sobre éstos y sobre las repercusiones que pudieran tener para el buen funcionamiento de la compañía. Capítulo 3: este capítulo detalla la implementación del prototipo experimental de NOA (N-Opcode Analyzer) una aplicación experimental desarrollada para comprobar la eficacia de los métodos de detección de malware aquí propuestos basados en el análisis de la frecuencia de aparición de las cadenas de códigos operacionales. Capítulo 4: en este capítulo se propone un plan estratégico de implantación de un sistema de seguridad informática, puntualizando algunas de las principales problemáticas de índole táctica y estratégica a las que habrá que hacer frente. PROYECTO FIN DE CARRERA Capítulo 5: en este capítulo se da una información detallada acerca de la implantación final del sistema de seguridad. Se incluyen toda clase de referencia a medidas de seguridad física, lógica y de redundancia de sistemas así como acciones preventivas y correctoras a tomar para asegurar la disposición de una red de equipos informáticos segura. Capítulo 6: en este capítulo se detallan las posibles líneas de trabajo futuro para mejorar y optimizar la detección de malware basada en opcodes aquí propuesta, así como se proponen algunas otras aplicaciones en el campo de la seguridad, haciendo referencia también a las conclusiones extraídas del presente estudio. 11 PROYECTO FIN DE CARRERA Capítulo 2 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Aunque el crecimiento descontrolado del malware es una realidad que afecta a todo usuario final de cualquier producto tecnológico, son las industrias, los gobiernos, las empresas distribuidoras de energía y, en general, cualquier otra empresa que desarrolle algún tipo de actividad comercial, las que más alerta tienen que estar a la hora de protegerse de las amenazas del malware organizado. Esta situación se agrava si los sistemas que se manejan son de carácter crítico o cuyo mal funcionamiento puede derivar en situaciones potencialmente perjudiciales para la población como fallos puntuales en reactores nucleares, centrales de energía o instalaciones químicas. En este sentido, estará grabado en la memoria reciente del lector la dramática situación acaecida en la Central Nuclear de Fukushima en marzo de 2011. Un temblor de 8,9 en la escala sismológica de Richter9, uno de los más fuertes registrados en la historia moderna de Japón, causó daños severos en el extremo más septentrional del país. El epicentro se ubicó a 130 kilómetros al este de Sendai, Honshu, en pleno océano Pacífico, generándose una alerta de tsunami para la costa pacífica de Japón y otros 19 países más que causó más de 10.000 muertos y casi la misma cifra de desaparecidos en territorio nipón. Como consecuencia de los daños estructurales provocados por el tsunami, diferentes reactores de la Central Nuclear de Fukushima empezaron a fallar por problemas internos de refrigeración, emitiendo una gran cantidad de radiación y forzando a las autoridades a evacuar la zona en lo que ha sido citado como el mayor fallo nuclear de la historia tras el desastre de Chernóbil (Ucrania) en 1986. 9 La escala sismológica de Richter, también conocida como escala de magnitud local (ML), es una escala logarítmica arbitraria que asigna un número para cuantificar el efecto de un terremoto. Es denominada así en honor del sismólogo estadounidense Charles Richter (1900-1985). 13 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Llegados a este punto, hay que puntualizar que la salud económica de las compañías también puede verse afectada. Las computadoras pueden presentar toda clase de contratiempos, desde problemas asociados al malfuncionamiento de la máquina, hasta pérdidas de información sensible o la fuga de conocimientos industriales. En otras palabras, el hecho de que un equipo informático no pudiera operar al 100% porque un virus está afectando al equipo, podría tener como resultado que las empresas comenzaran a sufrir pérdidas económicas asociadas a desórdenes en los procesos de fabricación (ralentización del proceso, parada y arranques continuados, etc.) por culpa de la acción de algunos de estos programas maliciosos. De esta manera, y ya no solamente por criterios económicos, la vulnerabilidad informática de los sistemas de control de éstas y otras instalaciones, así como los riesgos potenciales asociados a la liberación accidental de radiación, gases tóxicos u otros fluidos, debe ser tenida en cuenta para desarrollar los procedimientos de blindaje informático más adecuados que preserven la seguridad de las instalaciones críticas. Para cubrir estas necesidades de protección ante el malware y otros peligros, surgieron las primeras herramientas de seguridad como los programas antivirus y los de detección de riesgos y amenazas. Los virus (terminología coloquial bajo la cual se suele identificar toda clase de malware) han ido evolucionando con el transcurrir de los años, haciéndose cada vez más complejos y utilizando técnicas de ocultamiento que dificultan cada vez más su identificación. Es tarea de los antivirus tratar de mantener sus capacidades de detección a la par con las capacidades de los virus para ocultarse y replicarse, con el objetivo de intentar prevenir y eliminar cualquier tipo de software malicioso que pueda presentar una amenaza potencial para el usuario. Pero, lamentablemente, a día de hoy no existe forma humana de eliminar todo el malware existente. Hay que insistir en que, junto con los virus, existen otros grupos de software malicioso que abarcan programas con muy diferentes funcionalidades como los troyanos, gusanos, backdoors, etc., también con capacidades para causar grandes pérdidas monetarias. Estas diferentes formas de malware han visto evolucionar los objetivos para los que eran diseñadas tratando de adaptarse a las vulnerabilidades que presenta el software industrial. En la actualidad, se escriben programas maliciosos para espiar, robar información, extorsionar, chantajear y explotar otras formas de delincuencia con las que obtener ingresos económicos de forma clandestina. De hecho, existen personas dedicadas exclusivamente a la creación de software malicioso con el fin único y último de ganar dinero. Esta realidad ha convertido a la industria del malware en una auténtica mafia virtual, que se valdrá de cualquier medio a su alcance para conseguir réditos económicos de sus actividades en el panorama informático. Curiosamente, una de las amenazas más recientemente detectadas es el reclutamiento de máquinas zombies (maquinas comprometidas que son controladas remotamente por botmasters o administradores de redes de bots). Las cifras hablan de un incremento exponencial de este tipo de redes, que, por el momento, están siendo utilizadas 14 PROYECTO FIN DE CARRERA principalmente para el envió de spam, el sabotaje de dominios web o el robo de información. La realidad nos demuestra que las mafias utilizan estos equipos secuestrados de una forma cada vez más agresiva para consumar las actividades ya descritas, además de para enviar e-mails masivos con malware, atacar a empresas u organizaciones gubernamentales de forma remota o difamar a personas físicas o jurídicas mediante la propagación de rumores falsos. En este mundo globalizado con un acceso tan amplio y directo a los medios, los creadores de software malicioso ya pueden ofrecer sus servicios a nivel mundial. En los últimos años, varios virus han causado pérdidas millonarias para organizaciones asentadas en todo el mundo como se va a exponer posteriormente, pero cabe señalar que muchos de estos problemas de seguridad se pudieron haber evitado de haberse tomado las medidas de seguridad, física y lógica, pertinentes. Es por ello que se debe empezar a considerar el nivel de riesgo potencial que esto representa para la seguridad de toda organización, ya sea pública o privada. Por último, y antes de dar paso al resto del contenido de este capítulo, se cree conveniente la siguiente puntualización: nótese que cuando aquí se habla de seguridad se va a hacer referencia a la acepción del término que, en informática, identifica como riesgos de seguridad a aquellas situaciones que pueden comprometer la integridad y protección de equipos y sistemas frente a terceros, dejando un poco más de lado la necesidad de garantizar la recuperación de los datos en caso de errores físicos o humanos que comprometan la estabilidad de la información almacenada. Así, este capítulo está organizado para mostrar en un primer momento cuáles son las potenciales amenazas y peligros que deberá encarar toda organización dispuesta a hacer frente a estos desafíos, para después mencionar las diferentes variantes de malware existentes y citar algunos ejemplos de cómo dicho malware ha afectado en el pasado a diferentes sectores industriales. 2.1 TIPOS DE CORPORATIVA AMENAZAS A LA SEGURIDAD En esta sección se detallan algunas de las principales amenazas que pueden comprometer la seguridad de los sistemas críticos industriales así como la imagen de la compañía ante terceros, detallando los potenciales peligros a los que se tendrá que hacer frente en el futuro para minimizar estos riesgos de seguridad. 2.1.1 Acceso no autorizado a sistemas críticos Las nuevas tecnologías están ofreciendo cada vez más posibilidades de gestionar sistemas de control a distancia, incluso desde distintos enclaves a cientos de kilómetros de distancia. Así, el control remoto de los sistemas eléctricos comenzó a utilizarse ya en la década de los años 60. Aunque aún hoy quedan subestaciones que todavía no han integrado totalmente la tecnología de los dispositivos electrónicos, en parte debido a que 15 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS la interoperabilidad entre los dispositivos está obstaculizada por el exceso de protocolos e interfaces incompatibles. Ahora bien, a pesar de estas limitaciones, las nuevas tecnologías de automatización tienen que tener en cuenta, como uno de sus principales objetivos, hacer posible la comunicación con sistemas más antiguos o incluso obsoletos. La lista de equipos relacionados con dichas tecnologías incluye, entre otros a los Dispositivos Electrónicos Inteligentes (IED, por sus siglas en inglés), las plataformas computacionales, los sistemas operativos, las redes de comunicación y las interfaces gráficas de usuario. El principal problema reside en que la gran variedad de protocolos existente hace más difícil la auditoría de las comunicaciones entre los diferentes sistemas informáticos, pudiendo quedar al descubierto algunas vulnerabilidades no detectadas y asociadas a errores de programación o la falta de conocimiento sobre ellos. Lo que sigue, es un análisis de cómo integrar dichas tecnologías en un único sistema de control para redes electrónicas, enumerándose también los beneficios de integrar dichos sistemas para la empresa operadora. En general, la automatización tiene las siguientes ventajas: - Incremento de la confiabilidad de los sistemas y equipos. - Rápido diagnóstico de equipos y eventos. - Mayor flexibilidad en las maniobras operacionales, de mantenimiento y de reconexión. - Mejora de los tiempos de respuesta. - Obtención de facilidades para disponer de señales de medición, alarmas, control remoto o información para el diagnóstico y/o la mejora del rendimiento. - Alto grado de flexibilidad para extensiones futuras. - Disminución de los costes operativos y mantenimiento al ser también menos necesaria la contratación de mano de obra especializada. Sin embargo, los avances técnicos y tecnológicos en estos equipos han cambiado la forma de blindar los sistemas críticos. Ya no sólo bastará, como se indica más adelante, con proteger los accesos físicos a estos equipos, sino que también habrá que acompañar estas medidas de otras que garanticen que los usuarios lógicos del sistema estén correctamente autenticados. En la actualidad, numerosas empresas de todos los sectores utilizan sistemas de control a distancia a través de redes privadas virtuales (o VPN), desde estaciones de radio hasta cadenas de televisión o cuerpos de seguridad, con el fin de poder acceder a los servicios que se proveen in situ desde cualquier parte del planeta. Sin embargo, el desafío que 16 PROYECTO FIN DE CARRERA esto supone a la hora de identificar a los usuarios reales del sistema es mucho mayor, ya que será necesario crear mecanismos de acceso que no puedan ser comprometidos con facilidad y que requieran de una autenticación permanente del usuario para asegurar que el canal de comunicación no ha sido secuestrado. En este sentido, cuando las acciones sobre sistemas críticos son especialmente peligrosas, es recomendable mantener aislados los equipos para minimizar las brechas de seguridad. 2.1.2 Control del acceso físico a equipos de alta seguridad En la línea de lo anterior, el acceso físico a los sistemas informáticos no debe ser obviado por el analista de seguridad. Aunque pudiera parecer una competencia fuera del alcance del responsable de seguridad de los medios informáticos, nada más lejos de la realidad. La gestión adecuada de los permisos de acceso a estos equipos es fundamental para minimizar los peligros asociados al robo de información sensible de los equipos corporativos, especialmente facilitados en la actualidad por la existencia de dispositivos USB, de tamaño especialmente reducido, pero con grandes capacidades de almacenamiento. Aunque se trata de una forma de extracción de información para nada novedosa, se sigue comprobando que son muy pocas las entidades las que parecen conocer sus riesgos y que toman medidas en consecuencia. Además del robo de información, directamente hay que tener en cuenta que son muchas las redes que se han visto comprometidas tras ser infectadas a través de un USB. De hecho, una gran cantidad de redes educativas en colegios y universidades presentan problemas de seguridad asociados a la conexión de estos dispositivos, que son fácilmente infectables por gusanos que se aprovechan de sus vulnerabilidades y de la falta de experiencia de algunos usuarios. Las técnicas más habituales incluyen la introducción de toda clase de programas en el dispositivo USB, que son ejecutados cuando éste se conecta al ordenador haciendo uso sin permiso de las funcionalidades de arranque automático. Estos programas, pueden extraer contraseñas de usuarios del ordenador, datos introducidos en el navegador web, contraseñas de acceso a red, puertos activos, datos bancarios, etc., entre otra mucha información almacenada en los equipos. 2.1.3 Denegación de servicio Un ataque por denegación de servicio. (DoS, Denial of Service en inglés) tiene como objetivo imposibilitar el acceso a los servicios y recursos de una organización durante un período indefinido de tiempo. Por lo general, este tipo de ataques está dirigido a los servidores de una compañía, para que no puedan utilizarse ni ser consultados. La denegación de servicio es una complicación que puede afectar a cualquier servidor de la compañía o individuo conectado a internet. Su objetivo no reside en recuperar ni alterar datos, sino en dañar la reputación de algunas organizaciones con presencia en 17 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Internet y potencialmente impedir el desarrollo normal de sus actividades en caso de que éstas se basen en un sistema informático. Más adelante, se exponen algunos ejemplos recientes de ataques de estas características. En términos técnicos, estos ataques no son muy complicados, pero no por ello dejan de ser eficaces contra cualquier tipo de equipo que cuente con Windows (95, 98, NT, 2000, XP, etc.), Linux (Debian, Mandrake, RedHat, Suse, etc.), Commercial Unix (HP-UX, AIX, IRIX, Solaris, etc.) o cualquier otro sistema operativo. La mayoría de los ataques de denegación de servicio aprovechan las vulnerabilidades relacionadas con la implementación del protocolo TCP/IP. Generalmente, estos ataques se dividen en dos clases: - Las denegaciones de servicio por saturación, que saturan un equipo con solicitudes para que no pueda responder a las solicitudes reales. - Las denegaciones de servicio por explotación de vulnerabilidades, que aprovechan una vulnerabilidad en el sistema para volverlo inestable. Los ataques por denegación de servicio envían paquetes IP o datos de tamaños o formatos atípicos que impiden el funcionamiento normal de los servicios que brindan. Cuando varios equipos activan una denegación de servicio, el proceso se conoce como denegación de servicio distribuida (DDOS, Distributed Denial of Service). Las herramientas más conocidas para perpetrarlos son TFN (Tribal Flood Network) y Trinoo. 2.1.4 Spam El envío de spam o correo basura es otra realidad que afecta cada día a más ciudadanos. El envío de este tipo de emails trae consigo una problemática legal importante ya que el envío masivo de estos correos no es ilegal en algunos países como Rusia (Gabryluk, 2011), país desde el que se envía el 25% del spam a nivel mundial. También cifras de Trend Micro estiman que el promedio diario de correos basura entre enero y julio de 2010 osciló entre los 2.500 y los 3.000 millones. Así, el crecimiento del spam en los últimos años, ha estado asociado al cada vez más grande número de botnets y PC zombies registrados en todo el mundo. Según los expertos, un PC que forma parte de un botnet es capaz de mandar hasta 2,5 millones de correos basura al día sin que su dueño se percate de ello. Otras cifras relativas al envío de spam muestran que el 95% del mismo estaba escrito en inglés, seguido del español y del chino. El contenido más común de estos mensajes fueron las ofertas sobre acciones y comercio (28%), los fraudes (22%) y las ofertas de medicinas y salud (15%), habitualmente relacionadas con productos para combatir el sobrepeso o enfermedades sexuales. 18 PROYECTO FIN DE CARRERA 2.1.5 Fuga de información Tradicionalmente, la pérdida de datos y la fuga de información ha sido una de las principales preocupaciones para todas las empresas, grandes o medianas, con una cierta ventaja tecnológica que proteger de sus competidores. Sin embargo, hoy en día y cuando estamos asistiendo a un importante crecimiento del espionaje industrial, la lucha por el mercado es tan intensa que la prevención de que ocurran estas situaciones es de especial importancia para absolutamente todas las compañías, cualquiera que sea su tamaño y campo de actuación. La información perdida dentro de una compañía se puede clasificar, en función de las consecuencias que tenga en: - De consecuencias directas. Esta información incluiría el trasvase de datos y documentación sobre procesos o tecnologías, generalmente secretos industriales, que podrían ser aprovechadas por los competidores para acortar el gap entre una y otra empresa. - De consecuencias indirectas. Estas consecuencias indirectas incluyen el filtrado de información que genere una pérdida de la credibilidad de la compañía frente a sus clientes y o proveedores, como por ejemplo, información personal o bancaria, transacciones habituales o financiaciones de dudosa moralidad. Hay muchas maneras en que los datos confidenciales se pueden perder o ser compartidos con terceros de forma no deseada, entre las que destacan: - Empleados frustrados que puedan transferir datos en memorias USB llegando a acuerdos extraoficiales con empresas de la competencia. - Empleados negligentes que puedan enviar de forma involuntaria datos sensibles a una dirección de correo electrónico incorrecta. - Ordenadores portátiles, memorias USB, discos duros, smartphones, teléfonos o CD y DVD robados. - Administradores de servicios sin experiencia que pongan en práctica técnicas de almacenamiento inseguras. Al respecto, Google ya ha sido capaz de rastrear ciertos datos confidenciales de un servidor a causa de errores humanos similares. Tal y como describe Johnny Long (investigador y consultor de seguridad informática conocido en internet como j0hnny o j0nnyhax) en su libro Google hacking for penetration testers (Long, 2004), se busca emplear la capacidad del motor de Google para indexar los documentos y detectar aquéllos que, como facturas de clientes o datos personales, pudieran quedar expuestos. Esto ya ocurrió en 2007 con la empresa de telefonía ONO en un fenómeno que puso al descubierto información sensible de un importante número de clientes que ya 19 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS fue multada con 12.000€ en 2008 (Lombarte, 2008) porque un empleado compartiera por error datos de otros clientes en eMule10. - Una protección inadecuada de la red que pueda facilitar los ataques de hackers para perpetrar el robo de secretos industriales desde el exterior haciendo uso de troyanos u otras herramientas. Siendo cierto que no existe un sistema que pueda evitar el 100% de las pérdidas de datos, es conveniente tener en cuenta los riesgos potenciales de una fuga de estas características para minimizar las consecuencias de estas amenazas. Así, mantener los datos confidenciales en un ambiente claramente definido y monitorizado, es de vital importancia de cara a garantizar un control eficiente de éstos, dado que es mucho más fácil de supervisar, controlar y registrar todas las acciones realizadas sobre ellos. Además, la maduración de una política de concienciación de los empleados que los instruya para trabajar con datos secretos así como para comprender su responsabilidad sobre éstos, es otro punto a tener en cuenta. Los usuarios deben ser capaces de reconocer lo que es un secreto comercial y los riesgos asociados a una exposición de estos secretos en la competencia. Adicionalmente, crear una identidad corporativa que consiga que los empleados se sientan identificados con los objetivos y valores de la compañía ayudará también a minimizar estas amenazas. Además de usar sistemas de cifrado para compaginarlos con cualquier dispositivo de almacenamiento móvil que contuviera información sensible, como portátiles o memorias USB, la inclusión de sistemas de prevención de fuga de datos es también muy recomendable. Estos sistemas suelen identificar por sí solos el envío de información sensible, exigiendo la confirmación por parte del usuario y almacenando el origen y destino de los comunicantes, con el fin de rastrear con mayor facilidad las comunicaciones sospechosas en caso de que fuera necesario. 2.1.6 Control de los mecanismos de pago online Tanto clientes como proveedores, amparados por la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de Datos de Carácter Personal, no van a consentir que sus direcciones, números de teléfono, número de la Seguridad Social o tarjetas de crédito se vean comprometidos por un uso descuidado (y negligente) por parte de los empleados de cualquier empresa. Esta situación es especialmente comprometida en el caso de que alguno de estos datos confidenciales como números de tarjetas de crédito u otros detalles relacionados con el pago online se vean afectados. La principal recomendación para las empresas que trabajen con estos sistemas, es superar un proceso de auditoría que garantice el cumplimiento del Payment Card 10 eMule es un programa escrito en C++ para el intercambio de archivos con sistema P2P utilizando el protocolo eDonkey 2000 y la red Kad. Fue publicado como software libre para sistemas Microsoft Windows. 20 PROYECTO FIN DE CARRERA Industry para datos estándar (PCI DSS, siglas en inglés de estándar de seguridad de datos para la industria de tarjetas de pago). Sin embargo, aunque la superación de los 12 requisitos para la aplicación de esta norma podría suponer un coste excesivo para el presupuesto de muchas empresas medianas o pequeñas, se recomienda encarecidamente el cumplimiento de esta norma, a fin de evitar la pérdida de datos y proteger al sector de los daños que podría causar la aparición de un escándalo relacionado con un uso negligente. 2.1.7 Redes inalámbricas inseguras o mal diseñadas Es innegable que la tecnología de redes inalámbricas basada en el estándar IEEE 802.1111 tiene unos importantes beneficios en el mundo empresarial: la flexibilidad, movilidad, la reducción de costes de infraestructura de red (al reducir los costes de cableado), la fácil integración con dispositivos móviles y PDAs y la mejor escalabilidad de la red se unen a la utilización de internet gracias a un acceso cómodo y sencillo. Sin embargo, paralelamente, esta tecnología lleva aparejada una serie de riesgos que afectan directamente a la confidencialidad, integridad y a la disponibilidad de los activos empresariales si no se toman las precauciones necesarias. ARQUITECTURA DE UN ATAQUE WEP Según un estudio publicado en un congreso de la ISSA (Information Systems Security Association) en Los Ángeles, las claves WEP, el protocolo de seguridad más popular y utilizado en la actualidad, no son un mecanismo adecuado de protección. En el citado estudio, agentes del FBI demostraban que era posible crackear (entiéndase en este contexto descifrar o descubrir) una clave WEP con herramientas públicas y gratuitas en entre 5 y 10 minutos (aunque de hecho en la demostración del congreso se consiguió hacer en apenas 3 minutos) dadas las facilidades que ofrecen algunos sistemas de cifrado de datos en redes inalámbricas. Tradicionalmente, descifrar claves WEP había sido una tarea tediosa, ya que un atacante tenía que capturar cientos de miles o millones de paquetes, en proceso que duraba horas e incluso días dependiendo del volumen de tráfico de la red inalámbrica. La idea es que tras un número suficiente de paquetes interceptados, se podía usar un programa de crackeo WEP como Aircrack para descifrar la clave de la red. Sin embargo, con la aparición de las herramientas de crackeo de última generación que usaban una combinación de técnicas estadísticas basadas en la captura de vectores de 11 El estándar 'IEEE 802.11' define el uso de los dos niveles inferiores de la arquitectura OSI (capa física y de enlace de datos), especificando sus normas de funcionamiento en una WLAN. Los protocolos de la rama 802.x definen la tecnología de redes de área local y redes de área metropolitana. 21 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS inicialización12 y en la utilización de ataques de fuerza bruta13 y sus correspondientes diccionarios para romper claves WEP de 128 bits en minutos en lugar de en horas. Para esta prueba, el informático James C. Smith y el agente especial Geoff Bickers usaron herramientas públicas y accesibles y resaltaron que estaban haciendo una demostración de un ataque que cualquier otra persona podría realizar. Aunque es cierto que romper una clave WEP no necesariamente implica que el atacante vaya a tener la posibilidad de conseguir un acceso total a la red, sí que es conveniente resaltar la inclusión de mecanismos de seguridad complementarios, como VPN (Virtual Private Network) o servidores proxy14. Para realizar la citada demostración, el agente Bickers asignó a un punto de acceso el identificativo de red SSID «NETGEARWEP» tras lo cual cifró el punto de acceso con una clave de 128 bits, generada sencillamente mediante el tecleo de números y letras aleatoriamente. A continuación se dispuso a realizar el proceso que tendría que realizar un atacante modelo, empezando, primero, por detectar la existencia de la red. Para ello las dos herramientas más populares son Netstumbler para Windows y Kismet para usuarios Linux. Nótese que la mayoría de programas de crackeo WEP existentes son para Linux, por lo que muchos atacantes usarán estos equipos con herramientas como Kismet para no tener que cambiar de sistema operativo en cada paso. Mientras, un agente que ejecutaba Kismet inmediatamente encontró el punto de acceso NETGEARWEP, un tercer agente usaba su portátil para ejecutar FakeAP, un programa que confunde a las herramientas de escaneo de redes como Kismet generando señales de puntos de acceso inexistentes. Tras encontrar la WLAN, el siguiente paso es comenzar a capturar paquetes y convertirlos al formato pcap (del inglés packet capture o captura de paquetes). Estos archivos pcap serán entonces procesados por otros programas. Aunque existen herramientas comerciales y de código abierto, las dos favoritas suelen ser Kismet y Airodump (ahora parte de la suite Aircrack). Lo ideal, sería que un portátil llevara a cabo el proceso de escaneo mientras que otro equipo fuera el encargado de ejecutar el ataque, que es lo que hizo el equipo de agentes en este caso. 12 Un vector de inicialización es un número semialeatorio de 24 bits compartidos entre ambos extremos de la comunicación. 13 Ataque de fuerza bruta. En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso. 14 Un proxy, en una red informática, es un programa o dispositivo que realiza una acción en representación de otro, esto es, si una hipotética máquina «A» solicita un recurso a una máquina «C», lo hará mediante una petición a «B»; de modo que «C» no sepa que la petición original provenía de «A». Su finalidad más habitual es permitir el acceso a internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado. 22 PROYECTO FIN DE CARRERA Figura 2-1. Buscando redes inalámbricas en sistemas Linux. Así, los agentes utilizaron entonces alrededor de media docena de programas, los cuales fueron dados a conocer al final de la demostración y que, por tanto, son de público acceso por parte de cualquier aficionado a la informática. De hecho, existen Live-CD15 como el Auditor’s Security Collection, que tiene en su interior una colección de herramientas ya instaladas que son utilizadas incluso por el FBI. Si un hacker tiene la suerte de encontrarse una red de tráfico intenso, el escaneo pasivo puede proveer de suficientes paquetes buenos para llevar a cabo el proceso. Pero en la mayoría de los casos hace falta una serie de ataques que generen más tráfico en la red. Estos ataques, al generar tráfico anormal, pueden ser detectados y provocar la alerta en el objetivo del mismo. De esta manera, los agentes usaron la funcionalidad deauth del programa void11 para desconectar repetidamente el portátil del punto de acceso. Esto generaba tráfico adicional, ya que Windows XP intenta siempre, reconectar al usuario al perder la conexión, pudiendo así recoger los paquetes enviados. 15 Una distribución live o Live CD o Live DVD, es un sistema operativo (normalmente acompañado de un conjunto de aplicaciones) almacenado en un medio extraíble, tradicionalmente un CD o un DVD, que puede ejecutarse desde éste sin necesidad de instalarlo en el disco duro de una computadora, para lo cual usa la memoria RAM como disco duro virtual y el propio medio como sistema de archivos. 23 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Figura 2-2. Proceso de captura de paquetes en un ataque a redes inalámbricas. Otro ataque utilizado por los agentes es el denominado replay attack (o ataque de repetición). La premisa básica de este ataque es capturar al menos un paquete que viaje desde el portátil de la víctima hasta el punto de acceso, con lo que dicho paquete puede entonces ser replicado e introducido de nuevo en la red repetidamente, causando así la respuesta del punto de acceso en forma de nuevos paquetes que pueden, a su vez, ser capturados. Aireplay (también parte de la ya mencionada suite Aircrack) puede ejecutar este último ataque a base de capturar paquetes ARP (del inglés, Address Resolution Protocol, protocolo de resolución de direcciones), que son transmitidos a intervalos regulares tanto en las tradicionales redes cableadas como en las inalámbricas, y son fáciles de interceptar. Aireplay escanea automáticamente un archivo pcap capturado, extrayendo el fragmento ARP y reintroduciéndolo de nuevo en el tráfico de red. Después de aproximadamente 3 minutos de capturas y crackeos, los agentes descifraron la clave WEP, mostrándola en pantalla, impresionando incluso al propio Agente Bickers que afirmó que se trataba de un proceso que «normalmente tardaba de 5 a 10 minutos». A nivel empresarial, los riesgos para la seguridad de la información que supone disponer de una red inalámbrica indebidamente protegida se podrían resumir en los siguientes, lo cual le tiene que servir al lector para ser introducido acerca de las posibilidades que ofrece a potenciales atacantes una red inalámbrica indebidamente protegida. 24 Intercepción y escucha del tráfico en tránsito. Se permitiría al atacante espiar el tráfico de red viéndose comprometida la confidencialidad de los datos en curso, al dar la posibilidad de que se capturasen contraseñas, de que fuera leído el correo electrónico saliente o las conversaciones realizadas a través de la red o de que fuera obtenida información confidencial sobre la arquitectura de red de la organización y la infraestructura de sistemas como preparación de un ataque posterior. Acceso no controlado a la red interna corporativa. Esto podría ser utilizado por potenciales atacantes para acceder a sistemas internos normalmente no accesibles desde el exterior. El principal problema es que las contramedidas PROYECTO FIN DE CARRERA contra riesgos de seguridad habituales suelen estar desplegadas en el perímetro de la red, permitiendo habitualmente que, una vez dentro, el atacante tenga vía libre a todos los sistemas de la red interna. Acceso gratuito a internet. Mientras esto parece en apariencia inocuo, y los activos de información de la organización no se ven afectados, es una actividad que supone un uso no aceptado de recursos de la empresa por personal no autorizado. Además de afectar a la calidad y disponibilidad del servicio de red de los usuarios legítimos, puede suponer un problema legal para la organización si el intruso utiliza el acceso a Internet de la empresa para realizar acciones ilegales como comprometer servidores de la competencia o para acceder a contenido de Internet inapropiado (como por ejemplo, pornografía infantil). Denegación de servicio (del inglés Denial of Service o DoS). Los servicios de red inalámbrica 802.11 son especialmente vulnerables a diferentes ataques de denegación de servicio como la generación de un tráfico aleatorio excesivo o la generación de puntos de acceso falsos, que ralentizarían (cuando no suspenderían) el suministro de servicios de internet. En el año 2000 por ejemplo, Yahoo estuvo fuera de servicio durante 3 horas por culpa de un ataque de denegación de servicio (Areitio, 2008). Instalación de puntos de acceso fraudulentos. Un visitante a la empresa podría conectarse a la red con su portátil, de forma inadvertida o conscientemente, para servir como punto de entrada de virus, gusanos, troyanos o con cualquier otra finalidad. Por ejemplo, este atacante podría instalar un punto de acceso inalámbrico de forma que se confundiera con los puntos de acceso legítimos, provocando que un número indeterminado de usuarios se conectara al del atacante. Es así como se podría reenviar el tráfico a los puntos de acceso legítimos (aunque con cierta penalización en cuanto a velocidad) de forma que se implementaría un ataque man-in-the-middle16 consiguiendo que todo el tráfico de red de los usuarios afectados fuera monitorizado, almacenado y potencialmente alterado por el atacante. Aunque no existe una fórmula definitiva para terminar con las potenciales vulnerabilidades asociadas al uso de las redes inalámbricas, sí que existen una serie de recomendaciones acerca de cómo mitigar algunos de estos riesgos, tales como usar cifrado WPA (Wi-Fi Protect Access) o mecanismos adicionales de control de acceso por dirección física MAC y el uso de VPN (Virtual Private Networks) o de soluciones 16 Un ataque man-in-the-middle o JANUS (intermediario en castellano) es un ataque en el que el atacante adquiere la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que el enlace entre ellos ha sido violado. El atacante debe ser capaz de observar e interceptar mensajes entre las dos víctimas. 25 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS propietarias no soportadas por todos los fabricantes (lo que dificulta la explotación de sus vulnerabilidades al no poder ser utilizadas para desarrollar ataques genéricos). 2.1.8 Redes sociales Otro aspecto que seguirá siendo foco de preocupación de los usuarios durante el año entrante serán las amenazas a la privacidad asociadas al uso de las redes sociales. Las aplicaciones tendientes a exponer la información personal de los usuarios (con su propio consentimiento) seguirán aumentando y la educación de los usuarios para el cuidado de su información será primordial en este aspecto. Asimismo, los incidentes provocados por un mal uso de estas herramientas y la fuga de información por medio de las redes seguirán a la orden del día, y aquéllos que resulten en la exposición de información deberán ser atendidos con especial atención por los usuarios para poner a resguardo la información publicada, con la modificación de credenciales en caso de ser necesario. El apogeo de las redes sociales como medio de comunicación interpersonal está incentivando también a los desarrolladores de malware para lanzar nuevas aplicaciones que traten de explotar las vulnerabilidades de estas redes. La principal problemática que entraña el uso de estas redes es la confianza que depositan los usuarios en las publicaciones de sus contactos, publicaciones que, si son insertadas por atacantes, podrían servir para diseminar malware rápidamente de formal viral entre usuario y usuario. En marzo de 2011 BitDefender llamaba la atención sobre una nueva amenaza que afectaba a los usuarios de redes sociales (PCWorld, 2011), puesto que se venía registrando una nueva forma de diseminar malware aprovechando las posibilidades que ofrecen las redes sociales como Facebook o Twitter empleando un conjunto de técnicas conocidas como likejacking. El término toma su nombre del botón de «Like» («Me gusta») que aparece debajo de cada comentario o enlace compartido en la red social Facebook. Desde que este botón comenzó a ganar notoriedad, se han sucedido los ataques que lo utilizan como medio para diseminar malware con botones similares o incluso idénticos al estándar que utiliza la red social. Y es que el gran éxito que dicho el botón ha obtenido en la red social no ha pasado desapercibida para los ciberdelincuentes que ya lo están aprovechando para distribuir malware en Facebook. El procedimiento es el siguiente: un usuario hace clic en un vínculo distribuido a través de spam o dado a conocer en las redes sociales y va a parar a una web. Una vez ve el contenido que hay en la misma, la abandona. Sin embargo, sin su consentimiento, se publica en su muro de Facebook (lo cual es bastante sencillo dadas las facilidades que ofrecen las API17 de desarrollo para fomentar la creación de 17 Una interfaz de programación de aplicaciones o API (del inglés Application Programming Interface) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta 26 PROYECTO FIN DE CARRERA aplicaciones complementarias que interactúen con la aplicación) un enlace a esa misma web. El comentario aparece como si lo hubiera publicado el propio usuario y como si también hubiera dado al botón de «Me gusta» pudiendo inducir a error a los contactos que visualicen su perfil e iniciando una nueva cadena de infecciones. Llegado el caso, los ciberdelincuentes pueden incluso cambiar el contenido de la web y colocar en ella una página de phishing o malware disfrazado de codecs o plugins supuestamente indispensables para visualizar el contenido. De esta manera, los usuarios que lleguen a la misma no sólo verán cómo se publica un comentario sin su consentimiento en su propio muro de Facebook, sino que además podrían terminar con su ordenador infectado por malware. Para identificar un ataque de este estilo, BitDefender recomienda a los usuarios prestar especial atención a dos aspectos. El primero, el asunto del enlace. Si se trata de un tema sensacionalista, fantástico o morboso, la desconfianza es la mejor prevención. En segundo lugar, hay que prestar especial atención a la web en donde se almacena el contenido, ya que los ciberdelincuentes no suelen usar páginas populares de vídeo o audio para colgar su material, puesto que éstas realizan cuidadosos análisis de seguridad. Lo más habitual es que se utilicen webs menos populares, o incluso webs creadas a propósito para sus estafas, por lo que el uso de técnicas de whitelisting que permitan la visualización de páginas y contenidos alojados únicamente en servidores seguros, sería una buena política a emplear a nivel corporativo. Si se identifica que se ha sido víctima de uno de estos ataques, BitDefender recomienda eliminar el mensaje publicado en el muro y alertar a todos los amigos que pudieran haberse visto afectados sobre la falsedad del mensaje. 2.1.9 Dispositivos móviles Tradicionalmente, el principal campo de trabajo de los escritores de malware ha sido el de los equipos de sobremesa, ordenadores portátiles y servidores centralizados. Sin embargo, los teléfonos móviles ya no son lo que fueron y han evolucionado con rapidez. En una sociedad en la que la tendencia sigue apuntando en la línea de permanecer el mayor tiempo posible conectado, los tradicionales dispositivos que cumplían estrictamente la funcionalidad que les dio nombre (teléfonos móviles), han dado paso a las cada vez más numerosas capacidades de conexión de sus sucesores que, junto con las aún no suficientemente desarrolladas medidas de seguridad, han convertido a estos gadgets en un suculento objetivo para continuar haciendo el mal. Además, si tenemos en cuenta la gran cantidad de información confidencial (e. g., números de teléfono, cuentas de correo, direcciones, mensajes de texto, fotografías, itinerarios, etc.) que se almacenan en estos dispositivos, la sensibilidad de esta amenaza biblioteca para ser utilizado por otro software como una capa de abstracción. Son usados generalmente en las bibliotecas. 27 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS pasa a ser especialmente peligrosa a la vista de la errónea (pero común) percepción de que los dispositivos de bolsillo son menos vulnerables que los PC u otros equipos tradicionales. Tanto es así, que el 86% de los usuarios de estos dispositivos ni tan siquiera contempla la posibilidad de que este tipo de aplicaciones maliciosas hayan podido dar el salto a la telefonía móvil (Ishii, 2010), y eso que, a pesar de que en 2009 apenas había registradas 450 especies de malware para móviles (Apvrille, 2009) (lo que no deja de resultar un número reducido en comparación con las cifras de malware que se manejan para PC), ya se han detectado casos de aplicaciones maliciosas que han conseguido enviar centenares de de miles de mensajes a través de una red de más de 115.000 teléfonos infectados. De acuerdo a un informe publicado por Kaspersky (Kaspersky, 2011), el malware para móviles no sólo ha aumentado notablemente durante los últimos meses, sino que también se ha vuelto más sofisticado que nunca. La gráfica de la siguiente página muestra las plataformas más afectadas hasta diciembre de 2010. La mayoría de los troyanos son diseñados para enviar mensajes de texto a números de pago, dado que se trata de una de las formas más sencillas de ganar dinero, pudiendo generar gastos elevadísimos para compañía y usuarios. Sin embargo a medida que otras plataformas han ido ganando en popularidad, el malware ha ido evolucionando con ellas. En el citado informe (Kaspersky, 2011) se habla sobre los nuevos métodos utilizados por los ciberdelincuentes para hacer dinero con sus víctimas y los programas maliciosos más importantes que están afectando a las distintas plataformas (Symbian, Windows 1,410% ,380% ,380% ,190% 5,080% J2ME 5,640% Symbian Python Windows Mobile 29,260% 57,670% AndroidOS Sgold MSIL IphoneOS Figura 2-3. Sistemas operativos para móviles más infectados. 28 PROYECTO FIN DE CARRERA Mobile, iPhone, Android y J2ME, ver Figura 2-3). El desarrollo de una conexión permanente a internet, de las redes sociales y de la sensación de que el móvil es un dispositivo seguro, juegan a favor de los ciberdelincuentes, que tienen en los móviles una nueva herramienta desde la que ejecutar sus ataques. Este facto, en combinación con los permisivos accesos a las redes inalámbricas que se facilitan desde muchas compañías, puede suponer un cóctel explosivo que ponga en entredicho la seguridad de prácticamente cualquier organización. En las próximas fechas habrá que prestar especial atención a los siguientes puntos: a) Troyanos SMS. Actualmente, por desgracia, no existen premisas para que baje la cantidad de troyanos SMS y más aún teniendo en cuenta los vacíos legales existentes en la materia en muchos países que ofrecen a los delincuentes la posibilidad de usar los números para el envío de mensajes cortos desde el más absoluto anonimato. b) Crecimiento de la cantidad de amenazas para Android. Lo cual va intrínsecamente ligado al crecimiento de la popularidad de esta plataforma, un hecho que tampoco pasa por alto para los escritores de malware, que centrarán cada vez más sus actividades en el desarrollo de aplicaciones para ella. c) La cantidad de las vulnerabilidades descubiertas en diferentes plataformas móviles crecerá, y también es posible que lo hagan los ataques que las aprovechen. Aunque hasta hoy no se ha registrado ni un solo ataque de grandes dimensiones que use alguna vulnerabilidad crítica, esto no implica que no vaya a ocurrir en el futuro. Una de estas vulnerabilidades es la descubierta en iOS de Apple el 4 de agosto (el parche correspondiente se publicó el 11 de agosto) y que podía conducir a la ejecución de cualquier código en el sistema. Si el usuario trataba de abrir un PDF elaborado de una forma específica, esto podía causar el sobrepasamiento de la pila, permitiendo la ejecución, con los más altos privilegios, de cualquier código en el sistema. Sobre si se usó esta vulnerabilidad para lanzar ataques contra los smartphones no se tiene información a fecha de publicación de que esto fuera así. d) Crecimiento de la cantidad del software espía. Este tipo de software, que, como ya se ha indicado anteriormente, se puede usar para monitorizar las actividades de terceras personas, cobra gran importancia en el mundo del espionaje industrial al facilitar el envío y recepción de instrucciones o información confidencial (por ejemplo, correspondencia). Mención aparte merecen las tabletas digitalizadoras o tablets. Son precisamente estos dispositivos los que predominarán en 2011 dadas las numerosas posibilidades y las mejores prestaciones que brindan a sus usuarios en comparación con los smartphones: edición de documentos, navegación web cómoda, visualización de películas, juegos, etc., motivos por los que serán muy populares en el futuro. El iPad, que funciona con el 29 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS mismo sistema operativo que iOS del iPhone y que fue lanzado por Apple en 2010, es buen ejemplo de ello. En esta línea, se están empezando a vislumbrar algunos planes de producción de tablets con Android (como Galaxy, una tablet de 8,9 pulgadas) o Blackberry (como el que distribuirá próximamente la compañía RIM). Otro punto a tener en cuenta es que el smartphone y la tablet no son completamente intercambiables en todos sus modelos, ya que muchas de estas últimas no tienen aún incluida la función de teléfono. Por ello, es más que probable que si un usuario tiene una tablet, también tenga cuente con un smartphone, incrementando también la cantidad de blancos potenciales de los delincuentes y aumentando a su vez el número y las funcionalidades del malware potencialmente asociado. 2.2 ESTADO MALWARE DEL ARTE DE LA DETECCIÓN DE Dado el incremento de servicios y capacidades de los equipos informáticos actuales, son cada vez más numerosas las aplicaciones maliciosas que buscan explotar las vulnerabilidades que estos equipos presentan. Así, es un hecho constatable el del crecimiento exponencial de las variantes de programas maliciosos encontradas, hasta el punto de que los sistemas tradicionales de detección no pueden hacer frente al volumen de información que generado. Sin ir más lejos, y según datos de Kaspersky, en 2010 se generó una amenaza para Windows cada 15 segundos, o, lo que es lo mismo, el pasado año aparecieron más de 15 veces las amenazas que se crearon en 2007 o 50 veces las amenazas detectadas en el año 2006 (ver Figura 2-4). Y estas cifras mantienen la tendencia en lo que va de 2011, ya que la compañía PandaLabs ha advertido de un nuevo aumento del número de amenazas 2.500.000 2.093.444 2.000.000 1.588.005 1.500.000 894.250 1.000.000 500.000 31.849 39.670 2005 2006 133.253 0 2007 2008 2009 Figura 2-4. Crecimiento de las amenazas informáticas para Windows. 30 2010 PROYECTO FIN DE CARRERA informáticas que están en circulación, superándose con creces las cifras récord del pasado año. De hecho, en los primeros meses de 2011, se han creado diariamente una media de 73.000 nuevos ejemplares de malware. Comparativamente, los hackers crean un 26% más de nuevas amenazas informáticas en los primeros meses de 2011 comparado con el mismo período del año pasado. Si se atiende a las características de las amenazas más incipientes, es la categoría de los troyanos la que sigue siendo la más representativa, llegando a rozar el 70% del nuevo malware detectado. 2.2.1 Tendencias evolutivas del malware actual Como ya se ha expuesto anteriormente, la tradicional concepción de que el malware era escrito por usuarios expertos pero desorganizados ya no es válida. Mientras que antes estos programadores encajaban perfectamente en el perfil de jóvenes curiosos con conocimientos de programación, el perfil no-profesionalizado del diseñador de malware ha ido dejando paso al de grupos delictivos que operan en la clandestinidad con intereses mucho más terrenales. Mientras algunas líneas de desarrollo tratan de hacer uso de las más novedosas técnicas de ataque explotando las vulnerabilidades de tecnologías emergentes, otras siguen tendencias más continuistas empleando vectores de ataque y herramientas ya conocidos de años anteriores, pero que, realizando pequeñas modificaciones, siguen estando dotadas de una alta capacidad de infección. Así, se estima que las vulnerabilidades de software seguirán siendo uno de los vectores de infección más importantes para los creadores de malware, ya que permiten la ejecución de código sin la intervención del usuario, y por lo tanto la infección puede pasar desapercibida para la víctima hasta que no aparezcan síntomas en el sistema. En este contexto, las vulnerabilidades del tipo 0-day (vulnerabilidades para las que aún no existe parche de seguridad disponible al no haber sido detectadas por las distribuidoras) representan una oportunidad de oro para los atacantes, y que seguirá siendo aprovechada a medida que éstas aparezcan. En el caso del gusano Stuxnet, de 2010, ESET Latinoamérica detalló la cronología del ataque, indicando, según sus analistas, que pasaron 16 días desde la publicación de la vulnerabilidad hasta la existencia de un parche definitivo por parte del fabricante. Esta ventana de tiempo permitió que varios códigos maliciosos pudieran haber actuado sin oposición, causando numerosos problemas en entornos informáticos y atentando contra la seguridad de la información. Solo aquellos usuarios que utilizaran software antivirus con capacidades proactivas de detección, como ESET NOD32 o Panda Cloud Protection, estuvieron protegidos durante esa ventana de tiempo en que la vulnerabilidad estuvo capacitada para ofrecer a los atacantes los mecanismos que necesitaban para causar daños. 31 2. 2.2.2 ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Apogeo de las botnet y el malware a partir de 2011 Sin embargo, no sólo las vulnerabilidades 0-day son aprovechadas por los atacantes, ya que cualquier tipo de vulnerabilidad es una puerta abierta a ser empleada por los desarrolladores de malware, y es que más allá de la existencia o no de un parche, las vulnerabilidades seguirán siendo explotadas por el nuevo malware. Los gusanos de este tipo serán probablemente las amenazas que más se destaquen por sus altos índices de infección durante el próximo año. El rol del usuario, como eslabón más débil de la cadena de seguridad, y el uso de software no licenciado aparecen como componentes fundamentales para justificar este escenario. Según estadísticas del año 2010, un 29,5% de los usuarios indicó no tener la costumbre de instalar las actualizaciones de seguridad para evitarse problemas relacionados a la actualización de software no licenciado. Otra de las realidades a las que habrá que hacer frente en el futuro es al apogeo de las botnet. El último caso detectado a fecha de publicación de este documento, saltaba a la prensa el 14 de abril de 2011 (El País, 2011). La botnet, de 2 millones y medio de ordenadores (1,8 de los cuales se encontraban en Estados Unidos), llevaba ya 10 años operativa y era utilizada para incrustar el virus Coreflood con la intención de robar datos de sus propietarios mediante la lectura de la información introducida por teclado. En la operación, 5 servidores y 29 nombres de dominio fueron requisados por las autoridades estadounidenses, que consiguieron desmantelar un negocio que había reportado a sus propietarios más de 100 millones de dólares. Pero no están solamente orientadas a la captura de información sensible. Como ya se ha indicado, el envío de spam reporta miles de dólares diarios a los botmasters que gestionan algunas de las principales botnets. De hecho, el 18 de marzo de 2011, apenas unas semanas antes de que se detectara la botnet anteriormente mencionada, se consiguió paralizar la actividad de otra red como Rustock, que estaba especializada en el envío masivo de correo comercial basura y que según Symantec, era responsable del envío del 39% del spam a nivel mundial al enviar 30.000 millones de correos basura diarios(Salvatierra, 2011). Según cálculos de Microsoft, una máquina infectada por este bot era capaz de enviar 7.500 mensajes de spam en tan solo 45 minutos. En las mismas fechas, la plataforma de blogging18 más importante a nivel mundial, Wordpress, se ponía en contacto con sus usuarios para ponerles sobre aviso acerca de un ataque perpetrado contra sus servidores (Mullenweg, 2011). En dicho comunicado recibido por todos los usuarios del servicio y hecho público a través del blog oficial del dueño de la compañía, se hacía saber que cualquier contenido almacenado en los servidores de Wordpress podía haber sido accedido por los atacantes. 18 Un blog o, en castellano, una bitácora, es un sitio web periódicamente actualizado que recopila cronológicamente textos o artículos de uno o varios autores, en donde el autor conserva siempre la libertad de dejar publicado lo que crea pertinente y donde aparece el primer artículo el que es de más reciente publicación. 32 PROYECTO FIN DE CARRERA Estos sucesos tienen que servir para que el lector se haga a la idea del alcance potencial que estos ataques pueden tener en el futuro, más aún, si se tiene en cuenta que Wordpress, como empresa con un negocio netamente digital, es especialmente cuidadosa con todos los aspectos relativos a la seguridad. En este sentido, es casi un hecho que las nuevas líneas de actuación del malware utilizarán las posibilidades que ofrecen las redes sociales como Facebook, Twitter o Tuenti para expandirse e intercomunicarse. 2.2.3 Clasificación El malware, en función de las características propias de cada aplicación maliciosa, puede clasificarse en: virus, hoax, troyanos, spyware, bombas lógicas o bots, existiendo a su vez varias subdivisiones internas en función de las características concretas de cada programa. A continuación se detallan las características de cada una de las variedades de malware mencionadas: Virus: Un virus informático es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el código de éste. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque también existen otros más inofensivos, que solo se caracterizan por ser molestos. Los virus informáticos tienen, básicamente, la función de propagarse a través de un software, no se replican a sí mismos porque no tienen esa facultad como el gusano informático, son muy nocivos y algunos contienen además una carga dañina (o payload en inglés) con distintos objetivos, desde una simple broma hasta realizar daños importantes en los sistemas, o bloquear las redes informáticas generando tráfico inútil. El funcionamiento de un virus informático es conceptualmente simple. Se ejecuta un programa que está infectado, en la mayoría de las ocasiones, por desconocimiento del usuario. El código del virus queda residente en la memoria RAM de la computadora, aun cuando el programa que lo contenía haya terminado de ejecutarse. Es entonces cuando el virus toma el control de los servicios básicos del sistema operativo, infectando, de manera posterior, archivos ejecutables que sean llamados para su ejecución. Finalmente se añade el código del virus al programa infectado y se graba en el disco, con lo cual el proceso de replicado se completa. Algunas de las acciones ejecutadas más habitualmente por los virus son: - Unirse a un programa instalado en el ordenador permitiendo su propagación. 33 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS - Mostrar en la pantalla mensajes o imágenes humorísticas, generalmente molestas. - Ralentizar o bloquear el ordenador. - Destruir la información almacenada en el disco, en algunos casos vital para el sistema, que impedirá el funcionamiento del equipo. - Reducir el espacio en el disco. - Molestar al usuario cerrando ventanas, moviendo el ratón... Hoax: los hoax no son virus ni tienen capacidad de reproducirse por sí mismos. En realidad, se trata de mensajes de contenido falso que incitan al usuario a hacer copias y enviarla a sus contactos. Suelen apelar a los sentimientos morales («Ayuda a un niño enfermo de cáncer») o al espíritu de solidaridad («Aviso de un nuevo virus peligrosísimo») y, en cualquier caso, tratan de aprovecharse de la falta de experiencia de los internautas novatos. Caballos de Troya o troyanos: El término troyano o caballo de Troya proviene de su homólogo anglosajón Trojan Horse. Se trata de un programa ejecutable, generalmente con fines maliciosos, que, aunque no se propaga por sí solo, tiene como objetivo alojarse en las computadoras para permitir el acceso a usuarios externos a través de una red local o de internet. Un troyano no es en sí un virus ya que posee una finalidad distinta. El virus, es un huésped destructivo y en cambio, el troyano no provoca daños necesariamente. Para que un programa sea catalogado como troyano tiene que acceder y controlar la máquina anfitriona sin ser advertido, normalmente tras instalarse bajo una apariencia inocua como puede ser una aplicación conocida, una imagen o un archivo de música entre otros. Una vez instalado parece realizar una función útil (aunque cierto tipo de troyanos permanecen ocultos) pero internamente realiza otras tareas de las que el usuario no es consciente. Una de sus funciones principales es la de espiar el equipo infectado instalando un software de acceso remoto que permite monitorizar al usuario legítimo. Existen ocho tipos principales de troyanos clasificados según la forma de penetración en los sistemas y el daño que pueden causar: 34 - De acceso remoto. - De envío automático de e-mails o spam. - De destrucción de datos. PROYECTO FIN DE CARRERA - Troyanos proxy, que asumen ante otras computadoras la identidad de la infectada. - Troyanos FTP (que añaden o copian datos de la computadora infectada). - Deshabilitadores de programas de seguridad (antivirus, cortafuegos, etcétera). - Ataque DoS a servidores hasta su bloqueo. - Troyanos URL, que conectan a la máquina infectada a través de conexiones de módem, normalmente de alto coste. Spyware o programas espía: por spyware se entiende un programa que se instala en un ordenador furtivamente para recopilar información acerca del uso del equipo en el que ha sido instalado y enviar dichos contenidos a empresas publicitarias y otras organizaciones interesadas, incluidos organismos oficiales para la investigación de delitos relacionados con la propiedad intelectual, con toda la problemática legal existente. Magic Lantern, un supuesto programa espía concebido por el FBI (Bridis, 2001) a comienzos de la década para recabar información sobre los usuarios. Los programas espía pueden ser instalados en un ordenador a través de un troyano o de un virus distribuido por correo electrónico o, en último caso podrían estar ocultos en programas aparentemente inocuos. La información que estos habitualmente recogen va desde mensajes y contactos del correo electrónico, hasta datos sobre la conexión a internet, historiales y hábitos de navegación o información insertada en formularios (como claves de correo, números de tarjeta de crédito, contraseñas, etc.). Esta información, almacenada en las cookies19, puede ser bloqueada por el usuario dado que su uso no está normalmente vetado a éste. Conviene no confundir el spyware con el conocido como adware, que es aquel software que durante su funcionamiento despliega publicidad en forma de ventanas, pop-ups (ventanas emergentes) o barras de herramientas para subvencionar económicamente una aplicación. Estos programas, aunque ocasionalmente puedan terminar realizando un seguimiento personal de los hábitos del usuario, no son, estrictamente, programas spyware. 19 Bombas lógicas: Una bomba lógica es una parte de código insertada intencionadamente en un programa informático que permanece oculta hasta que Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas. En ocasiones también se le llama "huella". 35 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS se cumplen una serie de condiciones preprogramadas, momento en que se ejecuta una acción maliciosa. Por poner un ejemplo, un programador puede ocultar una pieza de código que comience a borrar archivos en el momento en que sea despedido de la compañía a través de un trigger o disparador de base de datos que se active al cambiar la condición de trabajador del programador. Estas técnicas también son utilizadas por otras variantes de malware para esparcirse antes de ser detectadas. Muchos virus atacan sus sistemas huéspedes en fechas específicas, tales como el viernes 13, el anglosoján April fools' day o el día de los inocentes. Los troyanos que se activan en ciertas fechas son también llamados frecuentemente «bombas de tiempo». Nótese que para ser considerado una bomba lógica, la acción ejecutada debe ser indeseada y desconocida para el usuario legítimo del software. Por ejemplo, a los programas demos, que desactivan una cierta funcionalidad después de un tiempo prefijado, no se les identifica como bombas lógicas. Bots: por bot se entiende todo ordenador secuestrado que forma parte de una red clandestina de equipos controlados por un botmaster20. El fenómeno botnet (fruto de la combinación de las voces inglesas software robot networks) no es casual ni tampoco especialmente reciente. El desarrollo de complejas redes de equipos conectados y las posibilidades computacionales y funcionales que su coordinación puede proveer, no ha pasado por alto para el conjunto de profesionales de la informática ni tampoco para los escritores de malware, spammers u otros delincuentes cibernéticos. Es por tanto un tema recurrente que viene preocupando a las agencias de seguridad más importantes del mundo desde hace tiempo y que ha obligado a algunas agencias seguridad como la Europol a preparar a sus profesionales para poder hacer frente a las amenazas que este tipo de redes traen consigo en materia de privacidad, anonimato y seguridad corporativa (Europol, 2008). Paralelamente, se han llevado a cabo diversas operaciones policiales como la Operación Bot Roast (Federal Bureau of Investigation (FBI), 2007) de 2007, por la que el FBI detectó una botnet con un millón de ordenadores comprometidos (BBC News, 2007) o la que en febrero de 2010 permitió a la Guardia Civil en colaboración con Panda Labs la desarticulación de la botnet Mariposa con 12,7 millones de equipos que comprometían a usuarios y compañías de hasta 190 países (Corrons, 2010). Sin embargo, es precisamente por su relación con el problema del spam (o envío masivo de correo basura), que la lucha contra este tipo de redes contrae más importancia: la práctica totalidad del correo basura enviado a nivel mundial se 20 Botmaster, entiéndase como tal a la persona o entidad que controla una botnet. Dichos mecanismos de Command & Control pueden ser establecidos a través de IRC, redes P2P o conexiones http o https. 36 PROYECTO FIN DE CARRERA realiza a través de máquinas bajo control directo de los operadores de spam que se sirven de botnets para llevar a cabo dichos envíos actuando como botmasters (Fortinet, 2011). De acuerdo con SpamHaus, entre 300 y 400 spammers son responsables por sí solos del 80% del tráfico mundial de dichos contenidos maliciosos, cifras que Symantec a mediados de 2009, llegó a tasar en el 85% alcanzando el 90,4% del tráfico mundial de correos electrónicos en el mes de mayo del mismo año. De hecho, aunque ya en 2004 se estimaba que casi el 70% del spam enviado en esas fechas procedía de las botnets, en 2009 los números hablan de que estas redes eran responsables ya del 85% del tráfico de dichos contenidos. Los bots que nos encontramos en la actualidad y que suponen ya cerca del 25% de los intentos maliciosos de conexión, son una mezcla de amenazas anteriores muy relacionadas con otras áreas del malware: se propagan como gusanos, se ocultan como muchos virus y permiten el control remoto de la máquina infectada por terceras entidades. Estas circunstancias junto con otras evidencias que relacionan la escritura de código con un trabajo cooperativo (como sucede con SDBot, cuyo código está comentado incluso por distintos autores) dan pie a la proliferación de un gran abanico de variantes, modificaciones y mutaciones de éstos en función del objetivo específico para el que sean escritos. Gusanos: un gusano (también llamados IWorm del inglés, «I» de internet y worm de gusano) es un malware que tiene la propiedad de duplicarse a sí mismo y que se sirve de las partes automáticas de un sistema operativo que generalmente permanecen invisibles al usuario. A diferencia de un virus, un gusano no precisa alterar los archivos de programas, sino que reside en la memoria y se duplica a sí mismo. Los gusanos casi siempre causan problemas en la red (aunque sea simplemente consumiendo ancho de banda), mientras que los virus siempre infectan o corrompen los archivos de la computadora que atacan. Es algo usual detectar la presencia de gusanos en un sistema cuando, debido a su incontrolada replicación, los recursos del sistema se consumen hasta el punto de que las tareas ordinarias del mismo son excesivamente lentas o simplemente no pueden ejecutarse. 37 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Se suelen servir de las redes de computadoras para enviar copias de sí mismos a otros nodos (es decir, a otros terminales de la red) y son capaces de llevar esto a cabo sin intervención del usuario propagándose a través de internet, basándose en diversos métodos, como SMTP, IRC, P2P entre otros. Por ejemplo, éste es el caso del gusano Conficker, que está activo desde octubre de 2008, ocupando los rankings realizados por ESET Latinoamérica en cuanto a los códigos maliciosos más detectados mes tras mes. En la Figura 2-5 se muestran los datos sobre la distribución del malware actual en relación a la principal funcionalidad de éste. A pesar de las diferencias en cuanto a funcionalidad que presentan cada una de las variedades de malware descritas, la tendencia actual es la de la combinación de diferentes características para crear un software que cumpla con las necesidades específicas del programador. Así, puede ser habitual encontrar troyanos que son capaces de auto-replicarse a través de la red y que permiten el envío de información privada a terceras personas sin el permiso explícito del usuario. 2.3 INDUSTRIAS AFECTADAS POR EL MALWARE En el gráfico de la Figura 2-6 se muestra el número de infecciones registradas en diferentes sectores económicos siendo el sector educativo el más afectado por este fenómeno. Sin embargo, en esta figura no se señala el nivel de peligrosidad de las variantes detectadas, siendo, de hecho, el sector educativo el menos afectado en términos de peligrosidad como ya se comentará más adelante. De cualquier manera, según un reciente reporte de los laboratorios de seguridad de Trend Micro (Trend Micro. Trend Labs, 2010), se asegura que el 44% de todos los códigos maliciosos de la primera mitad del 2010 afectaron al sector educativo. En este 7,780% Troyano 9,350% 34,320% Troyano / Downloader Aplicación / Adware 14,790% Gusano Virus 15,460% Otros 18,290% Figura 2-5. Distribución de la población del malware actual. 38 PROYECTO FIN DE CARRERA análisis, se afirma que el número de ataques dirigidos a escuelas o recintos universitarios son reflejo del uso de programas viejos y software desactualizado entre los alumnos, combinando esto con el intenso uso de internet que hacen los jóvenes. Siguiendo al sector educativo, las industrias más infectadas por malware entre enero y julio de 2010 fueron: los gobiernos (en torno al 10%), industrias tecnológicas (10%) y el sector manufacturero (6%). El resto de los sectores alcanzaron niveles de entre el 3 y el 1%. Dada la gran cantidad de información personal sensible almacenada en los ordenadores personales es éste el plato más suculento para los cibercriminales y no es de extrañar que los troyanos representaran el 60% de todo el malware generado a nivel mundial y el 53% de las detecciones registradas por el laboratorio de Trend Micro. 2.4 CASOS DE ESTUDIO A continuación se comentan algunos casos de aplicaciones maliciosas con importantes consecuencias a nivel corporativo. Los casos seleccionados deben servir como muestra de los potenciales peligros que tiene el hecho de no disponer de unos equipos debidamente actualizados y protegidos. 2.4.1 Stuxnet, un malware orientado a dañar a la industria El caso de Stuxnet, ya mencionado en la introducción de este documento, viene a poner de manifiesto la creciente peligrosidad que plantean estas aplicaciones maliciosas. Este software, una vez instalado en un PC, utilizaba contraseñas de Siemens por defecto para 2% 2% 0% 1% 3% 1% 1% 10% 4% 0% 2% 0% 6% 0% 44% 4% 10% 3% 2% 0% 1% Banca Comunicación Educación Energía Bienes de consumo Finanzas Alimentación Gobierno Sanidad pública Asegiradoras Manufactureras Materiales Prensa Gas y petróleo Otros Inmobiliario Venta al por menor Tecnología Telecomunicaciones Transporte Utilidades Figura 2-6. Industrias afectadas por malware según cifras recogidas por Trend Micro. 39 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS buscar y tratar de ganar acceso a los sistemas que ejecutan el WinCC y PCS 7, programas denominados PLC (o de controlador lógico programable, por sus siglas en inglés). Estos programas se utilizan para administrar a gran escala sistemas industriales en las fábricas y en instalaciones militares o fábricas de productos químicos y energía. El software en cuestión, funcionaba, después de la infección, en dos fases: - En primer lugar, se cargaba la información de configuración sobre el sistema de Siemens a un servidor de Command & Control21. - A continuación, los atacantes son capaces de elegir un destino e incluso reprogramar la forma en que funcionarán los sistemas infectados a partir de entonces. La idea es que el programador del malware, al tener acceso a los mecanismos de programación del PLC, podrá enviar instrucciones específicas a las máquinas infectadas para cambiar la forma en la que el PLC actuará a partir de ese momento. A pesar de que los directivos de Siemens han afirmado que no se conocen casos en los que las plantas se hayan visto afectadas, la realidad demuestra que sí que habrían existido posibilidades reales de que esto ocurriera. De acuerdo con los analistas, herramientas como Stuxnet vienen con un rootkit22 encargado de ocultar los comandos de descarga de los operadores de los sistemas de Siemens, por lo que resulta aún más complicado para los auditores de seguridad detectar el envío y la recepción de estos comandos. Esto tiene una especial importancia si se tiene en cuenta que, incluso si los componentes del gusano de Windows se eliminan, el software de Siemens todavía podría contener comandos ocultos instalados por Stuxnet. Como recomendación, las empresas infectadas por este tipo de malware de última generación, deberían realizar una auditoría a fondo del código en su PLC o restaurar el sistema desde una copia de seguridad segura con el fin de estar a salvo de ejecutar código inyectado por programadores externos. Si bien Stuxnet ha infectado sistemas en el Reino Unido, América del Norte y Corea, el mayor número de infecciones, por el momento, fueron descubiertas en Irán (el 58,85%), Indonesia (18,22%) e India (8,31%) (Symantec, 2010). Las primeras muestras del código analizadas sitúan la creación de Stuxnet en torno a junio de 2009, pero expertos 21 Command & Control, o canales de comunicación por medio de los cuáles un programador gana acceso a las máquinas infectadas. Dependiendo de las características del software, los canales más utilizados son chats IRC, servidores http y https o redes P2P. 22 Un rootkit es una herramienta o un grupo de ellas, que tiene como finalidad esconderse a sí misma y esconder otros programas, procesos, archivos, directorios, claves de registro y puertos que permiten al intruso mantener el acceso a un sistema para, remotamente, ordenar la ejecución de determinadas acciones o extraer información sensible. 40 PROYECTO FIN DE CARRERA en seguridad creen que probablemente no comenzó a infectar los sistemas hasta principios de 2010. Stuxnet ha sido la primera creación de malware con el objetivo de dañar específicamente a plantas industriales. Si este gusano fuera utilizado para arruinar los sistemas en una planta química, energética o industrial, los resultados podrían ser devastadores. Además, el hecho de que se pueda controlar remotamente el funcionamiento de las plantas es un problema que, más que de ciencia ficción, está pasando a ser una realidad que podría ser utilizada con todo tipo de fines: industriales, políticos e incluso bélicos o terroristas. A fecha de publicación de este proyecto aún no se sabe a ciencia cierta quién está detrás de la creación de Stuxnet, pero algunos investigadores de renombre como Roel Schouwenberg (Kaspersky Lab) no descartan la interferencia de un estado o nación. Coincidiendo con su colega, Liam O'Murchu (Symantec) estaba de acuerdo en que el gusano fue diseñado y programado por atacantes particularmente sofisticados. Ahora bien, es poco probable que Stuxnet pudiera hacerse cargo de los nuevos sistemas en este punto. Tras descubrir el error, Symantec logro el acceso a los canales de Command & Control utilizados para enviar órdenes a las máquinas infectadas por Stuxnet, lo que significa que los atacantes en cuestión ya no tendrían una forma de enviar comandos de nuevo a los sistemas infectados, pero... ¿quién garantiza que el resto de equipos están libres de ser atacados en la actualidad? 2.4.2 Banca electrónica Desde hace varios años, las plataformas de banca electrónica se han posicionado como un canal cada vez más eficiente para desarrollar transacciones bancarias sin salir de casa o sin acudir a la oficina físicamente. Sin embargo, las plataformas de banca desde casa son aplicaciones web y por tanto, también están expuestas a los riesgos de internet. Adicionalmente hay que tener en cuenta que el riesgo que entrañan estos servicios es mayor, dado que, la intención final de los usuarios, es, precisamente, ejecutar una transacción financiera de forma inmediata, por lo que sus usuarios se convierten en un público altamente atractivo para cibercriminales. Los primeros ataques registrados con dicha finalidad comenzaron hacia el año 2003, cuando se inició el fenómeno del phishing. El phishing es un término informático que denomina un tipo de delito encuadrado dentro del ámbito de las estafas cibernéticas, y que se comete usando técnicas de ingeniería social que intentan adquirir información confidencial de forma fraudulenta (como puede ser una contraseña, o información detallada sobre tarjetas de crédito u otra información bancaria) al hacer pensar al usuario que está utilizando servicios bancarios legítimos, cuando en verdad está enviando la información a un atacante. El estafador, conocido como phisher, se hace pasar por una persona o empresa de confianza en lo que aparenta ser una comunicación oficial, habitualmente un correo electrónico, algún sistema de mensajería instantánea o, 41 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS incluso, haciendo uso de llamadas telefónicas. Su complejidad ha crecido en la medida que la industria bancaria ha ido adoptando tecnologías de seguridad destinadas a mitigar el problema. Gartner (Gartner, 2009), en su reporte The War of Phishing is Far From Over (en castellano, La guerra contra el phishing está lejos de acabarse), muestra las diferentes técnicas empleadas en los ataques sobre la población de los Estados Unidos, en donde más de 5 millones de consumidores perdieron dinero a causa de ataques de phishing o cualquiera de sus variantes, durante el año 2008. Algunos de los puntos que indican que las técnicas de phising seguirán estando presentes en la realidad financiera de las próximas fechas son los siguientes: - Los esquemas de autenticación implementados en la actualidad basan su robustez en las decisiones del usuario final, lo que hace que el esquema completo sea vulnerable a ataques de ingeniería social, especialmente si se trabaja con usuarios inexpertos. Por ejemplo, en esquemas de autenticación basados en one time password (OTP), es el usuario final quien debe determinar que está conectado con el sitio correcto para entregar la contraseña que se le solicita. - El gap de autenticación es un concepto técnico utilizado comúnmente para referirse a la vulnerabilidad intrínseca del proceso de autenticación. En ambientes altamente expuestos, como las plataformas de banca electrónica, este gap se refleja en el poco o ningún control que tiene la institución autenticadora (la institución financiera) sobre los elementos autenticados (en este caso, los usuarios) ya que no existe ningún control sobre el medio; entendiendo como tal, la conexión a Internet y el computador sobre el cual se accede a la plataforma de home banking. Así, es extremadamente complicado tener la certeza absoluta de que la comunicación no ha sido intervenida por el camino. Lo anteriormente expuesto abrió las puertas a organismos maliciosos para desarrollar ataques contra plataformas de banca electrónica, concentrando sus esfuerzos en ataques de pharming23 y malware que permiten, mediante el envenenamiento del archivo host, añadir nuevas entradas para redireccionar a páginas que no son las legítimas el tráfico destinado a las entidades financieras que se pretenda acceder. Existen ataques más sofisticados que involucran tanto el uso de malware, como pharming y un proxy de man-in-the-middle. En estos ataques, los sitios de banca 23 Por pharming es la explotación de una vulnerabilidad en el software de los servidores DNS (Domain Name System) o en el de los equipos de los propios usuarios, que permite a un atacante redirigir un nombre de dominio (domain name) a otra máquina distinta. De esta forma, un usuario que introduzca un determinado nombre de dominio que haya sido redirigido, accederá en su explorador de internet a la página web que el atacante haya especificado para ese nombre de dominio 42 PROYECTO FIN DE CARRERA electrónica objetivo del ataque, son redireccionados mediante un ataque similar al anteriormente descrito a la dirección de loopback 127.0.0.1 ó localhost; en donde está corriendo un proxy de man-in-the-middle que toma una muestra de las comunicaciones entre el cliente y servidor y permite, tanto modificar los mensajes en tiempo real por parte del atacante, como recabar información acerca del usuario final. La plataforma de captura le proporciona al atacante toda la información necesaria para: secuestrar la sesión a través de las cookies de sesión y las credenciales de acceso (incluyendo el OTP, para usar el cual, solo tendrá entre 30 y 60 segundos antes de que sea invalidado por los servicios bancarios, lo que, sin embargo, debería ser tiempo más que suficiente para perpetrar el robo). Protección 24 Coste: [1-5] siendo 1 más barato Seguridad: [1-5] siendo 1 el menos seguro Sí Sí No No No No No No No No Sí Sí No No No Sí Sí Sí No No Sí Sí No Sí No No Sí Sí No No No No No No No No No No Sí No Sí Sí Sí No No 1 5 2 2 1 1 3 4 4 1 3 2 4 1 1 3 3 5 Sí Sí Sí Sí 4 5 Sí Sí Sí Ofrece protección multicapa No No No Sí No No Sí No Sí Implementa autenticación User to Service Es de fácil administración No No No Sí No No Sí No Sí Resiste ataques de ingeniería social Resiste ataques de man-in-the-browser No Sí Sí Sí No No Sí Sí Sí Es de fácil implementación Resiste ataques the man-in-the-middle Contraseñas One Time Password (OTP) Tarjetas de coordenadas Autenticación de dispositivos Autenticación de imágenes Preguntas de desafío USB tokens Certificados digitales Autenticación+Detección de Malware Uso de frameworks de autenticación como DetectID 24 de Easy Solutions Ofrece autenticación fuerte Factores Tabla 2-1. Relación de dispositivos de seguridad y de la protección que ofrecen ante ciertas amenazas. Sí DetectID es una solución de autenticación innovadora que implementa un esquema de dos factores de autenticación utilizando un algoritmo propietario, mediante la ampliación del proceso de autenticación en el dispositivo cuando las operaciones se están iniciando. Trabajando a nivel de dispositivo, DetectID captura información de hardware específica que se utiliza junto con el algoritmo propietario para definir la huella digital. Este esquema permite la creación de dos escenarios factor de autenticación ya que la combinación de usuario/contraseña está también ligada a los dispositivos de modo que DetectID puede definir, en tiempo real, el nivel de confianza que se puede esperar de cualquier transferencia bancaria por Internet. 43 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Vulnerabilidades de este tipo deben ser tenidas en cuenta si se va a establecer cualquier negocio cuyas transacciones vayan a ser realizadas online, ya que cualquier fallo de seguridad aprovechado por un hacker podría suponer, no sólo un impacto económico importante por la cuantía del robo en sí, sino un daño irrecuperable para la imagen de la compañía de cara al cliente. En la Tabla 2-1 se muestra una comparativa de los diferentes métodos de autenticación que existen y de la resistencia a diferentes amenazas que afectan a las principales plataformas de banca electrónica. Desde el 3 de diciembre de 2008, cuando apareció el primer gran malware de robo de passwords disfrazado de un plug-in25 de Mozilla que robaba información enviada a más de 100 sitios financieros incluyendo entre otros, anz.com, bankofamerica.com, lloydstsb.co.uk y paypal.com. Gartner, en otro de sus reportes (Gartner, 2008), considera que este tipo de ataques serán copiados y mejorados en la medida en que los criminales continúen innovando para tener accesos no autorizados a cuentas financieras. Así, es recomendable implementar estrategias de autenticación robustas para fortalecer el proceso de verificación de la identidad, no solamente por la presión en el cumplimiento de regulaciones, sino por la alta exposición de las plataformas de banca electrónica a ataques de phishing y pharming que pueden comprometer la imagen de la organización. En el proceso de definición de estrategias de autenticación es importante tener en cuenta los diferentes vectores de ataques de phishing y pharming. Algunos se presentan a continuación: 25 - Ataques de ingeniería social que engañan al usuario final. - Ataque de man-in-the-middle que escuchan la comunicación entre el cliente y el servidor. - Ataques de man-in-the-browser que redirigen el usuario final a sitios replica para intentar robar las credenciales del usuario final. - Ataques de malware que envenenan el archivo host y/o DNS para redireccionar al usuario a sitios réplica de los reales donde se intentará robar las credenciales. - Trojan proxy que instalan un redirector de HTTP26 que corre en la dirección local 127.0.0.1 y redirige así todo el tráfico del navegador a dicho proxy para tomar una copia de los mensajes y enviarlos al atacante. Un plug-in o complemento es una aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy especifica. Esta aplicación adicional es ejecutada por la aplicación principal e interactúan por medio de la API. También se les conoce como add-ons o extensiones. 26 Hypertext Transfer Protocol o HTTP (en castellano, protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y la Internet 44 PROYECTO FIN DE CARRERA De lo anteriormente expuesto se puede concluir que no existe una única estrategia que cubra las diferentes amenazas a las que está expuesta una plataforma de banca electrónica. Por el contrario, un enfoque de protección por niveles resulta la mejor alternativa de protección para procesos de autenticación masivos en aplicaciones altamente expuestas en internet; en una mezcla de diferentes factores que permitan: - Blindar el ciclo de autenticación de procesos maliciosos que puedan estar afectando la estación del usuario final. - Proporcionar estrategias de autenticación user-to-site que permitan al usuario final identificar que está interactuando con el sitio al que realmente quiere conectarse. - Hacer uso de tarjetas de coordenadas y de otros elementos dinámicos que hagan más difícil para los estafadores robar las claves a la hora de realizar transferencias por internet. De esta manera, con cada acceso se necesitará una coordenada distinta, que es aleatoria y que vencerá con cada sesión. Las tarjetas de coordenadas suelen posee al reverso una matriz de coordenadas, organizadas en filas y columnas en donde las columnas están marcadas con letras y las filas con números. Es el caso, por ejemplo, de la tarjeta de coordenadas BBVA Provinet que distribuye las claves en una matriz de 80 casillas. - Implementar factores de autenticación que eliminen la decisión del usuario de la ecuación de autenticación, para evitar equivocaciones y minimizar los riesgos de ataques de ingeniería social. - Implementar factores de autenticación basados en el conocimiento del usuario (lo que el banco conoce del usuario final). - Implementar factores de autenticación basados en herramientas que el usuario tenga que tener físicamente consigo (OTP enviados telefónicamente, dispositivos USB, etc.). - Ofrecer protección complementaria para la estación del usuario final. - Comunicar al usuario final acerca de la ocurrencia de transacciones potencialmente fraudulentas o sospechosas e implementar métodos de aprendizaje automático que permitan detectarlas. 2.4.3 En el sector de las telecomunicaciones Diferentes consultorías han venido demostrando en las últimas fechas que el aumento de la disponibilidad de software malicioso en el campo de los teléfonos y dispositivos Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. 45 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS móviles ha aumentado considerablemente. Con un aumento del 46% tan sólo en el año 2010, estas cifras son bastante importantes teniendo como parámetro de comparación el año anterior. Se observa que, a medida que los usuarios disponen de un mayor y mejor acceso a internet desde sus móviles, son también mayores las amenazas a las que tienen que hacer frente en cuanto a software potencialmente dañino, no sólo en cantidad sino que también en peligrosidad. Esto es especialmente reseñable si se tiene en cuenta la sofisticación de algunos programas que son capaces de saltar de plataforma en plataforma para llevar a cabo los diferentes ataques. En cuanto a las posibilidades de penetración y cuáles son los canales de contagio señalados por los desarrolladores de estos script, todo indica que los elementos favoritos corresponden a archivos de imágenes y documentos en formato PDF (en los que también puede quedar embebido código malicioso) así como todo lo que tenga relación con la tecnología de Flash, dada la fama de los juegos y aplicaciones para móviles y smartphones. 2.4.4 Brechas de seguridad asociadas al uso de programas no licenciados en las Pequeñas y Medianas Empresas Tal como anunciara un estudio de ESET en 2010, la región latinoamericana ya no es una mera receptora de malware y ataques, sino que también está en crecimiento el desarrollo de códigos maliciosos y otras amenazas, aspecto que seguirá evolucionando a lo largo de los próximos años. Durante 2010 se generaron ataques de todo tipo en la región, desde aquellos basados en la Ingeniería Social, utilizando temas tan populares como el rescate de los mineros chilenos o el terremoto que asoló Chile a principios de año o la situación política en Ecuador y Venezuela. Estos temas tan en boca de todos fueron aprovechados para propagar malware, motivando también técnicas de phising relacionados con la propagación de troyanos bancarios en Brasil y otros países de la zona (como Argentina). Latinoamérica destaca también a nivel mundial en el envío de spam e incluso en cuanto al mantenimiento de botnets en países como México o Argentina. Los atacantes en la región están creciendo producto de los avances tecnológicos, el acceso a Internet y a la información, y el crecimiento de la comunidad delictiva digital, factores que seguirán presentes durante 2011. Sin embargo, el público en general no es consciente de los peligros que entraña esta realidad. De hecho, un 29,5% de los latinoamericanos afirmó no tener la costumbre de instalar las actualizaciones de seguridad. Cuando fueron consultados sobre cuál es el principal motivo por el cual no se tiene esta costumbre, el resultado del estudio fue abrumador: la falta de licencias de software. Los usuarios de software no licenciado arguyen que en muchos casos las actualizaciones de seguridad poseen mecanismos para detectar estas copias no legítimas de software, y es por ello que muchos de ellos prefieren evitar la posibilidad de ser detectados a 46 PROYECTO FIN DE CARRERA Otros 2% Incidentes de la seguridad informática 6% Pérdida o daños en la información manejada 14% Fallos críticos de los sistemas 17% Gastos inesperados de mantenimiento 17% Fallos menores en los sistemas 41% Verse afectado por malware 69% 0% 10% 20% 30% 40% 50% 60% 70% 80% Figura 2-7. Riesgos asumidos por los empresarios que utilizan software no licenciado. cambio de correr, sin saberlo, muchos otros riesgos. Sin embargo, cuando se consultó a las pequeñas y medianas empresas sobre cuáles eran los problemas ocasionados por el uso de software ilegal, apenas 7 de cada 10 encuestados contemplaban la posibilidad de verse afectados por un virus mientras que 4 de cada 10 afirmaban asumir el poder encontrarse con errores menores en el sistema tal y como se muestra en la Figura 2-7. Es decir que el principal motivo por el cual no se instalan las actualizaciones de seguridad en las aplicaciones es la falta de licencia de software. Esto resulta muy relevante: tres de cada diez usuarios no mantienen seguro su sistema por tener versiones del software no licenciadas. En regiones como Latinoamérica, donde las tasas de piratería son particularmente altas, esto representa un riesgo más que importante para los usuarios de computadoras. Países como Venezuela se ubican en el primer lugar entre los países que utilizan sus aplicaciones sin licenciarlas, con una tasa del 89,7%, seguidas por otros como Paraguay (82%), Guatemala, Bolivia y El Salvador (todas con el 80%). Incluso países como Uruguay (68%) o Perú (70%) que se ubican entre las menores tasas, representan valores altos que superan la mitad de los usuarios. Como ya se ha señalado anteriormente, el phishing es otra de las amenazas que crece particularmente en Latinoamérica y que ya es desarrollado tanto por atacantes locales como por atacantes foráneos, especialmente en aquellos casos en los que se intentan obtener credenciales bancarias de instituciones latinoamericanas. En países como Brasil, este fenómeno sufrió un crecimiento del 159% en el tercer trimestre del 2010 con respecto al mismo período del año anterior. 47 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS Los datos publicados entonces, son consistentes con el informe realizado por Prince & Cooke (Prince & Cooke, 2010), Riesgos y costes de la Piratería en PyMEs en América Latina, donde fueron consultadas más de 3.650 pequeñas y medianas empresas de 12 países sudamericanos. Los números que arrojó este estudio eran bastante claros con respecto a la adquisición de licencias de software como parte integral de la concienciación acerca de la seguridad corporativa. Según el informe, el 63% de los programas de software en Latinoamérica fueron conseguidos de forma ilegal lo que supera ampliamente las tasas del 43% de piratería a nivel global (también elevadas en otras regiones del planeta pero menos asociadas al software empresarial). 2.4.5 Defensa nacional Las empresas contratistas de defensa, como empresas con una valiosa propiedad intelectual, se ven particularmente afectadas por estos ataques. Más aún, si se tiene en cuenta que la tecnología que manejan estas compañías es de gran interés, no solamente para empresas de la competencia que quieran mejorar su posición en el mercado sino que también para potencias extranjeras que se quieran adueñar de las tecnologías que emplean países vecinos en materia militar. Y los problemas se acentúan si no se implantan los mecanismos adecuados para poner a resguardo esa información. A este respecto, una auditoría hecha pública en el 2006 (Departamento de Defensa, 2006) ponía al descubierto que los sistemas informáticos responsables de los radares, lanzamientos de misiles y centros de mando tenían graves deficiencias en aspectos de seguridad. En este caso, el organismo responsable de la realización de auditorías en el ejército de los Estados Unidos publicó a mediados de febrero de ese año un informe titulado Select Controls for the Information Security of the Ground-based Midcourse Defense Communications Network, donde se analizaban los sistemas informáticos responsables del control de la defensa terrestre. Entre los elementos controlados se encontraban, entre otras, las bases de lanzamientos de misiles tierra-aire y los centros de mando. Si detectar la ausencia de procedimientos o normativas referentes a la seguridad informática en cualquier organización ya es suficientemente grave, hacerlo en centros tan sensibles y donde cualquier error o ataque podría llegar a tener resultados fatales (desde el asesinato de víctimas civiles hasta una crisis internacional) debería, sin duda, hacer reflexionar a las autoridades. La auditoría revelaba cómo algunas de las empresas subcontratadas por el gobierno norteamericano, como Boeing y MDA, y que tenían responsabilidad directa sobre las comunicaciones y parte de los sistemas informáticos, venían haciendo caso omiso de las normas y recomendaciones de seguridad más básicas. Una de las carencias más destacadas, fue la utilización de contraseñas compartidas que, además, se transmitían a través de enlaces que sin cifrar o proteger de ninguna forma, creando una importante brecha de seguridad ante cualquier error de un usuario descuidado que compartiera información con quien no debiera. Huelga decir que la 48 PROYECTO FIN DE CARRERA interceptación de estas contraseñas hubiera podido comprometer la seguridad global del sistema. Además, el tráfico de la red no se encontraba monitorizado por norma, dado que, según las empresas subcontratadas, la monitorización de la misma no era entonces un requisito en el contrato. Otro importante error, hacía referencia a la gestión de cuentas de usuarios, cuya manipulación no era controlada. Se llegó al extremo de que cualquier administrador de sistemas disponía de la capacidad de crear nuevas cuentas de usuario y de asignar los permisos que creyera convenientes, sin que quedara constancia en ningún lado de que, (a) se hubieran creado nuevas cuentas y (b) quién las había creado. Todas estas deficiencias son aún más relevantes si se conocen las dimensiones de la red: más de 320.000 kilómetros de fibra óptica repartidos por 30 estados con decenas de miles de sistemas informáticos conectados. En una red de esta magnitud, la falta de procedimientos de seguridad particularmente rigurosos tiene como resultado que la gestión de la seguridad sea completamente ficticia. Después de hacerse pública la existencia de este informe, que estuvo disponible en la web del ejército de los Estados Unidos durante varios días, fue posteriormente retirado. Anecdóticamente, se puede señalar que no es la primera vez que el ejército norteamericano tiene que hacer frente a problemas relacionados con riesgos de seguridad. Hace unos años, el secretario de defensa de los presidentes Kennedy y Johnson, Robert Strange McNamara reveló otro preocupante dato: durante años el famoso código presidencial necesario para permitir el lanzamiento de un ataque nuclear fue la simple sucesión de ocho ceros, permaneciendo inalterado durante los momentos más críticos de la guerra fría y hasta 1997. 2.4.6 En el sector privado En enero de 2010, la propia multinacional de la informática Google, reconoció ser el blanco de un esfuerzo sofisticado de robo de datos bautizado como operación Aurora y conocido como el ciberataque más sofisticado de la historia que afectó, según McAffee, a otras 34 empresas multinacionales (Zetter, 2010). Si bien es cierto que se tienen dudas de cuáles son los organismos que se encuentran detrás del ataque, sí que se detectó que toda la información robada era direccionada a un servidor localizado en China. Sin embargo, la naturaleza del ataque no permite detectar con claridad quién es exactamente el culpable ya que el hacker pudo haberlo lanzado desde cualquier otro país y únicamente hospedar su troyano en China. De cualquier manera, Google acusó en marzo de 2010 (Associated Press, 2011) al gobierno de la República Popular por no tener las regulaciones suficientes para proteger a las empresas que operan en el país de ataques de estas características. Otro caso más antiguo que saltó a la luz pública es el acontecido el 2 de octubre de 2003 día en que Yung-Hsun Lin, también conocido como Andy Lin, cambió código en un 49 2. ANÁLISIS DEL IMPACTO DE INTRUSIONES EN SISTEMAS CRÍTICOS servidor de Medco Health Solutions Inc., las oficinas centrales en Fair Lawn, New Jersey. Lin trabajaba como administrador de Unix y se sirvió de esos conocimientos para crear un conjunto de bombas lógicas que se activaran en su cumpleaños en 2004. Sin embargo, se produjo un fallo debido a un error de programación, que Lin tuvo que corregir y reajustar para activarse en su siguiente cumpleaños, momento en que fue descubierto e inhabilitado por un administrador de sistemas de Medco algunos meses antes de que saltara la fecha del disparador. Lin se declaró culpable (Associated Press, 2007)y fue sentenciado a 30 meses de cárcel en una prisión federal además de serle interpuesta una multa de 81.200 dólares en concepto de restitución, aunque los cargos sostuvieron una máxima sentencia de 10 años y una multa por 250.000 dólares. De forma similar, en junio de 2006, un disgustado administrador de sistemas de UBS, Rogelio Duronio, fue acusado de usar una bomba lógica para dañar la red de computadores de la compañía y llevar a cabo una serie de acciones que permitieran la venta fraudulenta de títulos de valores de ésta mediante la activación de la bomba lógica. De haber conseguido llevar a cabo su acción, habría provocado un caos bursátil con potencial riesgo de minimizar la confianza de los mercados en la compañía (cotizando sus acciones a la baja) e incluso en el resto del mercado en sí. Duronio fue condenado y sentenciado a 8 años y 1 mes en prisión, así como a una indemnización millonaria de 3,1 millones de dólares a la empresa UBS. El 29 de octubre de 2008 fue descubierta otra bomba lógica en el gigante hipotecario estadounidense Fannie Mae. El software fue presuntamente situado por Rajendrasinh Makwana, un ciudadano indio y contratista de nuevas tecnologías que había trabajado en la factoría de Fannie Mae en Urbana, Maryland. La bomba lógica fue ajustada para activarse el 31 de enero de 2009 y habría podido borrar todos y cada uno de los 4.000 servidores de Fannie Mae. Curiosamente, Makwana había terminado de preparar el mecanismo alrededor de las 13 horas del 24 de octubre de 2008 (Claburn, 2009) y lo consiguió antes de que su acceso a la red fuera revocado por el personal de la empresa, mostrando de nuevo que una gestión adecuada de permisos de usuario es fundamental para minimizar los riesgos de seguridad de la empresa. Makwana fue procesado en una corte de Maryland un año después por hacer uso de un acceso no autorizado a los equipos de Fannie Mae. En este sentido, el 27 de abril de 2011, la compañía tecnológica japonesa Sony informaba del robo de información privada de sus clientes con cuenta de usuario en la red de PlayStation. Los datos personales comprometidos incluían información de carácter personal sobre sus clientes así como datos referentes a las tarjetas de crédito. El anuncio de la empresa japonesa, que fue realizado a través de su división para América, se produjo casi una semana después de que quedara suspendido el acceso en línea a su plataforma de juegos por lo que fue denominado como una «intrusión externa», sin que, por entonces, se facilitaran más detalles. 50 PROYECTO FIN DE CARRERA Una semana después de suspender estos servicios, uno de los principales puntos de negocio para la división especializada en videojuegos de Sony, la compañía reconocía que al menos el nombre, la dirección, el correo electrónico, la fecha de nacimiento y las contraseñas para entrar en la red PlayStation podrían estar en posesión de una tercera persona ajena a su entidad que logró burlar sus sistemas de seguridad. La compañía indicó que, aunque no tiene evidencias de que el pirata informático pudiera tener acceso a los números de las tarjetas de crédito de los usuarios y la fecha de caducidad de las mismas o a los historiales de compra-venta, no descartó esa posibilidad y alertó a sus clientes para que tomaran precauciones al respecto. En este sentido, la dirección de Sony procedió a contratar a una empresa especializada en seguridad para investigar lo sucedido, a pesar de que el daño a la imagen de sus consolas de videojuegos ya es irreparable teniendo en cuenta que son más de 77 millones de cuentas de usuario las que forman parte de esa red. Sony señaló que los usuarios de US PSN (United States PlayStatin Network) y Qriocity (el nombre comercial de la marca de Sony para música en streaming, juegos, ebooks, etc.) podrían contactar con algunas agencias de monitorización de crédito estadounidenses, como Experian, Equifax y TransUnion, para solicitar una alerta de fraude gratuita que garantice que estas agencias tomarán medidas adicionales de precaución a la hora de verificar la identidad de los usuarios, aún a sabiendas de que esta alerta de fraude podría obstaculizar la resolución de las solicitudes de crédito legítimas. 51 PROYECTO FIN DE CARRERA Capítulo 3 3. DESARROLLO EXPERIMENTAL DE NOA En la situación actual, se cree conveniente aportar una serie de medidas que permitan incrementar la seguridad de los equipos informáticos corporativos. Como parte necesaria de este proceso, se propone la incorporación de un sistema de detección de variantes de malware (NOA) que permita detectar la entrada de elementos potencialmente peligrosos que aún no han sido etiquetados como tal por los antivirus comerciales, al no haberse registrado su firma como elementos dañinos o que comprometan la seguridad. Esto es especialmente importante si se tiene en cuenta que la morfología de los ataques va cada vez más orientada a utilizar herramientas específicas en función de las características concretas de la víctima y por tanto, herramientas que no son identificadas como tal por los sistemas de detección tradicionales. Para hacer frente a esta realidad, y antes de desarrollar un hipotético prototipo comercial, se han diseñado una serie de experimentos que ponen a prueba el modelo de representación vectorial del malware basado en la frecuencia de aparición de los opcodes (o cadenas de ellos) en su código fuente en ensamblador. Los detalles de este experimento se especifican en este 3er capítulo, haciendo hincapié en la implementación y en los fundamentos teóricos, además de facilitarse el conjunto de resultados al final del mismo. 3.1 OPCODES COMO DETECTORES DE MALWARE La utilización de opcodes (contracción de las voces inglesas operation code) como herramientas útiles para la detección de malware no es nueva. Daniel Bilar en su trabajo Opcodes as predictor for malware (Bilar, 2007) ya puso de manifiesto que los opcodes eran, por sí solos, indicadores de la potencial existencia de malware. Para entender lo que son estos opcodes, es necesario repasar una serie de conceptos básicos de programación. En informática, un opcode o código de operación, es la porción de una instrucción de lenguaje de máquina que especifica la operación que va a ser realizada. Su especificación, formato y funcionalidad serán determinados por la arquitectura del 53 3. DESARRROLLO EXPERIMENTAL DE NOA conjunto de instrucciones (ISA27) del componente de hardware28 en cuestión que, en informática, suele ser una CPU, pero podría ser una unidad más especializada en determinados sectores industriales. Una instrucción completa de lenguaje máquina contiene un opcode o código operacional y, opcionalmente, la especificación de uno o más operandos sobre los que la operación actuará. A este respecto, cabe destacar que algunas operaciones tienen operandos implícitos o, incluso, pueden no tener ninguno. Los operandos sobre los que los opcodes trabajan pueden consistir, dependiendo de la arquitectura del CPU, en registros, valores en memoria, valores almacenados en la pila, puertos de entrada / salida, bus, etc. Por otro lado, las operaciones que estos opcodes especifican pueden ser aritméticas (de adición, resta, multiplicación, etc.), de copia de datos, operaciones lógicas (and, or, xor, etc.) y de control del programa (como saltos condicionales e incondicionales o llamadas a subrutinas). Dada la complejidad existente para que el ser humano programe directamente en lenguaje máquina, se suelen emplear lenguajes de programación de alto nivel, que abstraen las características concretas del hardware permitiendo al programador trabajar con más comodidad y rapidez. Sin embargo, en ocasiones, estos lenguaje de alto nivel no dan acceso completo a las funcionalidades del hardware, por lo que hay que emplear el lenguaje ensamblador (ver Figura 3-1). 0C1B:0125 MOV DX,0102 ; copia cadena al reg. DX 0C1B:0128 MOV CX,000F ; veces que se repetirá 0C1B:012B MOV AH,09 ; copia valor 09 al reg. AH 0C1B:012D INT 21 ; despliega cadena 0C1B:012F DEC CX ; decrementa en 1 a CX 0C1B:0130 JCXZ 0134 ; si CX = 0 salta a 0134 0C1B:0132 JMP 012D ; salta a la dirección 012D Figura 3-1. Ejemplo básico de un programa en ensamblador. 0C1B:0134 INT 20 ; termina el programa 27 ISA: un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA (del inglés Instruction Set Architecture o Arquitectura del Conjunto de Instrucciones) es una especificación que detalla las instrucciones que la CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU. Existen principalmente 3 tipologías: CISC (Complex Instruction Set Computer), RISC (Reduced Instruction Set Computer) y SISC (Simple Instruction Set Computing). 28 Hardware, es un término técnico con el que se definen todas las partes tangibles de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado 54 PROYECTO FIN DE CARRERA Es en este punto en donde son usadas las instrucciones mnemónicas que corresponden a las especificaciones concretas de cada opcode de los operandos de las instrucciones de lenguaje máquina a generar. Esto, da un mayor nivel de legibilidad y una mayor comprensibilidad al código, mientras se trabaja directamente con operaciones de lenguaje máquina y se mantiene todavía el control exacto y completo de las especificaciones del hardware. Posteriormente, un programa llamado «ensamblador» transformará el lenguaje ensamblador en el código máquina definitivo a ser ejecutado. Sin embargo, en el método propuesto en este documento, no toda la información anteriormente mostrada será utilizada: tomando como base para ello los planteamientos de Bilar (Bilar, 2007) en los que ya se ponía de manifiesto las capacidades de los opcodes para detectar malware. Así, los parámetros utilizados serán obviados y solamente los opcodes (es decir, la parte de cada instrucción que especifica qué operación va a ser realizada), serán empleados para la detección. De esta manera, si tenemos en cuenta el ejemplo de la Figura 3-1, la única parte del programa que será empleada para generar la representación vectorial de los ejecutables que se explica en el siguiente apartado, será la siguiente: MOV MOV MOV INT DEC JCXZ JMP Figura 3-2. Códigos de operación usados para la representación del programa en ensamblador de ejemplo. 0C1B:01 34 INT 20 ; termina 3.2 REPRESENTACIÓN VECTORIAL DEL SOFTWARE el Tras realizar el proceso de truncado program de información ya definido, se procederá a la a creación de vectores que representarán al ejecutable en cuestión en función de la longitud de la cadena especificada. Para ello, se han seguido los pasos especificados en la Figura 3-3 y que se explican en los párrafos siguientes: 1. Desensamblaje del programa. Es la parte del proceso que se encarga de realizar la descomposición de los ejecutables en las microinstrucciones de lenguaje máquina que serán interpretadas por el procesador. En este caso, el desensamblador utilizado es el NewBasicAssembler, un desensamblador open- 55 3. DESARRROLLO EXPERIMENTAL DE NOA source y gratuito. La salida generada por dicho programa es redireccionada a memoria para ser tratada debidamente y poder separar los códigos operacionales del resto de información generada, obteniendo así la secuencia de todos los códigos de operación del ejecutable en cuestión. 2. Selección de una nueva instrucción. Como parte de un proceso iterativo de recorrido de la cadena de códigos operacionales del fichero, el primer paso será la selección de la instrucción en cuestión y el incremento del contador de instrucciones totales del ejecutable analizado. Desensamblaje del programa Selección de una nueva instrucción Truncamiento de los operandos ¿Existe el operando? Incrementar en 1 el número de apariciones Inclusión en el vector con valor 1 ¿Fin del programa? Normalización Figura 3-3. Proceso de representación vectorial del software. 56 PROYECTO FIN DE CARRERA 3. Truncamiento de los operandos. Dada la instrucción, se separa la parte de los operandos, aislando el código operacional. Computacionalmente, esto es bastante sencillo dado que el NewBasicAssembler separa el final del código de operación del primer operando a partir de un tabulador («\t»), de modo que el proceso de tokenizado (o separación en bloques) de la instrucción termina cuando se encuentra dicho carácter. 4. Inclusión del código de operación en el vector. Para insertarlo en el vector, bastará con detectar la existencia en la estructura de almacenamiento temporal utilizada, que en este caso, y por comodidad, será un Diccionario29 previamente definido como Dictionary<string, double>) siendo la clave de tipo string para almacenar el código de operación y el valor de tipo double, para contar el número total de apariciones de ese código de operación en el fichero ejecutable en cuestión. La ventaja de utilizar los diccionarios de datos es que facilitan enormemente el proceso de búsqueda ya que no es necesario realizar un recorrido secuencial por la estructura de almacenamiento al estar ésta indexada por clave. 5. Proceso iterativo. Mientras no se haya finalizado el proceso de análisis y aún queden instrucciones pendientes, se repetirá el proceso hasta terminar el recorrido secuencial a través de todas las microinstrucciones que el NewBasicAssembler ha obtenido del proceso de desensamblado. 6. Normalización. Una vez contabilizadas las apariciones de cada código operacional por separado, se hace necesario recorrer el diccionario de datos nuevamente para normalizar esta información. Para ello, bastará con dividir el número de apariciones de cada opcode por el número total de microinstrucciones contabilizadas en el fichero, obteniendo así la frecuencia de aparición (en tanto por uno) de cada código operacional en el ejecutable analizado. Si tenemos en cuenta el ejemplo de la Figura 3-1, la estructura obtenida antes y después del proceso de normalización, sería la que se muestra en la Tabla 3-1 de la página siguiente. Sin embargo, la representación explicada, sólo detalla el proceso de generación de representaciones basándonos en la frecuencia de aparición de cada opcode por separado. Este método va un poco más allá: se pretende buscar similitudes entre los ejecutables maliciosos usando como características de representación, no ya los opcodes aislados, si no las cadenas de éstos. 29 Diccionario (Dictionary en C#) es una clase que representa un diccionario en C# y que se utiliza para representar una colección de claves y su correspondiente par de valores de datos. La clase Dictionary es una clase genérica (ya implementada) y puede almacenar cualquier tipo de datos. Esta clase se define en el espacio de nombres System.Collections.Generic. 57 3. DESARRROLLO EXPERIMENTAL DE NOA Tabla 3-1. Representación del ejemplo con longitudes de secuencias de opcodes de 1. Código Operacional Número de apariciones Frecuencia MOV 3 3 / 7 = 0,428571 INT 1 1 / 7 = 0,142857 DEC 1 1 / 7 = 0,142857 JCXZ 1 1 / 7 = 0,142857 JMP 1 1 / 7 = 0,142857 Para ello será necesario realizar un paso adicional de agrupación de las cadenas de opcodes en función de la longitud de análisis deseada. Este proceso eleva la complejidad de los cálculos exponencialmente, ya que mientras existen apenas 2 centenares de opcodes diferentes, las combinaciones posibles de cadenas de 2 opcodes se elevan al cuadrado (200 x 200), las de 3 opcodes se elevan al cubo (200 x 200 x 200) y así sucesivamente. Como se expondrá más adelante, el experimento realizado tratará hasta cadenas de 5 opcodes. A continuación se muestran la representación del ejemplo anterior para cadenas de 2 (Tabla 3-2) y 3 opcodes (Tabla 3-3), para que el lector se haga una idea aproximada de cuál sería la representación del ejecutable en memoria usando cada una de los dos métricas adicionales propuestas. Este proceso será necesario realizarlo para todos y cada uno de los ejecutables a analizar en el experimento, bien sean aquellos ejecutables benignos (en adelante, goodware) o malware. Los resultados de este proceso operacional serán almacenados en ficheros .noa que contendrán los pares opcode (o cadenas de opcodes) y la frecuencia de aparición de los mismos. Tabla 3-2. Representación del ejemplo con longitudes de secuencias de opcodes de 2. 58 Código Operacional Número de apariciones Frecuencia MOV MOV 2 2 / 6 = 0,333333 MOV INT 1 1 / 6 = 0,166666 INT DEC 1 1 / 6 = 0,166666 DEC JCXZ 1 1 / 6 = 0,166666 JCXZ JMP 1 1 / 6 = 0,166666 PROYECTO FIN DE CARRERA Tabla 3-3. Representación del ejemplo con longitudes de secuencias de opcodes de 3. Código Operacional Número de apariciones Frecuencia MOV MOV MOV 1 1 / 5 = 0,200000 MOV MOV INT 1 1 / 5 = 0,200000 MOV INT DEC 1 1 / 5 = 0,200000 INT DEC JCXZ 1 1 / 5 = 0,200000 DEC JCXZ JMP 1 1 / 5 = 0,200000 A continuación se incluye el código correspondiente a la generación de los vectores de secuencias de opcodes. private static long[] GenerateNSequences(int index) { long[] times = new long [nSequence*2-1]; int recursiveIndex = nSequence; // If recursive analysis were required -N if (recursive == true) { if (nSequence != 0) { for (int i = 1; i <= nSequence; i++) { System.Diagnostics.Stopwatch watch = new Stopwatch(); watch.Start(); AnalyzeFrequencies(i); watch.Stop(); times[i-1] = watch.ElapsedMilliseconds; watch.Reset(); // Como queremos obtener arboles de niveles mixtos... // Generamos los ficheros para los noas mixtos unicamente si no estamos // en i = 1 (pq ya está generado claro) if (i != 1) { watch.Start(); WriteOnARecursiveNOAFile(i); watch.Stop(); times[recursiveIndex] = watch.ElapsedMilliseconds; watch.Reset(); recursiveIndex++; } 59 3. DESARRROLLO EXPERIMENTAL DE NOA } // RECORDAR MUY IMPORTANTE!! // LIBERAR totalsequencesfrecuency al terminar de generar sus .noa! totalSequencesFrequency.Clear(); } else // Doing so with all the opcodes { for (int i = 1; i <= opcodes.Count; i++) AnalyzeFrequencies(i); } // Remember that we have not written down the .noa for level2x1 } // One analysis required else if (nSequence != 0) AnalyzeFrequencies(nSequence); -n return times; } 3.3 ASIGNACIÓN OPCODES DE PESOS Y RELEVANCIA DE Sin embargo, con los pasos anteriormente definidos, los resultados no están garantizados. Para optimizarlos, se ha empleado un proceso de ingeniería del conocimiento basado en un análisis estático adicional de la aparición de los opcodes. El objetivo fundamental de este paso no es otro que la identificación de aquellos opcodes cuya presencia es más frecuente y relevante en el software malicioso, con el objetivo de evitar que aquellos códigos operacionales habituales tanto en malware como en software benigno puedan distorsionar artificialmente los resultados. Así, como paso previo, introducimos un método capaz de obtener la importancia de cada opcode. Debido a que algunos opcodes tienen una frecuencia de aparición alta tanto en malware como en software legítimo (como mov o push) el empleo de estas características en el modelo de representación no es tan relevante como utilizar únicamente aquellas que aparecen más frecuentemente en el malware. En estas líneas se propone un modelo que pretende evitar este fenómeno otorgando a cada uno de los opcodes la relevancia relativa que realmente tiene. Como base para ello, conviene citar de nuevo el trabajo de Bilar (Bilar, 2007) en el que se investigaba sobre las capacidades de los opcodes para detectar malware. El estudio concluyó que había diferencias estadísticamente relevantes entre los opcodes del software malicioso y del benigno, y que aquellos opcodes menos empleados tienen más peso específico en este proceso de detección. 60 PROYECTO FIN DE CARRERA De esta manera, se ha creado un método capaz de calcular la relevancia de cada opcode individual, con el fin de obtener un peso de relevancia en función de su frecuencia de aparición en el malware o en el software benigno. Para ello, se ha recogido malware del sitio web VxHeavens30 para formar un conjunto de 13.189 ejecutables maliciosos. Este conjunto de datos contiene únicamente ejecutables del tipo Portable Executable (formato de ficheros ejecutables en sistemas Windows) y está formado por diferentes clases de malware, desde virus y rootkits, hasta caballos de Troya, pasando por gusanos y spyware. Para el conjunto de datos de software benigno, se han recopilado 13.000 ejecutables de nuestros ordenadores que incluyen toda clase de ficheros ejecutables benignos como herramientas de ofimática, hojas de cálculo, calendarios, programas de retoque fotográfico o navegadores web. Sin embargo, la obtención de estos ficheros no aseguraba por definición que estos no estuvieran infectados. Como parte del proceso, se ha creído necesario incluir la tarea de analizar los ficheros que se van a utilizar como software benigno para evitar que ficheros maliciosos se hagan pasar precisamente, por ficheros aparentemente benignos, algo que podría afectar a la precisión de los resultados. Por este motivo, todos los ficheros goodware han sido analizados independientemente con Eset Antivirus. El método que calcula la relevancia de cada uno de estos opcodes sigue los pasos que se definen a continuación: 1. Desensamblado de los ejecutables. El programa de desensamblado utilizado será (como ocurrirá con procesos posteriores) el New-Basic Assembler. 2. Generación de un fichero con la frecuencia de aparición de cada opcode. De modo que cada fichero contenga un listado de opcodes junto con el número de veces que éste aparece, tanto para los ejecutables maliciosos como en los benignos. 3. Cálculo de la relevancia de los opcodes. Se mide la dependencia estadística entre dos variables para determinar la relevancia de cada opcode y obtener la relevancia de los mismos. El objetivo de este proceso es obtener un listado de todos los opcodes disponibles con sus correspondientes valores de relevancia para ofrecer una mayor importancia estadística a aquellos opcodes más habituales entre el malware. Se adjunta como anexo el fichero .xml de relevancias empleado para los análisis de la fase experimental de NOA. 30 VxHeavens, es un sitio web disponible en: http://vx.netlux.org/ especializado en la publicación de información y noticias vinculadas al desarrollo de nuevas aplicaciones maliciosas. 61 3. DESARRROLLO EXPERIMENTAL DE NOA Al respecto de esto, cabe destacar que el proceso ha sido realizado para la determinación de la frecuencia de aparición de opcodes independientes (o dicho de otra forma, para cadenas de 1 opcode) otorgando relevancias a cada opcode por separado. Con el método descrito, cuando se opera con cadenas de opcodes, la relevancia final de la cadena en cuestión viene dada por el producto de los pesos de los opcodes individuales por separado. Esto influye decisivamente en que las representaciones de las cadenas más largas contengan, en términos absolutos, valores mucho más pequeños. No se nos escapa, sin embargo, que pudiera ser interesante desarrollar un proceso de experimentación paralelo en el futuro para generar relevancias para cadenas de opcodes en lugar de tener en cuenta la frecuencia de aparición de los opcodes por separado. Estas tareas sin duda deben incluirse en un proceso de mejora continua que no termina con el proceso experimental. Tan pronto como fueran encontradas nuevas variantes de malware, estos cálculos deberían ser realizados de nuevo con el fin de garantizar la correcta actualización de la información manejada y de ajustar el método lo más posible a las tendencias evolutivas del malware. 3.4 COSINE SIMILARITY COMPARACIÓN Y OTRAS MEDIDAS DE En este apartado se describen matemáticamente algunas de las métricas de correlación más conocidas que han sido implementadas en NOA. 3.4.1 Similitud del coseno: base teórica En trigonometría, la similitud del coseno (en inglés cosine similarity) es una medida de similitud entre dos vectores basada en la medición del coseno del ángulo que forman. El rango de valores que se pueden obtener es de entre -1 y 1, siendo el resultado de la función coseno igual a 1 cuando el ángulo formado por estos dos vectores sea 0º y teniendo un valor de 0 cuando ambos vectores son perpendiculares, es decir, cuando el ángulo formado por los mismos es de 90º. De esta manera, mediante el cálculo del coseno del ángulo de dos vectores, se puede determinar si dos vectores apuntan en aproximadamente la misma dirección. Esta técnica, es a menudo utilizada para comparar los documentos en la minería de texto (o text mining31 en inglés), además de ser utilizada para medir la cohesión dentro de las agrupaciones en el ámbito de la minería de datos. 31 Text mining, voz inglesa para minería de texto, que es como se suele referenciar a la minería de datos aplicada a los textos. Se refiere al proceso de obtener información de alta calidad a partir del texto derivada de la detección de de patrones y/o tendencias a través, por ejemplo, de herramientas de aprendizaje estadístico. Entre las tareas típicas de la minería de texto se incluyen: la categorización de texto, la agrupación de texto, la producción de taxonomías 62 PROYECTO FIN DE CARRERA v cos(θ) Figura 3-4. Coseno de dos vectores representados en un espacio bidimensional. Matemáticamente, el coseno de dos vectores puede ser obtenido a partir de la fórmula euclidiana del producto escalar expresada en la Ecuación 3-1. En matemáticas, el producto escalar, también conocido como producto interno, interior o punto (del inglés, dot product), es una operación definida sobre dos vectores de un espacio euclídeo cuyo resultado es un número (o escalar). Esta operación permite explorar algunos conceptos de la geometría euclidiana tradicional como las longitudes, los ángulos o la ortogonalidad en dos y tres dimensiones, aunque también puede definirse en espacios euclídeos de dimensiones mayores a tres, tal y como se va a aplicar posteriormente. Ecuación 3-1. Fórmula del producto escalar. Dados dos vectores de atributos, A y B, la similitud del coseno de θ, se representa mediante un punto del producto y magnitud que: Ecuación 3-2. Fórmula usada en geometría para calcular la similitud del coseno. En las técnicas utilizadas en el análisis de texto, normalmente los vectores de atributos A y B son, por lo general, los vectores frecuencia de aparición de cada término dentro de los documentos. Así, geométricamente, la similitud del coseno puede ser vista como un método de normalización de la longitud del documento durante la comparación en un espacio n-dimensional, donde cada uno de los términos encontrados corresponde a una dimensión diferente, siendo la frecuencia del mismo la posición relativa ocupada en esa dirección. granulares, análisis de opinión, resúmenes de documentos y el modelado entidad relación (es decir, el reconocimiento de nombres de entidades). 63 3. DESARRROLLO EXPERIMENTAL DE NOA De esta manera, un resultado de «-1» indicaría que los vectores se encuentran en la misma dirección pero orientados en sentidos completamente opuestos, mientras que un valor resultante de «0», por lo general, indica la total independencia de los mismos (entendiendo como independencia geométrica la ortogonalidad de los vectores). En el caso de recuperación de información, el rango de similitud del coseno de dos documentos va solamente se comprende entre «0» y «1». Esto se deriva del hecho de que las frecuencias de aparición de los términos encontrados (pesos tf-idf) no pueden ser nunca negativas concluyéndose también que el ángulo entre dos vectores de frecuencia de los términos no puede ser mayor de 90. A continuación se incluye parte del código implementado para ejecutar la similitud del coseno, que recordemos que se calcula hallando el cociente entre el producto escalar y el producto vectorial de dos vectores. A continuación se facilita el código en C# del producto escalar. #region COSINE SIMILARITY /// <summary> /// DOT PRODUCT (Producto escalar) /// </summary> /// Dot product calculated according with the following formula: /// A · B = x1*y1 + x2*y2 + ... + xn*yn /// /// Where A (x1, x2, ... xn) and B (y1, y2, ... yn) are the sequencesFrequency vectors. /// <returns>double</returns> private static double dotProduct() { double dot= 0; int shorter = DetermineShorter(); int longer = 0; if (shorter == 0) { longer = 1; } // m = size of smaller dictionary int m = sequencesFrequency[shorter].Count; foreach (string k in sequencesFrequency[shorter].Keys) { // If the longer contains it, we add the product if (sequencesFrequency[longer].ContainsKey(k)) { double tf = sequencesFrequency[longer][k].getTF(); dot += sequencesFrequency[shorter][k].getTF() * tf; } } return dot; } En la página siguiente se facilita el código, también en C#, correspondiente al cálculo del producto vectorial. Obsérvese que el método DetermineShorter es un método que pretende agilizar el proceso de cálculo al sólo iterar sobre el vector de menor tamaño. 64 PROYECTO FIN DE CARRERA /// <summary> /// MODULE PRODUCT /// </summary> /// Module product calculated according with the following formula: /// A · B = x1*y1 + x2*y2 + ... + xn*yn /// /// Where A (x1, x2, ... xn) and B (y1, y2, ... yn) are the sequencesFrequency vectors. /// <returns>double</returns> private static double moduleProduct() { double module = 1; // Going trhough the list of Dictionaries for (int i = 0; i <sequencesFrequency.Count; i++) { // deposit double m = 0; int z = sequencesFrequency[i].Count; // Going though the dictionaries foreach (Cosine c in sequencesFrequency[i].Values) //for (int j = 0; j < z; j++) { // Recovering value double val = c.getTF(); if (val != 0) { m += Math.Pow(val,2); } } module *= Math.Sqrt(m); } return (module); } #endregion COSINE SIMILARITY 3.4.2 Otras medidas de comparación Aún siendo la similitud del coseno la medida más conocida en comparación de textos, también cabe destacar la implementación en NOA de otras medidas como Pearson o Spearman, con resultados dispares. La selección del coeficiente de correlación a emplear era realizada por el investigador a través de la definición de un parámetro global, quedando la selección de la rutina a emplear en manos del método ProcessSimilarity definido a continuación. /// <summary> /// Case metric = 0: COSINE SIMILARITY /// Case metric = 1: SPEARMAN /// Case metric = 2: PEARSON /// Else: Error /// </summary> private static double ProcessSimilarity() { switch (metric) { case 0: // COSINE SIMILARITY return (dotProduct() / moduleProduct()); case 1: // SPEARMAN double N = numberOfPairs(); double D = squaredDifferencesSum(); return ( 1-6*D / N/(Math.Pow(N,2))); case 2: // PEARSON return (pearson()); } return -1; } 65 3. DESARRROLLO EXPERIMENTAL DE NOA 3.4.2.1 Coeficiente de correlación de Spearman En estadística, el coeficiente de correlación de Spearman ρ (ro) es una medida de la correlación entre dos variables aleatorias continuas. Para calcularlo se utiliza el estadístico que viene dado por la expresión Ecuación 3. Coeficiente de correlación de Spearman (entre dos variables aleatorias continuas). donde D es la diferencia entre los correspondientes estadísticos de orden de x - y. N es el número de parejas. Se tiene que considerar la existencia de datos idénticos a la hora de ordenarlos, aunque si éstos son pocos, se puede ignorar tal circunstancia Para muestras mayores de 20 observaciones, podemos utilizar la siguiente aproximación a la distribución t de Student Ecuación 4. Aproximación a la distribución t de Student del coeficiente de correlación de Spearman. La interpretación de coeficiente de Spearman es similar a la del coeficiente de correlación de Pearson. También oscila entre «-1» y «+1», indicándonos asociaciones negativas o positivas respectivamente, y cero «0», significa no correlación pero no independencia. A continuación se facilita el código empleado para la rutina auxiliar empleada para calcular la suma de las diferencias de cuadrados necesaria para este método. /// <summary> /// Case metric = 0: COSINE SIMILARITY /// Case metric = 1: SPEARMAN /// Case metric = 2: PEARSON /// Else: Error /// </summary> private static double ProcessSimilarity() { switch (metric) { case 0: // COSINE SIMILARITY return (dotProduct() / moduleProduct()); case 1: // SPEARMAN double N = numberOfPairs(); double D = squaredDifferencesSum(); return ( 1-6*D / N/(Math.Pow(N,2))); case 2: // PEARSON return (pearson()); } return -1; } 66 PROYECTO FIN DE CARRERA 3.4.2.2 Coeficiente de correlación de Pearson En estadística, el coeficiente de correlación de Pearson es un índice que mide la relación lineal entre dos variables aleatorias cuantitativas. La principal diferencia con la covarianza, la correlación de Pearson es independiente de la escala de medida de las variables. El coeficiente de correlación entre dos variables aleatorias X e Y es el cociente Ecuación 5. Coeficiente de correlación de Pearson (entre dos variables aleatorias). donde σXY es la covarianza de (X,Y) y σx y σY las desviaciones típicas de las distribuciones marginales. En la teoría, el valor del índice de correlación varía en el intervalo [-1, +1] de modo que: - Si r = 1, existe una correlación positiva perfecta. El índice indica una dependencia total entre las dos variables denominada relación directa: cuando una de ellas aumenta, la otra también lo hace en proporción constante. - Si 0 < r < 1, existe una correlación positiva. - Si r = 0, no existe relación lineal aunque esto no signifique necesariamente que las variables sean independientes, ya que pueden existir todavía relaciones no lineales entre las dos variables. - Si -1 < r < 0, existe una correlación negativa. - Si r = -1, existe una correlación negativa perfecta. El índice indica una dependencia total entre las dos variables llamada relación inversa: cuando una de ellas aumenta, la otra disminuye en proporción constante. A pesar de lo anteriormente expuesto, los resultados negativos también son imposibles en la práctica con esta medida de correlación, dado que no es posible encontrar frecuencias de aparición negativas. En las páginas que siguen se facilitan las características concretas de la implementación del coeficiente de correlación de Pearson. 67 3. DESARRROLLO EXPERIMENTAL DE NOA #region PEARSON /// <summary> /// PEARSON /// </summary> /// According to the following formula: /// Covariance (A,B) / (TypDesv(A) * TypDesv(B)) /// Being A and B the corresponding sequencesFrequency vectors /// <returns>double</returns> private static double pearson() { double dimension = numberOfPairs(); // deposit double sum = 0; double[] med = {0,0}; // calculating both medias for (int i = 0; i < sequencesFrequency.Count; i++) { double aux = 0; foreach (string k in sequencesFrequency[i].Keys) { aux += sequencesFrequency[i][k].getTF(); } med[i] = aux / sequencesFrequency[i].Count; } #region Calculating the covariance // going through the first vector foreach (string k in sequencesFrequency[0].Keys) { // If the second one does NOT contain it if (sequencesFrequency[1].ContainsKey(k)) { sum += (sequencesFrequency[0][k].getTF() - med[0]) * (sequencesFrequency[1][k].getTF() - med[1]); } else { sum += (sequencesFrequency[0][k].getTF() - med[0]) * (med[1]); } } // going through the second vector foreach (string k in sequencesFrequency[1].Keys) { // If the first one does NOT contain it, we add a new pair if (sequencesFrequency[0].ContainsKey(k)) { // Nothing to be done } else { sum += (-med[0]) * (sequencesFrequency[1][k].getTF() med[1]); } } #endregion Calculating the covariance double covariance = (sum / dimension); #region Calculating the Typical Desviation's Product // initializing array double[] desv = {0,0}; for (int i = 0; i < sequencesFrequency.Count; i++) { // going through the i vector of frequencies foreach (string k in sequencesFrequency[i].Keys) { desv[i] += Math.Pow(sequencesFrequency[i][k].getTF() med[i],2); } 68 PROYECTO FIN DE CARRERA #region Explanation of the following /* Neccessary because of: * Being... * A { mov(25), add (75)} aMed = 25 (NO 50!push(0),pop(0)) * B { mov(100), add (50), push(40), pop (20) } bMed = 50; * * The dimensions of both of them is 4 (not 2), since the push and pop axis should be taken into account * */ #endregion Explanation of the following desv[i] += Math.Pow((dimension - sequencesFrequency[i].Count) * med[i], 2); } #endregion Calculating the Typical Desviation's Product return (covariance / (Math.Sqrt(desv[0] / (dimension - 1)) * Math.Sqrt(desv[1] / (dimension - 1)))); } /// <summary> /// CALCULATING MEDIAS /// </summary> /// <returns>double[] containing the medias of the frequency files loaded on memory</returns> private static double[] calculatingMedias() { double[] med = {0,0}; // calculating both medias for (int i = 0; i < sequencesFrequency.Count; i++) { double aux = 0; foreach (string k in sequencesFrequency[i].Keys) { aux += sequencesFrequency[i][k].getTF(); } med[i] = aux / numberOfPairs(); } return med; } #endregion PEARSON } Por desgracia, los resultados empleando estas dos últimas métricas no han sido satisfactorios al disparar la tasas de falsos positivos en las pruebas preliminares realizadas, siendo, por tanto, ineficaces en la detección de malware. 3.5 ESTRUCTURA FUNCIONALIDADES DEL PROGRAMA Y El programa experimental diseñado para poner a prueba lo anteriormente descrito, pretende ser una herramienta lo más completa posible que permitiera la realización y el posterior análisis de los experimentos aquí descritos de la forma más cómoda posible. Con este objetivo, se ha diseñado una aplicación experimental denominada NOA (acrónimo en inglés de N-Opcode Analyser o Analizador de N-Opcodes) permitiendo introducir diferentes métricas de entrada, información de entrada y opciones en función 69 3. DESARRROLLO EXPERIMENTAL DE NOA de las características concretas de cada experimento lanzado. En esta sección se describen algunas de ellas. Esta aplicación que, siendo experimental, no cuenta con una interfaz gráfica, ha sido diseñada para recibir los parámetros de entrada por la línea de comandos. A pesar de las complicaciones que su ejecución entraña para el personal que no conoce la arquitectura interna de la misma, la principal ventaja que esta metodología entraña recae en la facilidad asociada al paso de parámetros hacia otras rutinas auxiliares lanzadas por NOA, generando los comandos de ejecución al vuelo. Por ejemplo, en una primera versión, el proceso de desensamblado inicial, el modelo de representación de los vectores y la propia comparación entre programas eran realizadas por ficheros ejecutables diferentes. El NewBasicAssembler realizaba el desensamblado enviando una información a la terminal que era capturada por NOA, que a su vez generaba las representaciones de los ficheros y lanzaba el comparador. De esta manera, esta filosofía de insertar la información de entrada mediante parámetros de entrada presenta la ventaja de facilitar tremendamente el paso de datos de una aplicación a otra, permitiendo una ejecución dinámica de instrucciones en función de la demanda de recursos necesitados. 70 Adicionalmente, se ha dispuesto de una funcionalidad que se solicita al NewBasicAssembler el desensamblado de los procesos para proceder al truncado de los operandos de las microinstrucciones obtenidas. La principal ventaja de este proceso es que se puede almacenar en memoria secundaria el listado de todos los opcodes ya debidamente aislados en ficheros de texto plano con extensión .dis, haciendo innecesario el proceso de desensamblado cada vez que un nuevo experimento fuera lanzado. Dada la multitud de comparaciones que compondrían el experimento, se hizo necesario desarrollar un sistema que permitiera realizar las comparaciones de la forma más automatizada posible. Para hacernos una idea del total de comparaciones realizadas por nivel, esta cifra ascendió a 7.470.000 comparaciones de programas maliciosos con aplicaciones benignas y 99.481 comparaciones de malware entre sí por cada una de los 9 representaciones del experimento, para sumar un total de 68.125.329 comparaciones, de las cuales 67.230.000 han sido de malware con goodware y 895.329 de malware con variantes documentadas de la misma familia. Las cadenas de opcodes iniciales tratadas incluían cadenas de 1, 2 ó 3 opcodes, lo cual en las primeras versiones provocaba problemas de desborde de la memoria RAM en uso dadas las magnitudes de los vectores empleados en la PROYECTO FIN DE CARRERA comparación. Sin embargo, con el posterior desarrollo del proceso de análisis se han podido incluir vectores de longitud de hasta 5 opcodes. Además, se han empleado para la realización del experimento las, en adelante denominadas, «representaciones recursivas», que incluían en la representación cadenas de opcodes de diferentes tamaños. Por ejemplo, cuando se habla de representación recursiva de nivel 3, nos referimos a una representación vectorial que incluye la frecuencia de aparición de cadenas de 1 opcode, de 2 opcodes y de 3 opcodes. Estas representaciones incrementan exponencialmente el tamaño de las mismas complicando a su vez el proceso de cálculo de las similitudes entre los vectores a comparar. Los resultados generados por NOA pueden ser visualizados en varios formatos (.csv, .txt, .arff), aunque el elegido para el experimento final ha sido el formato .csv32, dadas las facilidades que supone para un manejo posterior de los datos con Microsoft Excel. En un primer momento, no se había planteado la asignación de los pesos de los opcodes en función de lo reseñable que fuera su presencia en el malware. Sin embargo, más adelante se decidió incluir esta funcionalidad procediendo a la lectura de los mismos a través de un fichero .xml que se incluye como anexo y que podía ser pasado a NOA como parámetro de entrada. Paralelamente, NOA ha sido actualizado en numerosas ocasiones para dar soporte a otros experimentos basados en opcodes. Entre otras utilidades, destaca la inclusión de un generador de ficheros de frecuencias de opcodes en .arff de cara a ser utilizados con programas de machine learning como WEKA33. La principal virtud de NOA reside precisamente en la gran cantidad de opciones que han sido implementadas, permitiendo la obtención y generación de variados ficheros de análisis con combinaciones de diferentes parámetros de una forma particularmente rápida. A continuación se pasa a detallar las principales opciones implementadas en el prototipo experimental. 32 Ficheros .CSV (del inglés comma-separated values) son un tipo de documento en formato abierto para representar datos en forma de tabla. Las columnas se separan por comas «,» (o punto y coma «;» en donde la coma es el separador decimal como España, Francia o Italia) y las filas por saltos de línea. La única limitación que presentan es que los campos que contengan una coma, un salto de línea o comillas dobles deben emcerrarse entre comillas dobles. 33 WEKA (Waikato Environment for Knowledge Analysis o Entorno para Análisis del Conocimiento de la Universidad de Waikato) es una plataforma de software para aprendizaje automático y minería de datos escrito en Java y desarrollado en la Universidad de Waikato. WEKA contiene una colección de herramientas de visualización y algoritmos para análisis de datos y modelado predictivo, unidos a una interfaz gráfica de usuario para acceder fácilmente a sus funcionalidades. Se trata de un software libre distribuido bajo licencia GNU-GPL. 71 72 3. DESARRROLLO EXPERIMENTAL DE NOA Ayuda. Para acceder a la ayuda del programa bastaba con incluir en línea de comandos cualquiera de las siguientes posibilidades para visualizar todas las opciones del programa: -h, -H, -?, ?. Creación de ficheros .ARFF. Mediante el uso de esta opción se indica al programa que el fichero de salida que sea desea obtener es un fichero .arff para ser utilizado por WEKA así como la carpeta en donde se desea que se almacenen dichos archivos. Los flags a utilizar son: -a[ruta de destino], -A[ruta de destino]. Generación de ficheros .CSV. El uso de este flag tiene como objetivo indicar al programa que los ficheros de salida de las comparaciones deben ser obtenidos en formato .CSV para su lectura con Microsoft Excel. Los flags son: -e, -E. Comparación de un único fichero. Esta fue una de las primeras opciones implementadas que recibía como parámetro un archivo ejecutable para ejecutar la comparación con toda otra sucesión de ficheros. Es fundamental que reciba un fichero ejecutable para funcionar correctamente a través de los flags: -f[ruta del fichero], -F[ruta del fichero]. Carpeta de ficheros de entrada. Mediante esta opción se puede especificar el conjunto de ficheros de entrada a comparar contenidos en una carpeta. El conjunto de comparaciones así solicitadas se encargará de realizar la comparación de todos los programas contenidos en la carpeta entre sí a través de los flags: -s[carpeta de origen], -S[carpeta de origen]. Carpeta de ficheros goodware para la comparación. Si se incluye esta opción, el programa ejecutará, además de las comparaciones entre sí de los ficheros mencionados en el punto anterior, la comparación de todos ellos con todos los ficheros goodware de la carpeta mostrada a través de la opción: g[carpeta de goodware], -G[carpeta de goodware]. Carpeta de donde se almacenarán las salidas del programa. Aunque por defecto el programa almacenará los ficheros de salida en la carpeta en la que se encuentre el ejecutable, es recomendable indicar una carpeta específica en la que almacenar los ficheros para mantenerlos ordenados. Esto se consigue a través del uso de la opción: -d[carpeta de salida], -D[carpeta de salida]. Generación de representaciones individuales. Mediante esta opción se pretende dar al programa la posibilidad de realizar comparaciones de longitudes de secuencias de opcodes. El flag a utilizar es: -n[longitud de secuencia de opcodes]. Generación de representaciones recursivas. Esta posibilidad realiza automáticamente la comparación de los ficheros desde 1 hasta el número entero especificado en el parámetro, incluyendo también la creación de PROYECTO FIN DE CARRERA representaciones recursivas. El flag definido para esta tarea es: -N[longitud máxima de las secuencias de opcodes]. Selección de métrica de comparación. Con el fin de dar la mayor versatilidad posible al programa experimental, se ha facilitad la posibilidad de seleccionar la métrica de similitud a implementar, lo cual permite realizar diferentes comparaciones utilizando técnicas distintas con un mínimo coste de programación adicional. Las métricas implementadas son seleccionadas de la siguiente manera: -m(COSINE | SPEARM | PEARSO), -M(COSINE | SPEARM | PEARSO). Uso de relevancias. Mediante esta funcionalidad se permite el uso de los ficheros de relevancia para los opcodes individuales. La inclusión de esta función permitió una rápida constatación de que los métodos que hacen uso de esta posibilidad son más efectivos que los que no lo hacen. El flag a emplear es el siguiente: -w[ruta del fichero .xml], -W[ruta del fichero .xml]. Preparación de ficheros desensamblados. Mediante esta opción, NOA no realiza ninguna comparación. El fichero de salida obtenido es un fichero de texto en formato .dis que contiene la secuencia de todos los opcodes del ejecutable en cuestión. Esto posibilita realizar el desensamblado en máquinas de 32 bit (las únicas sobre las que puede correr la versión de NewBasicAssembler utilizada) para luego realizar la comparación en un equipo con mayores posibilidades. Para ello hay que utilizar la función «preparar» del programa invocándola de la siguiente manera: -p[carpeta de ficheros de salida], -P[carpeta de ficheros de salida]. Uso de ficheros de entrada ya desensamblados (en formato .dis). Mediante esta opción se indica que los ficheros a comparar no será necesario desensamblarlos dado que la información de entrada se encuentra en los ficheros con formato de texto .dis anteriormente mencionados. Para usar esta opción bastará con indicarlo usando el flag –x en lugar del –s:-x[ruta de origen de los ficheros .dis], -X[ruta de origen de los ficheros .dis] . Agrupación de ficheros. Esta opción únicamente agrupará los ficheros de comparación para cada familia de malware en la misma carpeta, facilitando el análisis posterior. Se da la posibilidad dado que diferentes tratamientos automáticos posteriores se podrían ver agilizados en función de si los datos quedaban agrupados o no. El flag empleado es: -o, -O. Obtención del fichero resumen con resultados totales. Esta opción generará al final del proceso de comparación un breve fichero de resumen en el que se indican algunos detalles estadísticos interesantes sobre el experimento, como el 73 3. DESARRROLLO EXPERIMENTAL DE NOA número de muestras analizadas o el total de ficheros empleados. Su uso se invocará a través de la opción: -t, -T. Mostrar mensajes en pantalla durante la ejecución. El uso de la opción «verbose» es interesante más que nada en la fase de pruebas del prototipo dado que la muestra de información en pantalla ralentiza en exceso el proceso. Su uso será ordenado a través de la opción: -v, -V. 3.6 METODOLOGÍA DE LA EXPERIMENTACIÓN Una de las partes más importantes de esta memoria, se centra en el desarrollo y la divulgación de los resultados obtenidos en esta investigación. Parte de la información aquí publicada ha sido reconocida por la comunidad científica internacional en la conferencia ESSOS 2010 de Pisa (Italia) (I. Santos F. B., 2010). A continuación, se facilita un documentado y pormenorizado reporte de las investigaciones realizadas en este campo para sostener aquella y más recientes publicaciones. 3.6.1 Definición del entorno de laboratorio En las páginas que siguen se procederá a facilitar una detallada relación de los resultados parciales obtenidos con la experimentación de NOA, así como de las tablas y gráficas de resultados necesarias para que el lector sea consciente del alcance potencial de estas investigaciones. Por de pronto, y para hacernos una idea de la magnitud del experimento, la totalidad de ficheros generados entre hojas de datos, textos planos, vectores de frecuencias y comparaciones finales asciende a 32,3 GB (34.789.183.488 bytes) distribuidos en los más de 3.000 archivos generados por la versión experimental de NOA. 3.6.1.1 Características del equipo Para realizar el proceso de desensamblado de los ficheros se ha utilizado un procesador Intel Pentium M (2.13 Ghz.) con 2 GB. DDR de memoria RAM. Obsérvese que para la ejecución del NewBasicAssembler se hacía necesario el desensamblado en un procesador de 32 bits, dado que no existe una versión que soporte procesadores de 64 bits. Esto supone un obstáculo si se quiere exportar y distribuir la realización de experimentos, dado que el proceso de desensamblado sólo se puede realizar (utilizando el programa mencionado) en equipos con procesadores de 32 bits. Para hacer frente a esta problemática, se decidió separar el proceso de desensamblado y de comparación. Para ello, una versión inicial de NOA se encargaría de generar unos ficheros de texto plano .dis, (de la voz inglesa disassembled o desensamblados) que contenían las secuencias de opcodes desensambladas ya sin los parámetros, no sólo evitando los problemas de compatibilidades entre versiones anteriormente mencionados, sino que también acelerando el proceso de análisis al disponer en memoria de los ficheros ejecutables convenientemente tratados. 74 PROYECTO FIN DE CARRERA El procesador de este segundo equipo es un Intel Core i7 a 3,07 GHz. y con 12,0 GB. de memoria RAM instalada con Windows 7 como sistema operativo montado en su versión de 64 bits. 3.6.1.2 Selección de los sujetos a estudiar En la figura de la página siguiente, se procede a enumerar cada una de las familias utilizadas en el experimento, así como el número de muestras por familia que han sido recogidas. El nombre del total de las variantes analizadas se incluye al final como anexo con la nomenclatura facilitada por VxHeavens en su página web. Estos ejecutables han sido descargados del conocido sitio web y se han seleccionado únicamente las variantes que fuesen del formato Portable Executable. En total, tal y como se muestra en la Figura 4-5, se cuenta con un total de 18 familias diferentes de malware, entre las que encontramos aplicaciones maliciosas de los más diversos tipos como bots, caballos de Troya, gusanos, etc. Para el conjunto de datos benignos, hemos recopilado ejecutables legítimos de nuestros propios ordenadores en el laboratorio S3Lab de DeustoTecch. Este conjunto de datos benignos se compone de muy diferentes aplicaciones, tales como instaladores (y desinstaladores), paquetes de actualización, utilidades del sistema operativo, 300 263 250 200 150 118 100 98 Número de ejecutables 51 50 28 6 10 8 20 12 26 23 18 23 10 12 8 17 Agobot Antilam Bancodor Bifrose Cmjspy Delf Graybrid Gruel Hupigon IRCBot LittleWitch Mosucker PcClient Rbot SdBot SubSeven VB Zokrim 0 Figura 3-5. Descripción del conjunto de datos para la evaluación de tiempos de NOA. 75 3. DESARRROLLO EXPERIMENTAL DE NOA controladores de impresoras, herramientas de edición del registro, navegadores web, visores de ficheros PDF, herramientas de optimización del rendimiento y/o mantenimiento, aplicaciones de mensajería instantánea, compiladores, interfaces de desarrollo, debuggers, etc. El tamaño promedio de estos ejecutables benignos es de 222 KB, en un rango de 4 KB a 5.832 KB. De éstos, ocupan menos de 100 KB el 69,6% del conjunto de datos, ocupan entre 100 KB y 1.000 KB el 25,4% y son mayores que 1.000 KB. el 5,0% restante. Por último, y de forma similar a como se hiciera anteriormente en el proceso de cálculo de las relevancias de los opcodes, todos los ficheros benignos empleados han pasado un análisis realizado con Eset Antivirus, para evitar que programas infectados pudieran hacerse pasar como ficheros inofensivos y distorsionen los resultados. 3.6.1.3 Descripción de la funcionalidad de cada una de las familias de malware En este apartado se procede a enumerar las funcionalidades y características concretas de cada una de las familias de malware analizadas en el experimento. Agobot (con frecuencia también conocido como Gaobot): Es una familia de gusanos informáticos de cuya primera versión fue responsable Axel «Ago» Gembe, un programador alemán. El código fuente de Agobot lo describe como: «un sistema modular bot de IRC para Win32 / Linux». Agobot fue liberado bajo licencia GNU General Public License. Se trata de un programa multi-hilo en su mayor parte escrito en C + +. Agobot es un ejemplo de botnet para cuyo manejo se requieren escasos conocimientos de programación. Antilam: Es un troyano que permanece residente en memoria, abriendo un puerto de comunicaciones por el que puede acceder un usuario atacante. Antilam cuenta con varias versiones siendo el principal objetivo de éstas el registrar las pulsaciones del teclado y almacenarlas en un fichero. De esta forma, se puede incluir en el fichero información tan valiosa como claves de acceso al sistema, claves de acceso a páginas web, números de tarjetas de crédito, etc. La infección por Antilam puede ser identificada cuando se activa, ya que muestra un mensaje que aparenta ser un error relacionado con las conexiones de Windows (sockets). Bancodor: Se trata de una familia de aplicaciones backdoor (o de puerta trasera) que permite a los hackers acceder de manera remota al ordenador del afectado, pudiendo llevar a cabo acciones que comprometen la confidencialidad del sistema o dificultan el trabajo habitual, impidiendo el acceso de los programas a 76 PROYECTO FIN DE CARRERA los sitios web de varias compañías relacionadas con herramientas de seguridad (antivirus, cortafuegos, etc.). Sin embargo, la principal amenaza surge cuando intenta redireccionar los intentos de acceso a las páginas web de diversos bancos hacia otras páginas que las imitan, con el objeto de capturar la información introducida por el usuario en ellas. Sin embargo, no se propaga automáticamente por sus propios medios, precisando de la intervención del usuario atacante para su propagación. Los medios empleados son variados, e incluyen, entre otros, disquetes, CD-ROM, mensajes de correo electrónico con archivos adjuntos, descargas de Internet, transferencia de archivos a través de FTP, canales IRC, redes de intercambio de archivos entre pares (P2P), etc. Bifrose: Al igual que Bancodor, se trata de un backdoor que permite a un atacante acceder de manera remota al ordenador afectado, para realizar sobre éste, acciones que comprometen la confidencialidad del usuario capturando determinada información introducida o guardada por el usuario, con el consiguiente peligro para su confidencialidad. Envía la información que ha conseguido recoger a un usuario remoto, a través de cualquier vía: correo electrónico, FTP, etc., además de reducir el nivel de seguridad del ordenador: modifica la configuración de seguridad de Internet Explorer y emplear técnicas propias incluidas en su código para ocultarse mientras está activo. CmjSpy: Inserta su código en otros ficheros o programas, para después realizar acciones que pueden resultar perjudiciales para el ordenador infectado, propagándose y afectando a otros ordenadores realizando copias de sí mismo. Delf: Es un troyano que, llegando al ordenador bajo una apariencia inofensiva, permite en realidad llevar a cabo intrusiones y ataques: captura de pantallas, recogida de datos personales, etc. De forma similar a Bifrose, puede redireccionar los intentos de acceso a páginas web de entidades financieras, siendo un software apreciado por aquellos que se dedican al phising o fraude bancario, al direccionar estos intentos de acceso a varias páginas web hacia una dirección IP determinada. Graybird: Es un backdoor descubierto en 2006 que tiene como finalidad permitir a los hackers acceder de manera remota al ordenador afectado, siendo un malware de 77 3. DESARRROLLO EXPERIMENTAL DE NOA peligrosidad baja según Panda Security34. No se propaga automáticamente por sus propios medios, preciando de la intervención del usuario atacante para su propagación. Gruel: Es un gusano que elimina numerosos archivos fundamentales del directorio de sistema de Windows. Además, abre varias ventanas del panel de control, abre y cierra la bandeja de la unidad de CD-ROM, desactiva la barra de tareas, oculta la unidad C:, muestra mensajes por pantalla, etc. Gruel se puede propagar de dos maneras diferentes: - A través del correo electrónico en un mensaje escrito en inglés y con el archivo adjunto OFFICEXPTRIAL.EXE. - A través del programa de intercambio de archivos punto a punto (P2P) KaZaA. Gruel se copia a sí mismo en el directorio compartido con el nombre MATRIX RELOADED 2 AVI.EXE. Es difícil de reconocer una vez que ya ha afectado el ordenador, puesto que no muestra mensajes o avisos que alerten sobre su presencia. Sin embargo, cuando Gruel se propaga a través de correo electrónico, llega en un mensaje escrito en inglés con el archivo adjunto OFFICEXPTRIAL.EXE. Cuando se ejecuta, Gruel muestra una pantalla que simula ser un mensaje de error de Windows. Hupigon: Se trata de un backdoor que recibe órdenes de control remoto como registrar las pulsaciones de teclado introducidas por el usuario, obtener archivos del ordenador afectado, introducir otros ficheros en el sistema afectado para después ejecutarlos, realizar capturas de pantalla o comprobar qué procesos están en ejecución. Además, Hupigon inyecta su propia DLL (Librería de Enlace Dinámico) en todos los procesos que estén ejecutándose. De este modo, consigue que los archivos y procesos asociados a sí mismo no se muestren en las herramientas de seguridad utilizadas para listarlos. En cuanto a su propagación, Hupigon es soltado por otro backdoor, detectado por Panda Antivirus con el nombre de Fuetel. Es difícil de reconocer a simple vista, ya que no muestra mensajes ni avisos que alerten sobre su presencia. 34 Panda Security es una empresa líder a nivel mundial en soluciones de seguridad basadas en la nube. La compañía cuenta con productos traducidos a más de 23 idiomas y millones de usuarios en 195 países de todo el mundo. Panda Security fue la primera empresa de seguridad informática en aprovechar con su tecnología de inteligencia colectiva el potencial del Cloud Computing o computación en la nube como paradigma que permite ofrecer servicios de seguridad a través de Internet. «La nube» es una metáfora de internet. 78 PROYECTO FIN DE CARRERA IRCbot: Es un gusano que se conecta a varios servidores IRC y espera órdenes de control remoto que llevar a cabo en el ordenador afectado. IRCbot se propaga a través de internet, explotando la vulnerabilidad Plug and Play. Para ordenadores con el sistema operativo Windows 2003/XP/2000, es recomendable descargar el parche de seguridad para la vulnerabilidad Plug and Play desde la página de Microsoft. LittleWitch: Es un troyano considerado de peligrosidad muy baja que afecta a ordenadores con sistemas operativos Windows. El principal objetivo de LittleWitch es introducirse en el ordenador que pretende atacar, sin levantar sospechas. Una vez en él, trata de tomar el control del mismo y de facilitar que otros usuarios también puedan controlarlo. Las diferentes versiones tienen un tamaño aproximado de o de 91 KB. Mosucker: Es un backdoor que permite a los hackers acceder de manera remota al ordenador afectado, para realizar en el mismo, acciones que comprometen la confidencialidad del usuario o dificultan su trabajo. Reduce el nivel de seguridad del ordenador: abre uno o más puertos para permitir el acceso remoto al ordenador y realizar acciones que comprometen la confidencialidad del usuario, aunque no se propaga por sí mismo. PcClient: También se trata de una familia de aplicaciones backdoor que permiten a potenciales atacantes ganar acceso de manera remota al ordenador afectado. PcClient, sin embargo, necesita de la intervención del usuario atacante para su propagación mediante acceso físico al equipo o mediante técnicas de ingeniería social (como mensajes de correo electrónico fraudulentos) o a través de la compartición de archivos vía descargas directas en Internet, transferencia FTP, canales IRC o redes de intercambio de archivos P2P como Kazaja o eMule. Sdbot: Algunas variantes del gusano Sdbot se propagan a través de internet, atacando direcciones IP aleatorias, en las cuales intentan explotar vulnerabilidades propias de los sistemas operativos Windows, como por ejemplo RPC-DCOM, LSASS, etc. En caso de que consigan explotar dicha vulnerabilidad con éxito, proceden a crear y ejecutar un script, que procederá a descargar el gusano a través de FTP. Los productos de Panda detectan dicho script como W32/Sdbot.ftp. 79 3. DESARRROLLO EXPERIMENTAL DE NOA Tenga en cuenta de que si su producto Panda detecta W32/Sdbot.ftp, no significa necesariamente que su ordenador haya sido afectado por una variante del gusano Sdbot. Indica al usuario de que ha sido objeto de un ataque de este gusano. SubSeven: Es un troyano que permite a los piratas informáticos acceder al ordenador afectado de forma remota. Los efectos de este troyanos son muy peligrosos. Los más destacables son: espiar a los usuarios que utilicen el programa ICQ; capturar las pulsaciones de teclado que se realicen en el ordenador afectado (keylogging), obtener información de la configuración del ordenador y realizar grabaciones de audio y vídeo a través del micrófono del ordenador y la cámara web, si éstos están disponibles. Algunos de los indicios de la presencia de SubSeven.213 en el ordenador son los siguientes: - La bandeja del CD-ROM se abre y se cierra, sin motivo aparente. Se establece una sesión de chat, por sorpresa. El puntero del ratón se mueve, sin intervención del usuario. La barra de tareas y el botón de inicio de Windows desaparecen. VB: Es un troyano que, llegando al ordenador bajo una apariencia inofensiva, permite en realidad llevar a cabo intrusiones y ataques. VB no se propaga automáticamente por sus propios medios, sino que precisa de la intervención del usuario atacante para su propagación. Los medios empleados son variados, e incluyen, entre otros, disquetes, CD-ROM, mensajes de correo electrónico con archivos adjuntos, descargas de Internet, transferencia de archivos a través de FTP, canales IRC, redes de intercambio de archivos entre pares (P2P), etc. Zokrim: Es una familia de variantes de malware que muestra un mensaje de error por pantalla y que realiza multitud de copias de sí mismo en las siguientes rutas: C:\Nav.exe, C:\Vale.exe, C:\Valentina.exe, C:\Win.exe, C:\Mirko.exe, C:\Windows\Xp.exe, C:\Windows\Lara.exe, C:\Windows\Mirko.exe, C:\Windows\Krim.exe, C:\Windows\Nav.exe, C:\Windows\Lecce.exe, C:\Windows\Italy.exe, C:\Windows\Europe.exe, C:\Windows\Asus.exe, C:\Windows\Lg.exe, C:\Windows\Symantec.exe, C:\Windows\Fixbugbear.exe, C:\Windows\Navtools.exe, C:\Windows\Avp.exe, C:\Windows\Avp32.exe, C:\Windows\Nav32.exe, C:\Windows\Firewell.exe, C:\Windows\Pop3.exe, C:\Windows\Agent.exe, C:\Windows\Cult.exe, C:\Windows\Intel.exe, C:\Windows\Amd.exe, C:\Windows\Dege.exe, C:\Windows\Aerox.exe. 80 PROYECTO FIN DE CARRERA Además añade algunos valores al registro como: "firewall"="valentina.exe" en: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersi on\Run para permitir que el gusano se lance cuando se reinicia el sistema operativo Windows, creando adicionalmente un archivo C:\Vale.vbs con los atributos de Sólo lectura, Oculto y Archivo. Es un gusano que utiliza un script en VB para mandar copias de sí mismo a todos los contactos de la libreta de direcciones de Microsoft Outlook a través de mails con la siguiente estructura: Subject: "" and YOU Message: Dammi il tuo amore..... Attachment: vale.exe A pesar de que en principio fue programado para expandirse por mIRC, un bug35 en la programación del mismo hace imposible esta vía de contagio. 3.6.2 Divulgación de los resultados En este punto se procede a facilitar los histogramas obtenidos de las operaciones realizadas para cada una de las familias por separado. El primero de los histogramas representa la frecuencia con la que se ha encontrado software benigno con un ratio de similitud en cada rango del 5% con cada una de las familias, mientras que el segundo de los gráficos representa la frecuencia con que se han asignado dichos ratios cuando se ha comparado con variantes de cada una de las familias de malware. Así, al disponer de los histogramas de los resultados con software benigno y con variantes de malware, se hace más sencilla una comparación gráfica de los resultados obtenidos. Además, se aprecia con claridad las diferencias matemáticas existentes entre las diferentes familias, sugiriendo que el establecimiento de un threshold36 debería ser diferente en función de la longitud de las cadenas de opcodes empleadas para realizar la detección. Al final de este apartado se adjunta un histograma resumen de los resultados obtenidos para todas las familias así como las conclusiones que se pueden extraer del experimento aquí descrito. 35 Bug, error de programación 36 Threshold o valor de referencia a partir del cual considerar un análisis positivo 81 3. DESARRROLLO EXPERIMENTAL DE NOA 40% 35% 30% Lvl 1 25% Lvl 2 Lvl 2Rec 20% Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-6. Histograma de las similitudes de variantes de la familia Agobot con el software benigno. Queda patente una alta concentración en los rangos de similitud entre el 85 y el 95% , con bajas concentraciones a partir del 95%. 45% 40% 35% Lvl 1 30% Lvl 2 25% Lvl 2Rec 20% Lvl 3 Lvl 3Rec 15% Lvl 4 10% Lvl 4Rec 05% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-7. Histograma de las similitudes de variantes de la familia Agobot con variantes de la propia familia. Para realizar esta gráfica se obtuvieron más de 9.000 comparaciones que muestran una clara diferenciación morfológica de esta gráfica con su predecesora, al alcanzar cotas superiores al 95% en función de la representación. 82 PROYECTO FIN DE CARRERA 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-8. Histograma de las similitudes de variantes de la familia Antilam con el software benigno. A pesar de la alta concentración para el nivel 1 y los recursivos en el intervalo entre 90 y 95%, los resultados muestran ratios de solicitud bastante dispersos en todo el dominio. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-9. Histograma de las similitudes de variantes de la familia Antilam con variantes de la propia familia. A diferencia de la familia Agobot, en Antilam, los resultados son menos diferenciadores. 83 3. DESARRROLLO EXPERIMENTAL DE NOA 25% 20% Lvl 1 Lvl 2 15% Lvl 2Rec Lvl 3 10% Lvl 3Rec Lvl 4 05% Lvl 4Rec Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-10. Histograma de las similitudes de variantes de la familia Bancodor con el software benigno. Los resultados de la familia Bancodor muestran una clara diferenciación entre el malware de esta familia y el software benigno aumentando las diferencias con la ampliación de la lingitud de las cadenas tratadas. 90% 80% 70% Lvl 1 60% Lvl 2 50% Lvl 2Rec 40% Lvl 3 Lvl 3Rec 30% Lvl 4 20% Lvl 4Rec 10% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-11. Histograma de las similitudes de variantes de la familia Bancodor con variantes de la propia familia. Estos resultados sugieren que, a priori, establecer thresholds en esta familia sería menos controvertido 84 PROYECTO FIN DE CARRERA 25% 20% Lvl 1 Lvl 2 15% Lvl 2Rec Lvl 3 10% Lvl 3Rec Lvl 4 05% Lvl 4Rec Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-12. Histograma de las similitudes de variantes de la familia Bifrose con el software benigno. Se observan bajísimas concentraciones de similitud en los ratios más altos. En general, a mayor longitud de las cadenas, más diferenciación. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-13. Histograma de las similitudes de variantes de la familia Bifrose con variantes de la propia familia. Nuevamente, las diferencias morfológicas del histograma hacen pensar en una fiable diferenciación. 85 3. DESARRROLLO EXPERIMENTAL DE NOA 40% 35% 30% Lvl 1 25% Lvl 2 Lvl 2Rec 20% Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-14. Histograma de las similitudes de variantes de la familia Cmjspy con el software benigno. Cabe destacar aquí la alta diferenciación con el goodware para las longitudes de cadenas más largas (Level 3, 4 y sobre todo 5), concentrándose en torno al bloque de entre 0 y 5%. 50% 45% 40% Lvl 1 35% Lvl 2 30% Lvl 2Rec 25% Lvl 3 20% Lvl 3Rec 15% Lvl 4 10% Lvl 4Rec 05% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-15. Histograma de las similitudes de variantes de la familia Cmjspy. Para las comparaciones con malware los resultados aparecen dispersos, aunque en términos comparativos se parece sencilla la segregación. 86 PROYECTO FIN DE CARRERA 40% 35% 30% Lvl 1 25% Lvl 2 Lvl 2Rec 20% Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-16. Histograma de las similitudes de variantes de la familia Agobot con el software benigno. Nuevamente, se observa que a mayor longitud de la secuencia, mayores diferencias, con pocas muestras por encima del 95%. 60% 50% Lvl 1 40% Lvl 2 Lvl 2Rec 30% Lvl 3 Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-17. Histograma de las similitudes de variantes de la familia Delf con variantes de la propia familia. A diferencia de Cmjspy, parece que las variantes de Delf tienen un mayor grado de cohesión interna, concentrando gran parte de las muestras en torno a similitudes superiores al 90%. 87 3. DESARRROLLO EXPERIMENTAL DE NOA 45% 40% 35% Lvl 1 30% Lvl 2 25% Lvl 2Rec 20% Lvl 3 Lvl 3Rec 15% Lvl 4 10% Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-18. Histograma de las similitudes de variantes de la familia Graybird con el software benigno. En Graybird también se produce el fenómeno de dispersión de las similitudes conforme crece el tamaño. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-19. Histograma de las similitudes de variantes de la familia Graybird con variantes de la propia familia. Se observa que para longitudes mayores a 3, los resultados se distribuyen más por el histograma aún siendo fácilmente identificables. 88 PROYECTO FIN DE CARRERA 80% 70% 60% Lvl 1 50% Lvl 2 Lvl 2Rec 40% Lvl 3 30% Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-20. Histograma de las similitudes de variantes de la familia Gruel con el software benigno. Se observa una altísima concentración de variantes en el ´último de los tramos para niveles 4 y 5 al igual que una dispersión por el gráfico de los niveles 2 y 3, sugiriendo que a mayor longitud de cadena, mayor diferenciación. 120% 100% Lvl 1 80% Lvl 2 Lvl 2Rec 60% Lvl 3 Lvl 3Rec 40% Lvl 4 Lvl 4Rec 20% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-21. Histograma de las similitudes de variantes de la familia Gruel con variantes de la propia familia. La similitud de todas las comparaciones se agrupan en similitudes superiores al 95% para todos los niveles. 89 3. DESARRROLLO EXPERIMENTAL DE NOA 45% 40% 35% Lvl 1 30% Lvl 2 25% Lvl 2Rec 20% Lvl 3 Lvl 3Rec 15% Lvl 4 10% Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-22. Histograma de las similitudes de variantes de la familia Hupigon con el software benigno. Nuevamente se observa una tendencia de que los niveles más largos segregan mejor los resultados. 80% 70% 60% Lvl 1 50% Lvl 2 Lvl 2Rec 40% Lvl 3 30% Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-23. Histograma de las similitudes de variantes de la familia Hupigon con variantes de la propia familia. Los resultados en este caso también son muy alentadores al concentrarse gran cantidad de las similitudes en los intervalos más altos. 90 PROYECTO FIN DE CARRERA 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-24. Histograma de las similitudes de variantes de la familia IRCBot con el software benigno. Para IRCBot los resultados son menos diferenciados, presentando una gran cantidad de similitudes superiores. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-25. Histograma de las similitudes de variantes de la familia IRCBot con variantes de la propia familia. A excepción de para nivel 1 (y recursivos) la similitud morfológica del histograma sugiere dificultades en la diferenciación. 91 3. DESARRROLLO EXPERIMENTAL DE NOA 70% 60% Lvl 1 50% Lvl 2 40% Lvl 2Rec Lvl 3 30% Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-26. Histograma de las similitudes de variantes de la familia LittleWitch con el software benigno. La dispersión de los resultados en esta familia es muy alentadora al concentrarse en las partes más bajas del ratio. Incluso para longitudes de secuencia de 1 (y recursivas) los resultados sugieren una clara diferenciación. 70% 60% Lvl 1 50% Lvl 2 40% Lvl 2Rec Lvl 3 30% Lvl 3Rec 20% Lvl 4 10% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-27. Histograma de las similitudes de variantes de la familia LittleWitch con variantes de la propia familia. La mayor parte de las similitudes se concentran en los intervalos superiores. En la práctica debería bastar con un par de muestras de la familia para representar la totalidad de sus variantes. 92 PROYECTO FIN DE CARRERA 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-28. Histograma de las similitudes de variantes de la familia MoSucker con el software benigno. A pesar de las altas similitudes encontradas para niveles de entre el 85 y el 95%, la frecuencia de apariciones superiores al 95% es más bien baja. Obsérvese también que esta tendencia va a la baja cuanto más largas son las secuencias. 70% 60% Lvl 1 50% Lvl 2 40% Lvl 2Rec Lvl 3 30% Lvl 3Rec 20% Lvl 4 10% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-29. Histograma de las similitudes de variantes de la familia MoSucker con variantes de la propia familia. Vista la gráfica anterior, se puede sacar la conclusión de que la mayor parte de las aplicaciones que obtengan similitudes al 95% al ser comparadas con variantes de MoSucker, serán, efectivamente, aplicaciones de la familia. 93 3. DESARRROLLO EXPERIMENTAL DE NOA 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-30. Histograma de las similitudes de variantes de la familia PcClient con el software benigno. A excepción de para las cadenas de 1 opcode y las recursivas, los resultados se distribuyen bastante homogéneamente sin ser demasiado significativos. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-31. Histograma de las similitudes de variantes de la familia PcClient con variantes de la propia familia. A pesar de que conforme se alarga la longitud de las cadenas se reducen las similitudes en los 2 rangos superiores, se las similitudes por encima del 85% siguen acaparando la mayor parte de las resultados. 94 PROYECTO FIN DE CARRERA 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-32. Histograma de las similitudes de variantes de la familia Rbot con el software benigno. Se corrobora la tendencia de que a mayor longitud de las cadenas, menor similitud media. 25% 20% Lvl 1 Lvl 2 15% Lvl 2Rec Lvl 3 10% Lvl 3Rec Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-33. Histograma de las similitudes de variantes de la familia Rbot con variantes de la propia familia. Los resultados para la familia Rbot son un tanto desconcertantes y que podrían ser achacables al hecho de ser malware de código abierto. A diferencia de otras familias, establecer valores-frontera parece complicado y reafirma la idea de que cada familia podría tener thresholds independientes. 95 3. DESARRROLLO EXPERIMENTAL DE NOA 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-34. Histograma de las similitudes de variantes de la familia SDBot con el software benigno. A pesar de que se observan grandes concentraciones en torno a la parte más baja del espectro para los niveles de cadenas más largas, las frecuencias para tasas de similitud superiores al 90% son aún así elevadas. 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-35. Histograma de las similitudes de variantes de la familia SDBot con variantes de la propia familia. La proporción aproximada de apariciones de malware con tasas superiores al 95%, es, aproximadamente de 4:1. 96 PROYECTO FIN DE CARRERA 20% 18% 16% Lvl 1 14% Lvl 2 12% Lvl 2Rec 10% Lvl 3 08% Lvl 3Rec 06% Lvl 4 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% Lvl 5Rec 80%-75% 00% 85%-80% Lvl 5 90%-85% 02% 95%-90% Lvl 4Rec 100%-95% 04% Figura 3-36. Histograma de las similitudes de variantes de la familia SubSeven con el software benigno. Nuevamente se percibe una mayor distribución por la gráfica de las similitudes encontradas conforme mayor es la longitud de la secuencia de opcodes analizada. 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 05% Lvl 4Rec Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-37. Histograma de las similitudes de variantes de la familia SubSeven con variantes de la propia familia. Para SubSeven destaca el gran número de frecuencias encontradas para los niveles más altos de similitud en contraposición con las encontradas con software benigno. 97 3. DESARRROLLO EXPERIMENTAL DE NOA 30% 25% Lvl 1 20% Lvl 2 Lvl 2Rec 15% Lvl 3 Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-38. Histograma de las similitudes de variantes de la familia VB con el software benigno. A pesar de encontrar altas tasas de similitud por encima del 90%, se mantiene la tendencia de dispersar las similitudes para niveles superiores y de cncentrarlas en los niveles más bajos. 40% 35% 30% Lvl 1 25% Lvl 2 Lvl 2Rec 20% Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-39. Histograma de las similitudes de variantes de la familia VB con variantes de la propia familia. VB es la familia de malware más numerosa de todas (256 elementos) y por tanto la que mayores diferencias presenta entre una variante y otra y la que potencialmente necesitaría de más muestras para ser representada. 98 PROYECTO FIN DE CARRERA 80% 70% 60% Lvl 1 50% Lvl 2 Lvl 2Rec 40% Lvl 3 30% Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-40. Histograma de las similitudes de variantes de la familia Zokrim con el software benigno. Se observan dos fenómenos: las bajas cotas de frecuencias obtenidas en los ratios superiores a 95% y las altísimas concentraciones de similitudes iguales o menores al 10% para las cadenas más largas. 120% 100% Lvl 1 80% Lvl 2 Lvl 2Rec 60% Lvl 3 Lvl 3Rec 40% Lvl 4 Lvl 4Rec 20% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-41. Histograma de las similitudes de variantes de la familia Zokrim con variantes de la propia familia. La práctica totalidad de los ratios de similitud encontrados se encuentran por encima del 90% incluso para las cadenas más largas, ofreciendo unas tasas de aciertos muy elevadas. 99 3. 3.6.3 DESARRROLLO EXPERIMENTAL DE NOA Evaluación de los resultados obtenidos Los resultados anteriormente mostrados (y resumidos en los histogramas de la Figura 3-42 y de la Figura 3-43) muestran que un método de detección de variantes de malware basado en opcodes es una buena opción a ser tenida en cuenta en la industria de la detección de malware. Si bien los resultados son muy positivos dadas las diferencias percibidas entre los resultados obtenidos con malware y software benigno por separado, sí que se cree necesario puntualizar alguno de los siguientes aspectos: El primero de todos, que el proceso funciona y que los resultados obtenidos son síntoma inequívoco de que los sistemas de detección de variantes de malware empleando los opcodes pueden ser utilizados en el futuro para dar cobertura y detectar variantes que aún no hayan causado daño y que no hayan sido registradas por los sistemas tradicionales. Son por tanto, el complemento ideal de estos sistemas y pueden suponer una línea de investigación interesante para mejorar estos sistemas. Los resultados establecen que a mayor longitud de las cadenas analizadas, mayor facilidad para establecer los valores de referencia que separen el malware del software benigno. Las implementaciones recursivas denotan una cierta capacidad correctora de los resultados obtenidos a nivel 1, otorgando aún así más peso a las cadenas de opcodes de mayor nivel. Esto se explica dado que conforme se va ampliando el número de opcodes existentes en la cadena, el peso de la misma se va reduciendo en función del peso relativo ofrecido a cada opcode individualmente. Los tiempos de comparación obtenidos son considerablemente mayores a los tiempos necesarios para la obtención de las firmas tradicionales (ver Anexo relativo a las funciones resumen o funciones hash) del orden de 2,5 veces del tiempo necesario para la obtención de esta información. Sin embargo, cabe destacar que el procedimiento desarrollado es un procedimiento puramente experimental y no perfeccionado en materias de cálculo y rendimiento, por lo que se entiende que un modelo profesional comercial podría realizar estas comparaciones sensiblemente más rápido. 100 PROYECTO FIN DE CARRERA 35% 30% Lvl 1 25% Lvl 2 20% Lvl 2Rec Lvl 3 15% Lvl 3Rec 10% Lvl 4 Lvl 4Rec 05% Lvl 5 00% 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% Lvl 5Rec Figura 3-42. Histograma resumen de las similitudes de las variantes de todas las familias con el total del software benigno. 60% 50% Lvl 1 40% Lvl 2 Lvl 2Rec 30% Lvl 3 Lvl 3Rec 20% Lvl 4 Lvl 4Rec 10% Lvl 5 5%-0% 10%-5% 15%-10% 20%-15% 25%-20% 30%-25% 35%-30% 40%-35% 45%-40% 50%-45% 55%-50% 60%-55% 65%-60% 70%-65% 75%-70% 80%-75% 85%-80% 90%-85% 95%-90% 100%-95% 00% Lvl 5Rec Figura 3-43. Histograma resumen de las similitudes de las variantes de cada una de las familias con cada una de las variantes de la misma familia. 101 3. DESARRROLLO EXPERIMENTAL DE NOA Para responder a estos interrogantes es necesario recurrir a las líneas actuales de trabajo en la industria de la detección del malware. Las principales empresas especializadas en seguridad tienden a minimizar el intrusismo en los sistemas del usuario. Se entiende que es perjudicial para el software de detección estar mostrando continuamente alertas por infección con malware cuando, en realidad, no existe dicha amenaza. Por ello, la mayor parte de los programas de detección de amenazas suelen permitir al usuario establecer la sensibilidad del detector de malware, asumiendo por su cuenta y riesgo, las consecuencias de dichas modificaciones. Éste es el motivo de que, en ocasiones, se sacrifique cierta capacidad de detección con el fin de minimizar el ratio de falsos positivos, quedando como tarea del diseñador y del analista de seguridad entrar a valorar los riesgos y necesidades de cada sistema, y por tanto establecer qué tasas serían las tolerables en cada caso. 102 PROYECTO FIN DE CARRERA Capítulo 4 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD Para que todo proyecto de seguridad informática funcione al 100% se tienen que dar una serie de factores que no deben ser minusvalorados por ningún estamento de la empresa. El principal problema al que tendrá que hacer frente el departamento encargado de la seguridad es la gestión de ingentes cantidades de información que habrá que controlar, auditar y priorizar correctamente, de modo que, de lo gestionable que sea todo el proyecto de seguridad en sí dependerá el éxito de su implantación. En este sentido, el papel que las tecnologías de seguridad deben jugar es el de descargar de trabajo al personal que está a cargo de la seguridad de los equipos, mediante el empleo de políticas y herramientas que permitan una gestión eficaz (y eficiente) de los recursos destinados a este fin, recursos que, por otro lado, casi siempre son más limitados de lo que se desearía. En el contexto actual de desarrollo de la industria del malware, es necesario poder analizar los eventos que comprometen la seguridad de toda empresa de forma unificada. Así, tratando de comprender los principales riesgos y amenazas a los que haya que hacer frente y viéndolos en su conjunto se podrá utilizar el conocimiento en la materia de los expertos para apoyar la toma de decisiones en materia de seguridad. En este capítulo, se van a repasar las diferentes fases del plan estratégico de implantación de una plataforma de seguridad informática, cuyos detalles de implementación se verán en profundidad en el capítulo siguiente. En los apartados que siguen, se profundizará por separado en cada una de estas etapas: toma de contacto, análisis externo e interno, definición de objetivos y metas, diagnóstico y posicionamiento estratégico, formulación y evaluación de estrategias, elaboración del plan estratégico, implantación y seguimiento y control del plan. 4.1 TOMA DE CONTACTO La realidad de los servicios facilitados en la sociedad de la información ha convertido a las empresas en entornos muy complejos desde el punto de vista de la seguridad, ya que 103 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD se requiere una integración de procesos y tecnologías que, hasta el momento, era desconocido. En este sentido existen una serie de factores que condicionan la adquisición de medidas de seguridad: - La información ha pasado a ser uno de los activos más importantes de toda compañía, de modo que el éxito o el fracaso de las empresas depende de cómo gestionan esta información cada vez más. - La seguridad basada únicamente en la tecnología no es suficiente y debe ir acompañada de políticas y cursos de formación que sean asumidos también por los empleados como parte integral de su trabajo. - La seguridad ha pasado a ser, cada vez más, un proceso crítico para la empresa y debe tratarse como tal. Dado que las empresas obtienen beneficio por los procesos de negocio o de fabricación y no por los sistemas que utilizan, hay que tener claro cuál será el criterio a emplear para priorizar las inversiones en unos u otros. Paralelamente, hay que ser conscientes de que enlazar los procesos de negocio con los entornos de red, servidores y aplicaciones puede no ser siempre trivial como parece, ya que éstos sirven a actividades de apoyo y su efecto no es directamente apreciable en el producto final. La Dirección de Seguridad de Arsys 37definía los factores que incrementan los riesgos de seguridad de una empresa tal y como se muestra en la Figura 4-1. Figura 4-1. Enfoque propuesto por ARSYS sobre los factores que incrementan los riesgos para la seguridad. 37 Arsys es una empresa con sede en Logroño (La Rioja) proveedora de servicios de internet a más de 250.000 clientes gestionando más de 675.000 dominios. 104 PROYECTO FIN DE CARRERA Asumiendo la existencia de riesgos que afectan a la seguridad corporativa de la empresa, se establece un catálogo de requisitos de seguridad a los que será necesario hacer frente. Estos requisitos serán satisfechos mediante la implementación de una serie de sistemas que minimizarán los riesgos anteriormente mencionados ofreciendo una mayor protección contra la amenaza continua de las intrusiones y la infección de malware que a su vez incrementa nuevamente los riesgos. Estas amenazas, habitualmente explotan las vulnerabilidades de los equipos y sistemas ofreciendo a los atacantes puertas de acceso a los activos inmateriales de la empresa como la propiedad intelectual o datos bancarios y financieros. Cuanto mayor sea el valor de estos activos para el atacante, mayor será el beneficio y mayores esfuerzos estará dispuesto a realizar el delincuente informático para obtenerlos, lo cual, nuevamente, será un factor determinante para volver a incrementar los riesgos de seguridad. Para minimizar los efectos de estas amenazas se debe ser consciente de las características de los equipos y dispositivos instalados en la empresa, para así conocer los principales riesgos y amenazas a los que va a haber que hacer frente. Para ello, se recomienda realizar una clasificación que pondere por separado cada uno de los siguientes aspectos: - El valor de cada sistema para el negocio. - La probabilidad de incidencia de la amenaza. - El impacto potencial que tendría sufrirla. En función de los resultados obtenidos, el analista tendrá la posibilidad de priorizar y determinar en qué línea centrar los esfuerzos de protección. La realización de tablas comparativas con las características anteriormente mencionadas es muy recomendable para la presentación de las amenazas ante estamentos directivos superiores, ya que ofrecen visualmente, una imagen de cuáles son las principales vulnerabilidades a subsanar. 4.2 ANÁLISIS DE LA SITUACIÓN DEL SECTOR Lo cierto es que la seguridad como tal es una fuente de oportunidades y amenazas para la empresa que deberá ser analizada. Estudiar el entorno de actuación de la empresa es fundamental para comprender cuáles pueden ser las líneas de actuación en el futuro con respecto a la seguridad. Para ello se tienen que tener en cuenta todo tipo de factores: - Factores económicos, relativos a la situación económica actual que puedan limitar las inversiones en materia de seguridad por priorizar otros aspectos que precisen mayor atención para la empresa. 105 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD - Factores político-legales, relativos a las normativas y exigencias de cada región en materia de seguridad. - Factores socio-culturales, como la concienciación de los ciudadanos en general y de los empleados en particular con respecto a la seguridad. - Factores tecnológicos, como la aparición de nuevas tecnologías que exploten las vulnerabilidades del sistema. - Factores geográficos, relativos al emplazamiento de las instalaciones que puedan afectar a la garantía de los suministros de energía red u otros recursos. Lo cierto es que el sector de la seguridad está en pleno apogeo. Con el uso cada vez más masificado de la informática, las nuevas medidas de protección de estos sistemas serán cada vez más demandadas. Y esta tendencia seguirá al alza en el futuro. 4.3 DEFINICIÓN DE OBJETIVOS Y METAS Si bien es cierto que el objetivo de todo analista de los riesgos de seguridad ha de estar orientado a la protección de los sistemas a su cargo, normalmente, no se dispone ni de todos los recursos ni de todo el tiempo necesario para hacer frente a cada una de las posibles incidencias. Riesgo Inversión Umbral de actuación Figura 4-2. Umbral de actuación de un Departamento de seguridad en función de los riesgos de seguridad a los que se enfrenta y la inversión realizada. Así, será necesario establecer unos criterios de gestión del riesgo coherentes con el modelo de negocio que permitan seleccionar la más apropiada política de protección. Para ello, se deberá tener en cuenta los riesgos que entraña la no-inversión en ciertos 106 PROYECTO FIN DE CARRERA aspectos de seguridad, tratando de encontrar un punto de máxima comodidad con el menor riesgo posible. 4.4 DIAGNÓSTICO ESTRATÉGICO En materia de seguridad la capacidad de adaptación de la compañía a la realidad cambiante del malware es fundamental. Aunque los asuntos relacionados con la seguridad física están bastante controlados gracias a la implantación de las medidas que se sugieren más adelante, en materia de seguridad lógica el número y la peligrosidad de las amenazas va creciendo exponencialmente con el paso del tiempo. Esta realidad obliga a las compañías a disponer de un departamento de seguridad de sistemas que sea capaz de evolucionar a la par que la industria del malware, estando en permanente contacto con la industria de la seguridad informática para poner remedio, antes de que sea demasiado tarde, a las vulnerabilidades que se van a ir encontrando en los nuevos sistemas que se instalen. Para ello se pueden emplear matrices DAFO, Fortalezas, Debilidades, Amenazas y Oportunidades empleadas en otros sectores como la administración de empresas para presentar con claridad las necesidades del departamento. 4.5 FORMULACIÓN Y EVALUACIÓN DE ESTRATEGIAS El objetivo principal de los planes de seguridad informática de toda compañía ha de ser mantener el servicio que se ofrece en los límites establecidos por la empresa, minimizando las interferencias externas y garantizando un tiempo de recuperación frente a imprevistos mínimo, que permita la continuidad del negocio tan pronto como sea posible. Para ello, todo plan de seguridad tiene que tener en cuenta aspectos relativos a la recuperación de los servicios y procesos en ejecución, así como para la recuperación de aquella información que pudiera verse afectada por interrupciones no previstas. Como parte del ciclo de mejora continua de todo proceso empresarial se hace también necesario incluir una fase de análisis de los resultados de las medidas aplicadas. El objetivo no ha de ser otro que comprobar si se están cumpliendo los requisitos establecidos en el plan de seguridad y tomar las medidas preventivas y correctoras que se crean necesarias para hacer frente a las diferentes brechas de seguridad que puedan surgir con el tiempo. De todo ello deberá encargarse el departamento o la dirección de seguridad, que deberá considerar los distintos tipos de problemas de seguridad que pueden generarse en función de los objetivos de cada unidad de negocio y los procesos críticos de la compañía. Como ya se ha señalado, el principal obstáculo al que tendrá que hacer frente esta dirección es que los recursos de los que dispondrá no serán ilimitados, por lo que la priorización de amenazas y la asignación de recursos será uno de los principales dilemas a los que tendrá que hacer frente, poniendo en conocimiento de quien corresponda las 107 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD deficiencias que se encuentren en el sistema y reclamando los medios que fueran necesarios para hacer frente a estas amenazas. 4.6 ELABORACIÓN DEL PLAN ESTRATÉGICO La seguridad deberá seguir las fases del ciclo de Deming de planificar, hacer, comprobar y actuar. A continuación se desglosa más en profundidad cada una de las fases. 1. Análisis de Seguridad. Como paso previo a la adopción de cualquier medida de seguridad, es necesario realizar un análisis de la naturaleza del resto de procesos de la empresa, de cara a identificar las necesidades y establecer los requisitos de seguridad que permitan el cumplimiento de estos objetivos. 2. Implantar y operar. Posteriormente, será necesario identificar las medidas a implantar e implantarlas, definiendo las métricas asociadas a la seguridad que permitan valorar la efectividad del sistema. 3. Monitorizar y revisar. En este apartado se tienen que incluir las tareas relativas al desarrollo de procedimientos de monitorización que permitan realizar un apropiado seguimiento de los diferentes incidentes de seguridad. Será fundamental revisar los niveles de riesgo y testear regularmente el funcionamiento óptimo de las diferentes medidas de seguridad ya implantadas. 4. Mantener y mejorar. Éste es el punto en el que se implantarán las mejoras que permitan la adopción de las acciones preventivas y correctoras necesarias que garanticen el cumplimiento del objetivo último de la seguridad: proteger la integridad de los dispositivos informáticos de la empresa. Como parte de ese plan estratégico se deben incluir también medidas para garantizar una correcta comunicación de los efectos y resultados de este plan estratégico que permita su valoración por parte de personal ajeno a la dirección de seguridad, con el objetivo de proteger al departamento de posibles desinversiones presupuestarias futuras. 4.7 IMPLANTACIÓN De cara a su implementación, el fin último de proteger a la compañía de eventuales riesgos para la seguridad informática de la misma, ya debe ser tenido en cuenta desde la preparación de los primeros documentos teóricos en los que se proyecte la implantación de todo complejo industrial o empresarial. 4.7.1 Construcción Los trabajos de seguridad deberán empezar a ser considerados desde el momento en que se empieza a diseñar la estructura de las instalaciones. Si el complejo es de nueva 108 PROYECTO FIN DE CARRERA creación, se deberá tener especial cuidado con ciertos factores ambientales relacionados con el emplazamiento y las características de determinados elementos de la estructura especialmente sensibles cuando se hace referencia a la seguridad física. Así, se deberá estudiar detalladamente la localización final del complejo, teniendo en especial consideración todos aquellos puntos de acceso a la red eléctrica y a las telecomunicaciones. Controlar estos terminales de las conexiones es de vital importancia de cara a prevenir sabotajes o la colocación de dispositivos de rastreo en ellos. 4.7.2 Infraestructuras Otro aspecto fundamental a tener en cuenta es el de la colocación del cableado, especialmente el relativo a la alimentación energética. En función de las características concretas del proceso, del modelo de negocio y del valor crítico de los datos se deberá estudiar la utilización de generadores de electricidad a través de motores de combustión interna (grupos electrógenos como los de los hospitales) o de Sistemas de Alimentación Ininterrumpida (SAI, en inglés, UPS, Uninterrupted Power System). Estos últimos son dispositivos que, aunque costosos, pueden proporcionar energía eléctrica a todos aquellos elementos que tenga conectados en caso de que se produzca algún tipo de fallo en el suministro de energía eléctrica, como, por ejemplo: - Cortes de energía por pérdida total de tensión de entrada. - Sobretensión, que tiene lugar cuando la tensión supera el 110% del valor nominal. - Caídas de tensión, que ocurren cuando la tensión es inferior al 80-85% de la nominal. - Picos de tensión, o sobrevoltajes repentinos excesivos. - Ruidos eléctricos. - Inestabilidad en la frecuencia. - Distorsiones armónicas, que tienen lugar cuando la onda suministrada pierde su forma sinusoidal. Hay que ser especialmente cauto con la colocación de los dispositivos de red en lugares en los que no se puedan ver afectados por radiaciones electromagnéticas o excesos de temperatura (por estar próximos a plantas productivas o tuberías de agua caliente) y humedades, además de proveer a las salas que contengan el hardware de herramientas que permitan una rápida actuación contra incendios. 109 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD La colocación de las salidas de emergencia también debe ser estudiada. Su apertura tiene que ser posible desde el interior como indica la normativa y las vías de evacuación deben estar siempre libres de cualquier obstáculo que dificulte la salida del personal. Sin embargo, esto también tiene implicaciones en materia de seguridad, ya que sus salidas deben ser convenientemente monitorizadas para evitar accesos desde el exterior en sentido inverso con o sin ayuda interna. Para la monitorización del complejo se recomienda la implantación de cámaras de vigilancia como parte de un circuito cerrado de televisión que se detallará más adelante. Además de la seguridad adicional que esto provee, permitiendo también la identificación de posibles intrusos, su colocación tiene tal efecto disuasorio que algunas empresas comercializan imitaciones de modelos plenamente funcionales con un sencillo circuito interno que únicamente alimenta un piloto intermitente. La ventilación de las instalaciones debe ser también considerada por motivos laborales. Garantizar un puesto de trabajo lo más libre de ruidos e incomodidades es fundamental para mantener altas los ratios de productividad de los empleados. Como parte de esta tarea, se tienen que incluir canales de ventilación y de aire acondicionado que garanticen una atmósfera de trabajo idónea en el interior y a los que únicamente podrán acceder aquellos empleados encargados del mantenimiento de las instalaciones. 4.7.3 Sistemas informáticos Una vez garantizado el suministro de energía y las condiciones de trabajo será necesario llevar a cabo un estudio de cuáles van a ser las necesidades departamentales para determinar el emplazamiento de las tomas de red y la propia estructura de la misma. Este estudio de previsión de los recursos que serán disponibles debe tener en consideración las futuras necesidades de escalabilidad que pueda presentar la red corporativa, así como los instrumentos que sean necesarios para garantizar la seguridad de la misma. Entre otros aspectos, se proyectará la colocación de routers38, switches39, servidores, centros de cálculo, terminales de trabajo, redes de telefonía, puntos de acceso y sistemas de prevención de intrusiones, de detección de malware y prevención de fugas de información. 38 El enrutador o router es un dispositivo de hardware para la interconexión de una red de ordenadores que opera en la capa tres (nivel de red) del modelo OSI. 39 Un conmutador o switch es un dispositivo digital de lógica de interconexión de redes de computadores que opera en la capa de enlace de datos del modelo OSI. Su función es interconectar dos o más segmentos de red, de manera similar a los puentes de red, pasando datos de un segmento a otro de acuerdo con la dirección MAC de destino de las tramas en la red (Areitio, 2008). 110 PROYECTO FIN DE CARRERA 4.7.4 Gestión y administración Uno de los aspectos más importantes referentes a la gestión y a la administración es la creación de un plan de contingencia. El plan de contingencia es un instrumento de gestión para garantizar el buen gobierno de las tecnologías de la información y las comunicaciones en relación con la calidad del soporte ofrecido y el desempeño de los trabajadores. Este plan ha de contener todas las medidas técnicas, humanas y organizativas necesarias para garantizar la continuidad del negocio y las operaciones de la compañía. Como tal, un plan de contingencia no es otra cosa que un caso particular de plan de continuidad del negocio aplicado específicamente al departamento de sistemas de información. Aunque otros departamentos pueden disponer también de planes de continuidad que persigan este mismo objetivo desde enfoques diferentes, dada la importancia de las tecnologías (como herramientas básicas de trabajo en la actualidad) en las organizaciones modernas, el plan de contingencias es el más relevante. El plan de contingencias sigue el conocido ciclo de vida iterativo PDCA (plan-docheck-act, es decir, planificar-hacer-comprobar-actuar) que nace de un análisis del riesgo donde, entre otras amenazas, se identifican aquéllas que afectan más directamente a la continuidad del negocio. Sobre dicha base se seleccionarán las contramedidas más adecuadas entre diferentes alternativas, siendo plasmadas en el plan de contingencias junto con los recursos necesarios para ponerlo en marcha. El plan debe ser revisado periódicamente. Generalmente, la revisión será consecuencia de un nuevo análisis de riesgo. En cualquier caso, el plan de contingencias siempre es cuestionado cuando se materializa una amenaza, actuando de la siguiente manera: - Si la amenaza estaba prevista y las contramedidas fueron eficaces: se corrigen solamente aspectos menores del plan para mejorar la eficiencia. - Si la amenaza estaba prevista pero las contramedidas fueron ineficaces: debe analizarse la causa del fallo y proponer nuevas contramedidas. - Si la amenaza no estaba prevista: debe promoverse un nuevo análisis de riesgos. El hecho de que las contramedidas adoptadas fueran ineficaces para hacer frente a una amenaza no prevista debe incentivar el análisis de lo ocurrido para tratar de determinar cuanto antes por qué no se consideró en los estudios preliminares, la posibilidad de que existiera esta amenaza. El plan de contingencias deberá comprender tres subplanes cada uno de los cuales determinará las contramedidas a tomar cuando se plantee cualquier tipo de amenaza: 111 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD - El plan de respaldo. Contempla las contramedidas preventivas antes de que se materialice una amenaza, a fin de evitar la materialización de la amenaza. - El plan de emergencia. Contempla las contramedidas a tomar durante la materialización de una amenaza, o inmediatamente después, con el objetivo de provocar efectos que palien la afección de la amenaza. - El plan de recuperación. Contempla las medidas a implementar una vez materializada y controlada la amenaza para restaurar el estado de las cosas tal y como se encontraban antes de que ocurriera la amenaza. Por otra parte, el plan de contingencias no debe limitarse a estas medidas organizativas, sino que también deberá expresar claramente: - Qué recursos materiales son necesarios. - Qué personas están implicadas en el cumplimiento del plan. - Cuáles son las responsabilidades concretas de esas personas y su rol dentro del plan. - Qué protocolos de actuación deben seguir y cómo son. - Qué formación será necesaria que tenga el personal. 4.7.5 Mantenimiento Una parte importante del mantenimiento de la seguridad en una empresa son las auditorías. Las auditorías de seguridad pueden ser, en función de qué tipo de empleados las realicen, internas o externas. Si bien es cierto que las auditorías internas serán más exhaustivas, dado que los empleados de la compañía conocen mejor el funcionamiento de los sistemas, el valor de éstas de cara al cliente, es mucho menor al de una auditoría externa, realizada por empresas especializadas en el campo y en principio, menos parciales en la evaluación. De forma paralela, se deberá realizar una inspección periódica de las infraestructuras. Esta inspección constará de dos partes: una visual, en la que se realizará una comprobación de las conexiones de todos los equipos, haciendo especial hincapié en aquellos que hayan podido ser manipulados o cuyo acceso sea más sencillo, con el objetivo de detectar dispositivos de captación de datos; y otra de carácter lógico, que buscará programas y aplicaciones potencialmente peligrosas para la seguridad de la empresa, eliminándolos de los equipos infectados. Adicionalmente, será necesario disponer de algunas fechas para la realización de pruebas los dispositivos hardware y comprobar su funcionalidad. Habitualmente, estos 112 PROYECTO FIN DE CARRERA parones de mantenimiento son realizados en horario no de oficina, por ejemplo en fines de semana concretos o en horario nocturno. 4.8 SEGUIMIENTO Y CONTROL Los modelos actuales de gestión y seguimiento del control de la seguridad suelen incluir dos tipos de elementos: por un lado, los orientados a prevenir intrusiones físicas y por otro los dispositivos encargados de prevenir las intrusiones a nivel de red. El primero de ellos incluye aspectos como el circuito cerrado de televisión, los detectores de intrusiones físicas, la monitorización del suministro eléctrico o la monitorización de las condiciones ambientales, aspectos que pueden dar pistas sobre accesos no autorizados al hardware. El segundo incluye otro tipo de dispositivos más relacionados con el control de acceso informático, como el uso de los cortafuegos, antivirus, IDS (Intruder Detection Systems, o sistemas de detección de intrusos en castellano) y herramientas para la monitorización de redes y sistemas. Todos estos aspectos, incluyendo las diferentes auditorías e inspecciones, así como las pruebas y paradas ya mencionadas para tareas de mantenimiento, deberán contemplarse en el plan de mantenimiento del hardware y software de la empresa y deberán estar debidamente documentadas. Tan aconsejable como la implantación de una política de seguridad es la comprobación de que esta política se lleva a cabo y que tanto el hardware como el software de la empresa cumplen con las medidas de seguridad que se haya decidido implantar. 4.9 EVALUACIÓN DE UN PROGRAMA DE I+D+I En este documento se ha propuesto una investigación que permite abrir nuevos horizontes en la detección de malware desarrollada íntegramente en un centro de investigación como la Universidad de Deusto. Sin embargo, en el mundo empresarial los fondos dedicados a la I+D deben ser considerados como una inversión, y como tal, es preciso analizar su impacto económico y social, para generar, primero rédito económico (o visto de otra manera, minimizar las pérdidas) y, segundo, seguridad para la empresa. Así, existen dificultades para examinar los resultados de la inversión en I+D. El factor tiempo es uno de los principales causantes de la complejidad a la hora de medir el impacto de la I+D, ya que ésta, lleva tiempo y es una inversión a largo plazo cuyos beneficios no siempre pueden ser perceptibles a corto plazo. La segunda fuente de problemas es, de la misma forma que ocurre con la seguridad, la atribución de los efectos de la I+D a las resultados económicos de la empresa, dado que no siempre es sencillo cuantificarlos económicamente y atribuirlos a una u otra investigación concreta. Aunque existen una serie de indicadores financieros para evaluar el retorno de una inversión como el Valor Actual Neto (VAN) o la Tasa Interna 113 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD de Retorno (TIR), la mejor herramienta para evaluar el impacto de económico de una investigación es el cash flow, que mide la capacidad de generación de fondos. El análisis de coste – beneficio puede ser - Ex-ante: que consiste en el análisis de costes y beneficios esperados de los resultados de la I+D. Ex-post: que consiste en el análisis de los costes y beneficios reales obtenidos, después de la inversión en I+D. Y ésta debe ser también la filosofía a emplear también para evaluar los efectos de la implantación de un sistema de seguridad. Según el laboratorio de investigación de la Universidad Louis Pasteur de Estrasburgo B. E. T. A. (Bureau d´Economie Theorique et Appliquée, en francés, Oficina de Economía Técnica y Aplicada) existen dos tipos de efectos de un proyecto de I+D que vamos a vincular aquí a la implantación de un sistema de seguridad informática como el que se define en el capítulo siguiente: directos e indirectos. 4.9.1 Efectos directos Los efectos directos son aquellos que están directamente relacionados con los objetivos de los proyectos de investigación tal y como han sido definidos al principio de cada uno de los proyectos, como por ejemplo el desarrollo de un nuevo producto o de una nueva familia de productos o el descubrimiento de una metodología útil que optimice los costes de un proceso de fabricación. En general los efectos directos están relacionados con la aplicación de nuevos conocimientos científicos o de nuevas tecnologías en el campo previsto, lo que en nuestro caso sería el desarrollo de un prototipo comercial de un detector de malware utilizando las técnicas descritas en el capítulo anterior. 4.9.2 Efectos indirectos Los efectos indirectos son aquellos que van más allá del ámbito de los objetivos de los proyectos y que se generan a partir del uso de lo que se ha aprendido a lo largo de la realización de éste en actividades que no están directamente relacionadas con el objetivo del proyecto de seguridad. Así, hay que diferenciar aquí los siguientes tipos de efectos indirectos. 4.9.2.1 Efectos tecnológicos Estos efectos indirectos, hacen referencia a la transferencia de la tecnología del proyecto analizado a otras actividades de la empresa y engloban: - 114 Transferencia de productos: la transferencia puede generar el diseño de topologías de red totalmente nuevas o la mejora de la calidad o rendimiento de las ya existentes. PROYECTO FIN DE CARRERA - Transferencia de proceso: la tecnología implementada y desarrollada se transfiere para adaptarla a otro proceso ya existente, que actualmente está siendo gestionado siguiendo premisas obsoletas. - Transferencia de servicio: la tecnología transferida es de una naturaleza mucho más intangible y trata de nuevas formas de lograr y suministrar servicios. - Patentes, aunque en el caso del software de seguridad existan problemas legales asociados dado que el código fuente de un programa no se puede patentar en sí (tiene la misma consideración que otros trabajos de autor como obras literarias por ejemplo). 4.9.2.2 Efectos comerciales Los efectos comerciales toman la forma de un incremento perceptible en las actividades económicas (como un incremento en la venta de productos y servicios) que no incorporen una significativa innovación tecnológica como consecuencia del proyecto en sí. Aquí hay que diferenciar entre: - Efectos de ampliación de mercados: que se refieren al impacto de los proyectos sobre la colaboración entre distintos agentes económicos (empresas, centros de investigación, universidad), nuevas relaciones comerciales, creación de empresas conjuntas o al desarrollo de nuevos proyectos en común dadas las garantías de seguridad que se ofrecen. - Efectos de prestigio de cara al cliente: por haber obtenido réditos que la empresa pueda emplear como herramientas de marketing si es capaz de ofrecer más garantías de seguridad que la competencia, por ejemplo, en relación con el fraude bancario. 4.9.2.3 Efectos organizativos Estos efectos indirectos hacen referencia a la experiencia adquirida que permita a los participantes modificar la organización interna en base a la aplicación de nuevas metodologías. - Experiencia y mejora en la gestión de proyectos. - Uso de equipos o nuevas formas de organización de la empresa - Utilización de prácticas de seguridad que sean puestas aplicadas también en otras actividades no relacionadas directamente con la seguridad informática. 115 4. PLANIFICACIÓN ESTRATÉGICA DE UN PROYECTO DE SEGURIDAD 4.9.2.4 Efectos sobre el factor trabajo Estos efectos recogen el impacto del proyecto de seguridad sobre el capital humano de la empresa e incluyen los siguientes: 116 - Ampliación del equipo técnico de seguridad, y de inspección y auditoría. - Aumento de la responsabilidad de los empleados con respecto a la información gestionada por ellos mismos. - Mejora de la competencia profesional del personal al incrementar los niveles de concienciación de la plantilla con respecto a los riesgos que entrañan las brechas de seguridad para el desarrollo del negocio. PROYECTO FIN DE CARRERA Capítulo 5 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA En este punto se va a hacer hincapié en la necesidad de adaptar los sistemas de seguridad de toda organización para la detección de malware, particularmente de aquél más específico que puede afectar a los equipos industriales. La principal desventaja de los sistemas convencionales es que se necesita que el malware haya dañado otros sistemas para así disponer de su firma almacenada en la base de datos y detectarlo posteriormente. Sin embargo, si este malware aún no ha dañado ningún otro sistema (0day attacks), la técnica de firmas se muestra poco útil ya que, habitualmente, éste ha sido modificado para atacar sistemas específicos que son diferentes de compañía a compañía en función de los equipos y topologías de red de los que se disponga. Estas mutaciones intencionadamente diseñadas para superar los obstáculos que los encargados de seguridad han ido colocando para prevenir ataques externos, hacen necesario emplear nuevas técnicas capaces de detectar variantes aún no registradas por los métodos tradicionales. Así, con este método de NOA y por comparación con variantes de malware ya almacenadas, se podría detectar la similitud de un programa con otro hermano y evitar la infección de equipos comprometidos. Sin embargo, éste no es el único aspecto de seguridad que se tratará en este capítulo. Adicionalmente, se hará referencia a una serie de buenas praxis a seguir para minimizar los efectos del malware y/o de las intrusiones en los equipos industriales. Así, se propondrá una topología de red y un diseño recomendado para la creación de una intranet y de una extranet, haciendo también especial incidencia en aspectos relativos a la seguridad física de los equipos. Si bien es cierto que no existe un sistema de seguridad que sea 100% seguro, sí que se implementarán estrategias de seguridad apropiadas para mitigar estos riesgos de infección, sin pasar por alto las campañas de concienciación de los empleados con respecto a aspectos relativos a la seguridad, como pilar fundamental desde el que edificar una red con la que hacer frente a los riesgos que entraña el malware para la propia salud de la compañía. 117 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA 5.1 SEGURIDAD FÍSICA DE LOS EQUIPOS Si bien es cierto que con la incorporación de sistemas de detección y de cortafuegos se pueden minimizar los accesos no autorizados desde el exterior, no hay que descuidar la seguridad física de los equipos e información de la compañía. En este apartado se van a proponer una serie de medidas estructurales relativas a la seguridad física de las instalaciones que también deberían ser tenidas en cuenta en la implantación de todo complejo industrial, más aún, cuando gran parte del valor añadido de muchas empresas tecnológicas viene facilitado por el know-how de la compañía más que por la masificación de los recursos humanos o por puntuales reducciones de los costes de fabricación. 5.1.1 Factores ambientales En este apartado se van a incluir factores generales no directamente relacionados con el hardware pero que deberán ser tenidos en cuenta en todo proceso de implantación de cualquiera que sea la instalación empresarial. Los aspectos aquí mencionados hacen referencia a la utilización de recursos que permitan minimizar la información expuesta a ataques de la compañía, empleando técnicas de fácil implementación como el uso de cámaras de seguridad, el control de la visibilidad externa o la concienciación del personal desarrollando una política de control de los materiales de oficina desechados. 5.1.1.1 Cámaras de seguridad y su monitorización Las cámaras de seguridad son un elemento imprescindible si se tiene que proteger elementos realmente críticos o sistemas especialmente atractivos por su interés industrial. Este punto debería incluir la vigilancia de todos los sistemas que alberguen datos económicos, números de tarjetas de crédito, datos de clientes o proveedores, datos personales de nuestros clientes, secretos corporativos, etc., siendo recomendable contar con personal de vigilancia contratado para preservar el acceso a los centros de datos que contengan esta información. Este personal deberá contar con cámaras de seguridad que le permitan monitorizar el edificio ante el acceso de posibles intrusos o de actuaciones sospechosas del personal contratado. Así, debería tenerse en cuenta la incorporación de dichos centros a las rutinas de patrulla de los guardias de seguridad, contando, siempre que se pueda, con personal para el control de acceso al recinto y con personal encargado de la monitorización de las cámaras de vigilancia, previendo incluso eventuales bloqueos de los propios sistemas de vigilancia por cortes de energía, incendios o mal funcionamiento. En este punto no hay que pasar por alto cuestiones relativas a la privacidad del personal en relación con la instalación de todo circuito cerrado de televisión, respetando en todo momento la normativa legal con respecto a la privacidad de las personas en sus puestos de trabajo. 118 PROYECTO FIN DE CARRERA 5.1.1.2 Control de ventanas y visibilidad desde el exterior Habitualmente, se observa que en entornos reales se tiene visibilidad desde el exterior de los monitores y teclados de los usuarios que están trabajando dentro del edificio. Esto es un fallo de seguridad física a tener en cuenta, puesto que un intruso podría observar desde una ventana o desde el exterior del edificio, cómo el personal teclea sus contraseñas personales o consulta datos secretos o críticos para la empresa. La solución, aunque sencilla, no siempre es tenida en cuenta. Aunque a menos que sea estrictamente necesario, no se aconseja la instalación de cortinillas o sistemas similares, casi siempre, con una recolocación de los escritorios de los empleados o de sus sistemas informáticos (eligiendo una localización adecuada para los monitores y teclados), bastaría para proporcionar una seguridad física suficiente lejos del alcance de observadores desde el exterior. 5.1.1.3 Control de desechos y basura Un encargado de seguridad debería también tener en cuenta la colocación de los contenedores de basura de la empresa y los métodos de destrucción de la documentación, ya que cualquier intruso podría estar interesado en la información allí contenida. Esta información puede contener, entre otros, los siguientes documentos: - Números y claves de empleados, números de teléfono, cuentas de correo internas, información fiscal. - Documentación confidencial sin destruir. - Números de la seguridad social o información bancaria, entre otros datos personales de los clientes protegidos por la Ley Orgánica de Protección de Datos. - Planos de la empresa, de la disposición de los equipos en el edificio o, incluso, de los sistemas de seguridad. - Datos técnicos de la red y de los sistemas informáticos de la empresa. - Datos sobre los empleados y la estructura administrativa de la empresa. - Números de teléfono internos. - Datos sobre la jerarquía administrativa de la empresa. Así, cualquier intruso podría hacer uso de todos estos datos para aplicar técnicas de ingeniería social sobre los empleados y departamentos, usándolos mediante llamadas a teléfonos internos e identificándose como usuarios legítimos para solicitar datos que normalmente no se facilitan a menos que sea a nivel interno. Este tipo de ataques de 119 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA ingeniería social vía telefónica son cada vez más comunes y deben ser una de las principales preocupaciones del departamento de seguridad, ya que, una vez más, es el factor humano el eslabón más débil de la cadena de seguridad. Para evitarlo, todos los documentos internos de la empresa deberían ser destruidos mediante máquinas adquiridas para dicho fin, eligiendo aquéllas que los destruyan totalmente e intentando evitar las tan conocidas tiras verticales de papel que puedan volver a entrelazarse con la suficiente dosis de paciencia. La incineración de los mismos sería la opción ideal para aquellos documentos de los que se crea conveniente una destrucción total, aunque se recomienda adoptar como buena práctica la inclusión en el proceso de empresas externas, siempre y cuando se tengan las garantías de que el tratamiento de esta información es el apropiado. Otro punto importante debe ser la creación de una política de destrucción de documentación que todos los empleados deberán cumplir, responsabilizándose personalmente de cada uno de los datos y documentación que desechen por su cuenta. 5.1.2 Accesibilidad directa al hardware corporativo En este apartado se hace referencia a estrategias más específicas en relación con el control del acceso al hardware. Así, se citan buenas costumbres relacionadas con el uso de las cerraduras, con la organización física de los espacios críticos, el uso de dispositivos de memoria y la protección física de la red corporativa. 5.1.2.1 Llaves y cerraduras La seguridad física de los armarios y racks40 es básicamente la de sus cerraduras y llaves, pues aunque podemos estudiar la fortaleza física del armario es aún menos probable que un atacante potencial tenga interés en destrozar un armario o rack para acceder a su interior con el consiguiente ruido generado. Sin embargo, las llaves y cerraduras dan una falsa seguridad al administrador de sistemas. La gran mayoría de los armarios y racks que se comercializan tienen cerraduras y llaves muy simples que pueden ser abiertas con la suficiente habilidad y el material y los conocimientos necesarios. En internet existen numerosas guías (Theodore, 1991) de lock picking (o de forzado de cerraduras) en las que se enseña a abrir este tipo de cerraduras con equipos de apenas 10 dólares como el de la Figura 5-1. 40 Un rack es un bastidor destinado a alojar equipamiento electrónico, informático y de comunicaciones. Las medidas para la anchura están normalizadas para que sea compatible con equipamiento de cualquier fabricante, siendo la medida más normalizada la de 19 pulgadas (o 48,26 centímetros). 120 PROYECTO FIN DE CARRERA Figura 5-1. Equipo de lockpicking sencillo con diferentes ganzúas para su uso en diferentes tipos de cerraduras. Para darse cuenta de los peligros que entraña para la seguridad física y la informática el uso de las técnicas de lock picking es recomendable consultar el documento The MIT Lock Picking Guide (Theodore, 1991). La técnica, que al principio puede parecer complicada y difícil de implementar en una cerradura real, es sencilla si se cuenta con la experiencia necesaria. Se aconseja, por tanto, el uso de llaves de varios cilindros, similares a las que se encuentran en las puertas blindadas y que son prácticamente imposibles de abrir mediante estas técnicas. Con respecto a los racks, debería estudiarse qué máquinas y qué dispositivos de red se incluyen en qué racks. Con esto, se conseguirá que un usuario malintencionado que intente manipular las máquinas, redes o puntos de acceso del rack para, por ejemplo, colocar sniffers41 u otros dispositivo de captación de datos, lo tenga más complicado al tener que acceder a diferentes estancias Así, sería recomendable mantener en un rack los servidores de ficheros, en otro los de aplicaciones y en otro diferente los dispositivos de red. Esto mismo es también aplicable a las conexiones serie que permitan la administración remota de los dispositivos, puesto 41 En informatica, un packet sniffer es un software destinado para detectar tramas en la red en la capa de enlace de datos. No son descartadas las tramas no destinadas a la MAC address de la tarjeta; por lo que se puede capturar (sniff, esnifar) todo el tráfico que viaja por la red. 121 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA que los mecanismos de seguridad y control de acceso en estos puertos no suelen ser tan fuertes como cuando se accede mediante telnet42 o mediante interfaces web. 5.1.2.2 Acceso físico a las máquinas y dispositivos de red La seguridad física es más complicada de controlar dado que los sistemas informáticos suelen estar cercanos al usuario final o al propio administrador, quedando expuestos a un mayor peligro por mal uso además de por un uso malintencionado. No se debe confiar en el cumplimiento pleno de las normativas de uso apropiado de los equipos industriales. Estas máquinas están más expuestas a intrusos ajenos al personal de la empresa que hayan podido superar los controles de acceso a niveles superiores, por lo que se deben configurar siempre que sea posible, de forma que sea lo más complicado posible realizar manipulaciones sobre ellas, tanto a nivel físico como a nivel lógico. Es inevitable que el personal tenga acceso físico a las máquinas sobre las que trabajan, con las que interactuarán a través del uso de disqueteras, CDROM o similares, y, en algunos casos, incluso a través de otros servidores alojados en la red. Sin embargo, teniendo en cuenta este factor, se debe intentar mantener los servidores y los dispositivos de red lejos del usuario final alojados en racks, armarios o centros de datos. Los usuarios podrán acceder a sus datos a través de la red local y mantener los datos importantes a salvo, aunque el hardware donde van a trabajar esté desprotegido por estar en su puesto de trabajo. Los sistemas NAS43 y otros sistemas de almacenamiento de datos o servidores de aplicaciones pueden ayudar a preservar la seguridad en este entorno. Por tanto, con el objetivo de mantener los datos y el trabajo del usuario fuera de la máquina donde se vaya a trabajar, se deberá instar al personal de administración para que organice el sistema de forma que los usuarios finales trabajen directamente sobre servidores de ficheros y servidores de aplicaciones de forma remota, manteniendo así los datos a salvo de errores o manipulaciones del hardware. Bien estudiado, este sistema puede suponer también un ahorro adicional en el hardware de las estaciones de trabajo del usuario final, que podrán ser menos complicadas en su constitución (y por tanto más económicas) y más sencillas de administrar y gestionar. Estos últimos, actúan básicamente como los antiguos terminales X o terminales de texto, y son cada vez más utilizados en todo tipo de empresas, especialmente en bancos 42 Telnet (del inglés, TELecommunication NETwork) es el nombre de un protocolo de red que sirve para acceder mediante una red a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. Aunque sólo sirve para acceder en modo terminal (sin gráficos) ha sido una herramienta útil para arreglar fallos a distancia. 43 NAS (del inglés Network Attached Storage) es el nombre dado a una tecnología de almacenamiento dedicada a compartir la capacidad de almacenamiento de un computador (Servidor) con ordenadores personales o servidores clientes a través de una red (normalmente TCP/IP), haciendo uso de un Sistema Operativo optimizado para dar acceso con los protocolos CIFS, NFS, FTP o TFTP. 122 PROYECTO FIN DE CARRERA o entidades financiera, donde la seguridad de los datos que se maneja es crítica y el usuario final debe tener un acceso especialmente restringido a ellos. Como evolución de estos sistemas, es muy común hoy en día el uso de aplicaciones que son ejecutadas sobre navegadores web y que usan servidores de aplicaciones y bases de datos para acceder a la información. Es aconsejable la implementación de cualquiera de estas soluciones siempre que sea económica y administrativamente posible. 5.1.2.3 Alojamiento físico de las máquinas Ya se ha hablado sobre el alojamiento físico de las máquinas principales que proporcionan los servicios críticos de la empresa que incluyen los servidores de archivos, los servidores de aplicaciones, los sistemas de backup y todas las máquinas que proporcionan seguridad informática a la empresa, como firewalls44, detectores de intrusos y similares. En el caso de los equipos de escritorio y de los concentradores departamentales, la regla a seguir sigue siendo la misma que se ha aplicado anteriormente: cuanto menos acceso tenga el usuario final a las máquinas que contienen los datos sobre los que trabaja y sobre las que tiene que trabajar, mejor para la seguridad física. El procedimiento más seguro consistiría en alojar todas estas máquinas a las que no tiene que acceder físicamente el usuario final, en racks y armarios, aunque se pueden contemplar alternativas utilizando sistemas de trabajo remoto sobre servidores de aplicaciones como Citrix Delivery Center45 y similares. Esta última opción es la ideal, porque permite al usuario trabajar en su estación de trabajo sin que se le tengan que conceder permisos de seguridad especiales, manteniendo los datos sobre los que trabaja y su propio trabajo en los servidores principales de la empresa, sobre los que se concentrarán las medidas de protección en cuanto a su seguridad física. Para los dispositivos de red lo mejor es alojarlos en armarios o racks especiales, prestando especial atención a la forma en que el cableado es conectado a los mismos para evitar la posibilidad de que éste sea seccionado, desconectado o intervenido. Si estos tuvieran que estar alojados cerca del usuario final (entendiendo como tal el personal de mantenimiento informático encargado de realizar pruebas de red o cambios en el cableado) será conveniente proteger los dispositivos contra manipulaciones 44 Un firewall en (o cortafuegos en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios. 45 Citrix Delivery Center es una herramienta compuesta por XenDesktop, XenApp, XenServer y NetScaler, que virtualiza servidores, puestos de trabajo y aplicaciones, los centraliza en un centro de datos y las distribuye en forma de servicios bajo demanda. 123 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA remotas limitando el acceso por medio de claves suficientemente seguras y estableciendo protocolos de registro que recojan quién y cuándo accedió a ellos. Si fuera necesario se tendrá que considerar la posibilidad de activar o desactivar parte de sus funcionalidades para limitar el acceso que el usuario final tenga a estos dispositivos. 5.1.2.4 Las cajas de los equipos En la actualidad, la mayor parte de las cajas de los equipos informáticos no proveen ningún tipo de seguridad contra accesos a su interior no autorizados. De hecho, cada vez se hacen más fáciles de abrir para permitir su manipulación y la inclusión de módulos de memoria, tarjetas gráficas o de sonido y discos duros, de modo que haya que tener en cuenta diferentes soluciones para dificultar la manipulación de los equipos por parte de personal no relacionado con el departamento técnico. El principal inconveniente es que las cajas vienen impuestas por el hardware ya adquirido, y, normalmente es objetivamente complicado convencer a departamentos ajenos al de Sistemas de Información para que las sustituya por otras más seguras atendiendo, generalmente, a razones presupuestarias. Como ya se ha indicado, parte del proceso de securización de una empresa pasa por una fase previa de establecimiento de prioridades. Es entonces cuando se tendrá que decidir el hardware de qué equipos es necesario proteger con tanto celo. Algunas de las alternativas que se contemplan son las siguientes: - La primera y más simple consiste en el sellado de la caja. Esto permitirá, cuando menos, alertar de accesos no autorizados sirviendo también como elemento disuasorio. Huelga decir, que el único personal capacitado para colocar o retirar dichos sellos deberá ser el personal de mantenimiento. - También se puede contemplar el sellado con silicona de los tornillos de la caja (o incluso de la totalidad del borde de la tapa) para impedir su apertura a costa de un incremento de los costes de mantenimiento. - Otra solución consiste en colocar un candado en la caja que impida su apertura. Aunque esta posibilidad complica la manipulación, no hay que olvidar que para acceder a determinados datos bastaría con alcanzar el disco duro y realizar una conexión a un equipo externo abriendo parcialmente la caja. - Para equipos cuyo acceso fuera crítico se podrían considerar opciones aún más radicales como la soldadura de la tapa de la caja con el armazón, para asegurar que ésta no ha sido abierta. Esta técnica es utilizada en determinados dispositivos militares de alta seguridad como equipos destinado al lanzamiento o guiado de misiles, pero también pueden ser encontrados en determinados equipos de instalaciones civiles. Sin embargo, si la empresa dispone de presupuesto para ello, se recomienda la adquisición de cajas más seguras. Varias compañías venden cajas que tienen cerraduras 124 PROYECTO FIN DE CARRERA y sistemas de anclaje de la tapa con el armazón que proporcionan un plus de seguridad contra intrusos. El único punto débil de éstas volverá a ser el de la cerradura, que deberá ser segura para evitar su apertura con las técnicas de lock picking ya mencionadas. Otras alternativas menos económicas son las que contemplan el uso de cajas de metacrilato fabricadas a medida para cada uno de los sistemas. Estas cajas, aunque de un coste superior, pueden ser fabricadas con prácticamente cualquier tipo de características (incluyendo la incorporación de puertas y cerraduras) dadas las posibilidades que ofrece la manipulación del material. El polimetilmetacrilato tiene la ventaja de tener una resistencia del orden de diez veces superior a la del vidrio siendo aproximadamente la mitad de pesado que éste, además de ser un excelente aislante del ruido y del calor, pudiéndose mecanizar en frío y permitiendo la incorporación de huecos para el uso de CD-ROM, disqueteras y otros dispositivos. Sin embargo, hay que reseñar nuevamente que todas estas opciones no son más que parches para afrontar el problema principal, que es el de mantener datos importantes en una máquina expuesta al usuario final y a posibles intrusos. La mejor opción vuelve a ser mantener estos datos en un lugar seguro y vigilado (como un servidor de archivos dentro de un armario o rack) y que el usuario trabaje de forma remota sobre estos datos, con lo que la seguridad física del terminal del usuario final será menos importante. 5.1.2.5 Acceso al interior de los equipos El acceso a los equipos de red, sistemas NAS, sistemas servidores de archivos, sistemas servidores de aplicaciones y similares entraña más riesgos que los anteriores dado que, aunque estos equipos normalmente no son modificables, en la mayoría de los casos son de fácil apertura, para facilitar su escalabilidad, haciendo más sencillo el trabajo del personal de mantenimiento y administración. Hay que tener en cuenta que la repercusión sobre la seguridad de la apertura de un NAS podría tener consecuencias mucho más dramáticas que el acceso no autorizado al equipo de un empleado, puesto que todos los datos de trabajo de la empresa podrían quedar a disposición de un intruso de forma inmediata. Otro problema adicional es que estos sistemas suelen tener discos duros estándar, que podrían ser replicados con un portátil y devueltos al sistema NAS sin que, encima, nadie detectase lo ocurrido, lo que hace del robo un hecho aún más peligroso. Este punto es también aplicable para otros tipos de servidores e incluso para los dispositivos de red, que pueden ser alterados una vez abiertos para cambiar su configuración, borrar las claves de acceso entre otras manipulaciones similares. 125 5. 5.1.3 IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA Sistemas de almacenamiento USB, dispositivos de mano y portátiles Los DONGLE46 USB son una de las principales amenazas para los administradores de sistemas y los encargados de la seguridad del sistema. Para empezar tenemos lo que puede venir en ellos: virus, software pirateado, todo tipo de software o datos poco recomendables para un lugar de trabajo, juegos, etc. Luego tenemos todo lo que se puede llevar en ellos: datos de la empresa, software cuya licencia ha sido adquirido por la empresa, software bajado de internet, etc. Si lo que más nos preocupa (tenemos antivirus, firewall, control de software, etc.) es que el usuario pueda replicar datos y sacarlos de la empresa sólo podemos hacer dos cosas: la primera, y la que siempre recomendamos es mantener los datos lejos del usuario, la segunda, es inhabilitar los puertos USB y los sistemas serie o paralelo, ya sea mediante métodos software o hardware. Los puertos serie y paralelo no suponen un gran peligro, puesto que los dispositivos de almacenamiento que normalmente se conectan a ellos suelen necesitar en el sistema operativo Windows de drivers especiales, que podemos controlar que no se puedan instalar de diversas formas, sobre todo mediante software de control de instalación de software. Los dispositivos USB son un problema mayor, como ahora veremos. Si estamos hablando de Software Libre como Linux o FreeBSD no hay mucho problema. El soporte USB de almacenamiento viene como módulos del kernel que pueden quitarse del sistema con lo que no se podrán usar DONGLE USB ni dispositivos de almacenamiento USB. Lo mismo para los dispositivos serie y paralelo. Este sistema es muy simple y es ideal para evitar este tipo de comportamientos. Pero si hablamos de Windows el caso es diferente. Aquí es más complicado quitar los drivers de almacenamiento externo USB, sobre todo en Windows XP que incorpora de serie drivers para todo este tipo de dispositivos. Si es posible se quitarán del sistema los drivers para este tipo de dispositivos o se inhabilitará mediante software la instalación de nuevo hardware en el sistema (lo cual es un problema si tenemos impresoras o ratones y teclados USB que tengan que autodetectarse). La solución más radical (y no por ello la más recomendable) es quitar el cableado de los puertos USB frontales que conectan a la placa base y ya puestos a cacharrear podemos incluso sellar o desoldar los puertos USB integrados en la placa base. Si no queremos realizar semejante chapuza podemos intentar desactivar estos puertos mediante switches o puentes en la placa base, pero esto no es siempre posible. Si queremos aislar de verdad 46 Pen Drive Security, llave electrónica, candado electrónico, seguro electrónico o DONGLE en inglés, es un pequeño dispositivo de hardware que se puede integrar a un programa y se conecta a un ordenador, normalmente, para autenticar un fragmento de software. 126 PROYECTO FIN DE CARRERA el sistema siempre podemos comprar cajas de metacrilato cerradas que solo permiten la ventilación del sistema y no el acceso a este, pero estamos hablando ya de soluciones realmente radicales para un simple DONGLE USB... Para los dispositivos de mano se debe incidir en que deben tomarse exactamente las mismas medidas que para los portátiles, aunque teniendo en cuenta que normalmente no contienen datos tan críticos para la empresa como éstos que son mucho más fáciles de robar. Suele ser bastante común, el robo de un dispositivo de mano con todos los datos de un empleado, que luego pueden ser usados para realizar hacking social, pues suelen contener números de teléfono internos de la empresa, datos sobre ésta, y en los casos mas peligrosos, incluso passwords de acceso a los sistemas. Lo mejor que se puede hacer es aconsejar a los empleados sobre no mantener nunca datos importantes en este tipo de dispositivos, especialmente, passwords de acceso. También conviene exigir que, si uno de estos dispositivos es robado o perdido, se realice un informe para la empresa en donde se indique al personal de seguridad qué datos susceptibles de ser usados para ingeniería social o qué datos informáticos podría contener el dispositivo. Así, debe crearse una política de uso y responsabilidad para las personas que utilizan ordenadores portátiles de la empresa y sobre todo para las personas que tienen que llevarse estos dispositivos fuera de la misma. Lo más importante, aparte del valor económico de éstos, son sin duda los datos que puedan contener, motivo por el cual debe responsabilizarse a los usuarios de los portátiles que se sacan de la empresa, manteniendo un control de entrada/salida de estos dispositivos y de la integridad física de los mismos. De cualquier manera, como regla general, los portátiles que deban abandonar la empresa no deberían contener ningún tipo de dato comprometedor para la compañía, para que, en caso de que el usuario necesite acceso a estos datos, por ejemplo, desde su domicilio particular, se estudie la instalación de una línea ADSL/DSL/Cable y se permita una conexión segura a los servidores de la empresa. Si el usuario debe de usar estos dispositivos en otras empresas o en trabajos de campo, deberán protegerse de todas las formas posibles los datos críticos que puedan contener, cifrándolos con sistemas seguros y permitiendo sólo el acceso al trabajador por medio de claves intransferibles de las que éste deberá ser responsable. Como el equipo está en manos del usuario y además alejado de la empresa y por tanto de los administradores y encargados de seguridad, el hardware tiene muchas posibilidades de ser manipulado. El usuario puede conectar todo tipo de dispositivos a él, puede sacar el disco duro y replicarlo o incluso cambiarlo por otro modificando el hardware por medio del uso de tarjetas PCMCIA (PCCARD). La única solución es la responsabilización de forma seria del usuario de la integridad física de la máquina, teniendo una política muy clara de lo que el usuario puede hacer o no hacer con el ordenador. 127 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA Otro punto a tener en cuenta y que no es el tema de esta parte del documento es la seguridad informática. Aquí los administradores de sistemas tienen un verdadero problema, puesto que los portátiles que salen de la empresa suelen volver a ella repletos de virus, software no deseado, errores cometidos por el usuario o simplemente con programas y datos borrados. Para protegerse de este tipo de eventos hay dos soluciones que proporcionarán al menos una mínima seguridad: - Una de ellas es el adquirir software antivirus, firewalls personales y software de control de acceso al portátil que impida la instalación de software y medidas similares. - La otra opción es el control a la salida del portátil de su contenido por medio de un backup, que se volverá a comprobar cuando el portátil vuelva a la empresa para comprobar la integridad de los datos. 5.1.4 Protección frente a sistemas de captación de datos Los keycatchers o capturadores de claves hardware tuvieron un gran impacto en el pasado, como herramientas utilizadas por los atacantes para almacenar las pulsaciones por teclado de los usuarios. Los keycatchers son DONGLE que se interponen entre el teclado y el ordenador para captar las pulsaciones del usuario, grabando los datos que se introducen con la intención final de adquirir toda clase de claves que el usuario pueda teclear. Son dispositivos aparatosos y fáciles de detectar, aunque también son fáciles de instalar y volver a quitar. A pesar de que debido a su fácil detección este tipo de dispositivos son menos usados hoy en día, se debería realizar un estudio periódico que confirme que no existe ningún tipo de aparatos de esta naturaleza conectados ni a los teclados de los terminales de los trabajadores, ni directamente a conexiones vacías de la propia red. Otros elementos a considerar son los dispositivos tap, que actúan de forma similar a los keycatchers y a otras máquinas conectadas a las bocas de red, pero que disponen de una funcionalidad adicional que les permite leer el tráfico de una red sin tener que emitir ningún tipo de dato en la misma (como por ejemplo, la solicitud de una dirección IP), por lo que son, en principio, indetectables a nivel de seguridad lógica. Estos elementos se suelen usar por parte de los auditores de seguridad para instalar dispositivos IDS stealth (o detectores de intrusos no detectables como máquinas de la red) y para hacer sniffing de la red sin ser detectados. Aunque son muy útiles para el administrador de sistemas, pueden volverse en su contra si un intruso malintencionado lo instala en la red. Como ya se ha dicho, estos dispositivos pueden funcionar incluso sin una dirección IP asignada, pudiendo estudiar los datos que pasan por la red a la que están conectados, 128 PROYECTO FIN DE CARRERA conformando una especial amenaza si son conectados al puerto que replica los demás puertos de un concentrador. Para evitarlos y minimizar sus riesgos existen dos alternativas: - Limitar las direcciones MAC47 a las que se envían los datos, ya sea por medio de los concentradores o por medio de la VLAN. - Vigilar de forma intensiva que este tipo de dispositivos no se inserten en las bocas de red desocupadas y / o en los concentradores. Sin embargo, además de los tap y de los keycatchers existen muchos otros sistemas de captación de datos: - Dispositivos que se intercalan en el cable de red y graban los datos en bruto para que luego se puedan decodificar y analizar. - Intrusos conectados con un portátil a un puerto cualquiera de un switch que replique todo el tráfico de la red. - Sniffers para la obtención de datos y passwords que circulen a través de la red alámbrica. - Dispositivos de captación de datos provenientes de redes wireless, que pueden decodificar, entre otros, el sistema de cifrado WEP. Cualquiera de estos dispositivos instalado unos minutos en una máquina de trabajo del personal de cualquier compañía, podría proporcionar al atacante información tan importante como las claves para acceder a la intranet de la empresa, números de tarjetas de crédito, números de cuenta, o cualquier otra información confidencial susceptible de ser explotada por medio de técnicas de ingeniería social. 5.1.5 Concentradores, bocas de red y conectividad Los concentradores y las bocas de red suponen un peligro inmediato de seguridad física, ya que cualquier intruso con un portátil o un aparato de mano con una tarjeta de red podría conectarse a cualquiera de ellas y obtener una dirección IP para conectarse a la red interna de la empresa. Se deben estudiar tanto las bocas de red (especialmente aquéllas que no estén ocupadas, aunque también las que estén ocupadas pero puedan ser desconectadas y reutilizadas); como los concentradores que tengan conexiones libres. En el caso de los concentradores bastará con situarlos en armarios o racks convenientemente asegurados. 47 En redes, la dirección MAC (por sus siglas en inglés, Media Access Control; o en castellano control de acceso al medio) es un identificador de 48 bits (6 bloques hexadecimales) que corresponde de forma única a una tarjeta o dispositivo de red. Se conoce también como dirección física, y es única para cada dispositivo. 129 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA El caso de las bocas de red es de más difícil solución. Si no hay perspectivas de que la red corporativa vaya a incorporar nuevos equipos en un futuro inmediato, lo más aconsejable será desconectar todas las bocas de red que no estén siendo utilizadas para garantizar que nadie pueda conectarse a través de ellas. En el caso de que se vaya a instalar una nueva máquina, el procedimiento pasa por conectar en el rack el cable que da conectividad a la boca de red en cuestión. Tener todas las bocas de red conectadas es tener accesos libres a la red repartidos por las instalaciones abiertas a ser utilizados por cualquiera. En el caso de aquellas bocas de red que están siendo utilizadas por los usuarios, deberemos monitorizar e identificar de alguna forma las máquinas que deben estar en cada red, o asignarlas las direcciones IP y la conectividad por medio de las direcciones MAC de las tarjetas. Este procedimiento prevendrá de que un supuesto intruso desconecte una máquina y conecte un portátil o un dispositivo de mano y acceda a la red dado que las direcciones MAC son propias de cada dispositivo, aún asumiendo que es más costoso mantener en el servidor DHCP o en los concentradores todas las direcciones MAC de las tarjetas de red de las máquinas de usuario. Aunque existen técnicas de MAC spoofing o de suplantación de la dirección MAC, se ofrecerá una mayor seguridad de que los equipos que se conectan están habilitados para ello. 5.1.6 Seguridad física del cableado La seguridad física del cableado no por obvia, es menos importante. La principal preocupación de todo departamento de seguridad informática debería ser minimizar los puntos en que un intruso pudiera seccionar este cableado. Es por ello, que uno de los puntos más críticos al respecto es de las bocas de red y los conectores, que forman parte también del cableado. Para comprobar la red existen los comprobadores de redes LAN que permiten comprobar si los cables tienen algún tipo de problema. Estos comprobadores de red pueden ser utilizados in situ facilitando la determinación de direcciones IP, la identificación de la polaridad, la medición a doble carga o la detección de un cable concreto. Ocasionalmente, vienen acompañados por aparatos para el control de conductores de ondas de luz que son dispositivos láser del tamaño de un bolígrafo que muestran los puntos de rotura o los empalmes dañados en líneas de fibra óptica.. Con estos equipos se podrá comprobar el estado de las redes LAN, tanto en lo referente al cableado como a los hubs y switches ya que los modelos más avanzados permiten incluso analizar el trafico y la dirección IP que lo genera. También deberemos comprobar que el cableado cumple las normativas necesarias y que tiene la calidad necesaria, normalmente CAT5 o CAT7. En el caso del cableado coaxial grueso o fino (aunque cada vez sea menos común), se deberá utilizar otro tipo de aparatos para realizar estas comprobaciones, prestando atención a sus características eléctricas y las de los terminadores y dispositivos «T» que conectan las máquinas. 130 PROYECTO FIN DE CARRERA Para evitar el posible seccionamiento del cableado de red lo mejor es entubarlo o integrarlo en la estructura del edificio. Muchos edificios tienen paneles desmontables dentro de los cuales se puede alojar el cableado de red, pero deberá asegurarse que no son fácilmente desmontables o cualquiera podría abrirlos para seccionar el cable. Para los cables de fibra óptica deberemos estudiar la posibilidad del seccionamiento del cable, las características ópticas de éste y vigilar que este tipo de cables, que suelen ser frágiles, no estén acodados o doblados excesivamente. A nivel militar existen dispositivos de captación de datos mucho más sofisticados, que pueden incluso captar las comunicaciones de un cable sin tener conexión física con éste, estudiando simplemente el campo magnético que genera. Sin embargo, son elementos tan sofisticados que deberían empezar a tenerse en cuenta en el caso de que se quiera proteger determinadas agencias gubernamentales o la sede de una multinacional. 5.1.7 Establecimiento de un protocolo de red inalámbrica segura Asumiendo las facilidades y comodidades que supone el uso de redes inalámbricas para permitir el uso de portátiles y su conexión a la red en momentos puntuales, es muy recomendable desactivar su funcionamiento si se atiende a criterios de seguridad. La principal ventaja de estas redes para los atacantes es que se está facilitando puntos de acceso a la red corporativa desde espacios que están situados físicamente fuera de los dominios de la empresa. Aunque pudiera sonar un tanto radical, hay que ser conscientes que se está hablando de utilizar un sistema que permite el acceso a los datos en bruto desde el exterior de la empresa. Si realmente se opta por emplearlo, es de vital importancia utilizar tarjetas y puntos de acceso con la última tecnología disponible, tanto para las tecnologías Wireless como para el Bluetooth manteniendo siempre el software debidamente actualizado. El mejor escenario posible sería ser capaces de aislar los equipos que empleen la red inalámbrica de aquéllos que usen la red corporativa que gestione información comprometida. En muchas ocasiones esto es posible dado que los empleados habituales utilizan equipos informáticos conectados a través de redes Ethernet y las conexiones inalámbricas tienen como objetivo dar servicio y conectividad a equipos externos que estén desarrollando actividades esporádicas en las instalaciones de la empresa. Si ya se dispone de un sistema instalado y éste es vulnerable, es conveniente asegurarse de que todas las conexiones que se realicen a través de la red inalámbrica sean seguras, usando SSH, SSL y similares para evitar que el sistema pueda ser comprometido con facilidad. Asimismo, otros puntos que se tienen que tener en cuenta a la hora de implementar una arquitectura segura para redes inalámbricas son los siguientes: - Sistema de gestión de contraseñas de administración de los puntos de acceso debe ser equivalente a la gestión de contraseñas de cualquier otro servidor. La administración de puntos de acceso debe hacerse por canales seguros (SSH, SSL, subred de administración segregada de la red principal, etc.) 131 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA - Considerar si es necesaria la retransmisión del SSID (Service Set Identifier) - Gestión y monitorización de los puntos de acceso (mediante SNMP y/o syslog) integrada con infraestructura de monitorización y administración existente en la organización. - Uso de segregación de redes, DMZ, firewalls, y asignación automática de VLAN para los clientes wireless, con objeto de realizar un mayor control sobre el acceso a la red y a los recursos. - Estudio de la localización de los puntos de acceso para minimizar el tráfico inalámbrico y posibilidad de conexión a la red desde zonas no deseadas o fuera del ámbito de la organización. - Uso regular y procedimentado de técnicas para detectar puntos de acceso no autorizados (Netstumbler, AirSnort, etc.) - Monitorización y auditoría de los registros de acceso del servicio RADIUS. De esta manera, aunque las redes inalámbricas basadas en el estándar IEEE 802.11 son una tecnología que aporta beneficios considerables en términos de flexibilidad, escalabilidad y movilidad, tienen también un gran impacto en la infraestructura, operaciones y seguridad de la información de las organizaciones. La clave para un correcto y eficaz despliegue y explotación de este tipo de redes está en comprender los riesgos que entrañan, además de conocer las posibilidades de la tecnología con la que se cuenta para mitigarlos. 5.1.8 Monitorización de equipos y dispositivos de red En este apartado se va a hacer referencia a la monitorización física de los equipos y dispositivos de red. Es aconsejable realizar inspecciones físicas periódicas de todo el hardware instalado en la empresa, buscando todos los puntos de fallo y errores que se comentan en este documento. En este sentido, contar con personal de vigilancia con la capacidad técnica para realizar esta tarea puede ser de gran ayuda, aunque, en caso contrario, uno de los administradores o encargados de la seguridad debería realizar una ronda de vigilancia de los equipos para realizar las comprobaciones pertinentes. Tan importante como el aseguramiento del hardware es su monitorización. Así, existen varios sistemas de monitorización del hardware, algunos de ellos estándar como el SNMP o el SMART y otros específicos del hardware que tengamos instalado. Buscaremos siempre sistemas de monitorización que puedan funcionar a través de la red y sobre una única consola que nos permita tener todo el hardware controlado. Sobre SNMP debemos decir que es el sistema estándar de monitorización. Casi cualquier máquina o dispositivo de red medianamente complicado proveerá de servicios SNMP para permitir la monitorización de todos sus parámetros. Además de los 132 PROYECTO FIN DE CARRERA parámetros estándar que el protocolo prevé para todos los sistemas, cada fabricante puede incorporar una serie de extensiones a éste y proporcionar los datos necesarios para que el sistema gestor SNMP pueda realizar la monitorización. Incluso pueden proveer las llamadas traps, que son avisos que el hardware envía al sistema de monitorización para avisar de algún cambio en el hardware o de algún error en el sistema, pasando así de un sistema principalmente pasivo como es el SNMP a un sistema activo que permite recibir avisos cuando fuera necesario. Deberemos elegir hardware que soporte SNMP y que incorpore el máximo número de extensiones que permitan monitorizar el hardware en todos los parámetros posibles. En el caso de los dispositivos de red, estos suelen contar con una lista incontable de parámetros a monitorizar. Un buen software de gestión de red, resolverá el problema de tratar con montones de dispositivos de red con decenas de parámetros a monitorizar. Un sistema bien instalado y funcionando correctamente es una herramienta impagable para el encargado de seguridad. Entre los parámetros que se pueden monitorizar de estos dispositivos se encuentran todos aquellos que son software, como el tráfico en los interfaces, estadísticas y tipos de tráfico entre otros. Entre los parámetros hardware, destacarían por ejemplo, la velocidad de giro de los ventiladores, la temperatura de la caja y de los dispositivos internos, las tasas de fallo debidas al cableado o al mismo hardware y muchos parámetros más. En los ordenadores es menos común encontrar SNMP, pero existen varios fabricantes que proporcionan agentes que permiten la monitorización de todos los parámetros del sistema. En cualquier caso siempre podemos optar por agentes software SNMP libres como los incluidos en los sistemas de software libre como Linux o FreeBSD. Estos sistemas proporcionan monitorización de parámetros como el tráfico en los interfaces, estadísticas de uso del sistema y muchos otros, que, además de ser programables, permiten la monitorización de prácticamente cualquier parámetro, ya sea sobre el hardware o del funcionamiento del software del sistema. Es interesante contar con SNMP en las máquinas, sobre todo en los servidores y en las máquinas más críticas, pues esto nos permitirá el tener un sistema estandarizado para todo el conjunto del hardware, ahorrando además, tiempo de administración. Respecto al software gestor de red que usa los datos SNMP para ofrecernos una vista completa de nuestro hardware, se debe puntualizar que habitualmente es caro y difícil de usar, pero que una vez instalado y controlado su funcionalidad es impagable, puesto que permite monitorizar todos los parámetros de redes muy complejas y a la vez nos permite reconfigurar dispositivos o realizar cambios en la propia estructura de la red. Un sistema de este tipo es OpenView de HP, que provee todas estas funcionalidades. Como herramienta de software libre se podría citar a OpenNMS que intenta ser una alternativa libre a los sistemas de gestión de red comerciales y que tiene a día de hoy una funcionalidad importante. Otro tipo de sistemas de monitorización son los basados en la toma de muestras, como por ejemplo Nagios, Big Brother y similares. Este tipo de sistemas puede usar también 133 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA SNMP para monitorizar dispositivos de red y luego pruebas de otro tipo para monitorizar máquinas y servicios, comprobando la salud de éstos y ofreciéndonos un vistazo rápido de la red, de los servidores y de los servicios que se están proveyendo. Es muy aconsejable la instalación de un sistema de este tipo, porque además de permitirnos estudiar nuestro propio sistema para estudiar fallos o máquinas caídas, envía avisos mediante correo electrónico o pagers si alguno de estos sistemas o servicios falla. Por último, comentaremos los sistemas SMART, que son un sistema implementado en casi todos los discos duros modernos que nos ofrecen una cantidad ingente de datos sobre el funcionamiento de estos y sobre su vida útil. Los discos duros son los sistemas que probablemente más fallan en un ordenador, por contener partes mecánicas que están constantemente en movimiento. El sistema SMART está implementado en el hardware y puede ser leído por medio de software al efecto, informándonos de todos los parámetros de funcionamiento del disco duro y de parámetros como el tiempo estimado entre fallos o el tiempo estimado de vida del disco. Es aconsejable utilizar las utilidades al efecto para aprovechar la funcionalidad SMART de los discos duros, y poder así prever fallos antes de que estos se produzcan. El poder saber que un disco duro va a fallar muy probablemente en un espacio corto de tiempo, puede ser vital para replicarlo y sustituirlo por otro nuevo, evitando una gran cantidad de problemas de administración y una posible pérdida de datos. 5.1.9 Acceso a datos técnicos de la red y del hardware El acceso a los datos técnicos de la red por parte de agentes externos a la empresa es un punto que pone también en entredicho la seguridad física, y por ello no se debe permitir que nadie que no forme parte del personal de administración de la red y del hardware pueda tener acceso a dicha información. En el caso de que alguien reclamara un acceso puntual, se deberá investigar si realmente es necesario concediéndose en base a peticiones particulares y siempre con todas las reservas posibles. Conocer los datos técnicos de la red y del hardware de un sistema proporciona a potenciales atacantes, entre otras, las siguientes facilidades: 134 - La primera es la facilidad que el conocimiento del hardware y la estructura de la red proporciona para realizar ataques informáticos de todo tipo, ya que, al tener información concreta sobre el hardware utilizado es más fácil detectar y explotar determinadas vulnerabilidades de los equipos. - La segunda es la posibilidad de usar esta información para dar más consistencia técnica a los ataques basados en la ingeniería social. El problema de la ingeniería social vuelve a residir nuevamente en los usuarios legítimos del sistema ya que, si un intruso ha obtenido datos técnicos muy específicos sobre la red de la empresa, éste puede hacerse pasar por una persona del servicio técnico de cualquiera de las marcas con las que se trabaja (o incluso por personal de otro departamento), y terminar por convencer a determinados usuarios del sistema PROYECTO FIN DE CARRERA para que le faciliten claves de acceso o datos que le puedan conseguir un acceso remoto a la red. Para garantizar una máxima protección frente a este tipo de ataques se debe mantener la estructura de la red y del hardware (incluyendo marcas, software instalado, direcciones IP, MAC, etc.) bajo un control de acceso especialmente estricto, dado que el estudio de la estructura de la red y de las máquinas que la componen es uno de los primeros pasos en el desarrollo de un ataque informático. Por tanto, se deberá mantener los datos técnicos en armarios destinados a tal efecto, y deberá establecerse un protocolo de acceso a los mismos que asegure que los datos proporcionados al personal de mantenimiento son únicamente los datos imprescindibles y dejando constancia siempre de quién y para qué fueron solicitados. Como un buen control sobre estos datos redundará en una mayor seguridad de todo el sistema, los encargados de la seguridad informática deberán considerar cualquier intento de análisis remoto de la estructura de la red o de las propias máquinas como un intento de intrusión en sus primeras fases y, por tanto, deberán tomar las medidas preventivas que consideren necesario poniendo en cuarentena las comunicaciones orientadas a tal fin. 5.1.10 Control sobre personal externo Otra eventualidad a la que habrá que hacer frente es al control de acceso a los equipos que va a tener el personal proveniente de consultorías externas a la hora de realizar acciones de mantenimiento o evaluación sobre el hardware. El aspecto más importante a considerar en este punto, es cómo tener la certeza de que este personal sólo ha tenido acceso al material al que debe tener acceso. Para ello se recomienda utilizar herramientas como formularios para que el personal externo firme y deje constancia por escrito de la fecha en la que tiene acceso al hardware y de las acciones de mantenimiento que se le permite llevar a cabo, y si fuera necesario incluir aquéllas que no se le permite realizar. Aún así, siempre será conveniente que un empleado del personal de administración esté presente cuando se realice cualquier tipo de mantenimiento o consultoría sobre sistemas críticos de la empresa, pues así se podrá estar más vigilante con respecto a las acciones realizadas, pudiendo incluso asesorar al consultor con respecto a cualquier duda que pudiera tener sobre la ubicación de determinados dispositivos en la red. De esta forma se asegura que la persona que trabaja sobre los sistemas de la empresa vaya a ceñirse exclusivamente a realizar las tareas para las que ha sido contratado. 135 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA 5.2 SEGURIDAD LÓGICA 5.2.1 Control remoto de hardware El control remoto del hardware podemos verlo desde dos puntos de vista. El punto de vista hardware puro, donde estaríamos hablando de los sistemas SNMP que hemos comentado en el punto anterior o el punto de vista del software, que abarca una gran cantidad de servicios como TELNET, SSH, FTP/SCP/SFTP, Webmin y similares. En el caso de la seguridad física solo nos interesa la posibilidad de que alguien controle de forma remota nuestro hardware. Esto es cada vez menos común y no debe ser una gran preocupación para el consultor. Uno de los puntos a tener en cuenta es si existen módems conectados a las máquinas que puedan ser accedidos desde el exterior, y por supuesto la conectividad de red desde el exterior, pero estos son puntos más adecuados para el tratamiento por parte del personal de seguridad informática que por el personal de seguridad física. Nuestra mayor preocupación será por tanto la ocultación dentro de la empresa por un intruso malintencionado, de dispositivos como portátiles, pequeños ordenadores tipo capuccino o similares conectados a nuestra red interna y que puedan servir a un atacante exterior para controlar nuestra red y por tanto nuestro hardware, aunque esta posibilidad es pequeña y casi poco plausible. Los sistemas de seguridad informática deberían detectar este tipo de dispositivos fácilmente y trazarlos hasta ser eliminados. Se puede hablar también de control remoto del hardware cuando hablamos de virus, troyanos, gusanos o rootkits instalados dentro de la empresa, ya sea a través de la red pública o por usuarios mal formados o malintencionados. Estos sistemas proporcionan a un supuesto atacante exterior control sobre nuestro software y hardware, pero deberían ser fácilmente detectables por el personal de seguridad informática. 5.2.2 Seguridad del BIOS48 y del interior de los equipos La seguridad que proporcionan las passwords de BIOS es una seguridad absolutamente ficticia. Muchos administradores confían ciegamente en la seguridad de los sistemas asegurados mediante passwords de BIOS, sobre todo cuando se intenta impedir el arranque desde disquetera o desde CDROM. La seguridad que proporciona el password de BIOS es mínima si no se tiene una seguridad física suficiente sobre el sistema en cuestión, ya que mediante la apertura de la caja del ordenador se puede activar el puente de borrado de la BIOS y reiniciar el password, o, simplemente, cambiarlo por otro igual y montarlo en el zócalo. Incluso se han dado casos de llegar a desoldar el BIOS de un ordenador y soldar el nuevo para saltar el password. De esta manera, la seguridad física 48 El BIOS (siglas en inglés de Basic Input/Output System; en castellano sistema básico de entrada y salida) es un código de software que localiza y reconoce todos los dispositivos necesarios para cargar el sistema operativo en la memoria RAM. Se trata de un software básico instalado en la placa base que permite que ésta cumpla su cometido. 136 PROYECTO FIN DE CARRERA es fundamental dado que si alguien tiene acceso al interior de la máquina podrá, entre otras cosas, borrar el BIOS, cambiarlo, instalar una disquetera o CDROM o incorporar una grabadora de CD. Así, se tiene que ser consciente de que la ausencia de hardware será útil únicamente contra un intruso sin el tiempo suficiente para realizar cambios en el BIOS pero no proporciona una seguridad mayor como tal. 5.2.3 Uso de firewalls El firewall o cortafuegos permite establecer un control de acceso basándose principalmente en la dirección IP origen de las peticiones dirigidas a su servidor. De esta forma se puede restringir la visibilidad de los servicios de una máquina conectada a internet mostrando únicamente aquellos servicios públicamente accesibles y bloqueando los accesos a los servicios privados o de gestión. En internet, debido al carácter mundial de la red y a los problemas ocasionados por las redes de máquinas infectadas descritas anteriormente, los servidores continuamente reciben intentos de acceso no autorizados de forma remota, en función de la configuración del firewall se pueden rechazar la mayoría, particularmente aquellos que provienen de redes no confiables. En el caso de los servicios de alojamiento distintos al alojamiento compartido (como servidores privados, servidores dedicados y housing / colocation49) la recomendación principal consiste en bloquear los protocolos considerados de administración (como Remote Desktop o Terminal Service, Telnet, SSH, webmin, usermin y si es posible FTP) de tal forma que sólo se pueda acceder desde las direcciones IP que normalmente se empleen para la gestión. Es así como se conseguirá que el resto de usuarios de internet vean solamente los servicios que se consideren como públicos, que suelen ser, habitualmente los servicios web. Para determinar las redes desde las que se pueda permitir accesos de administración conveniente tener en cuenta los siguientes aspectos: 49 - Si estos accesos de administración se realizan desde un único puesto de usuario con IP fija (e. g., ADSL con dirección IP fija), teniendo en cuenta que si pasa por un servidor proxy, esa será la dirección IP a autorizar en los accesos a herramientas de gestión basadas en web. - Si los accesos de administración se realizan desde una red corporativa, se deberá proporcionar el rango IP completo desde el que se quiere que se puedan alcanzar los protocolos de administración. El housing es una modalidad de alojamineto web destinada principalmente a grandes empresas , que consiste en vender o alquilar espacio físico de un centro de datos para que el cliente coloque su propio equipo, de modo que la empresa ofrece corriente, conexión y seguridad pero es la empresa la que elige qué tipo de dispositivos quiere utilizar. 137 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA - Si se accede a esos protocolos de administración desde puestos que no tienen una dirección IP fija, el nivel de seguridad se reduce considerablemente, puesto que serían visibles a priori para todas las máquinas de internet y se dependería en exclusiva de la robustez de las contraseñas. Es una situación no deseable y es muy aconsejable que se delimiten los puestos o redes desde los que se desea que sean visibles estos protocolos de gestión que dan acceso a funciones avanzadas de su servidor. En estas situaciones es al menos recomendable indicar un rango asociado al proveedor, para evitar los intentos de acceso no permitidos que se producen constantemente desde redes remotas. En el caso de servidores con sistema operativo Windows es necesario también el bloqueo de NetBios y protocolos asociados de Microsoft, puesto que son servicios que no deberían ser visibles desde internet. Aparte de los protocolos de administración hay otros servicios susceptibles de ser atacados y cuya política de bloqueo conviene revisar. Principalmente estamos hablando del acceso a bases de datos (Mysql en Unix, MSSQL en entornos Microsoft), de los que si es necesario su acceso externo hay que limitarlo a redes de plena confianza. Por otro lado, hay que revisar si se va a prestar servicio de DNS y/o correo (SMTP, POP3, IMAP, Webmail, etc.) y bloquearlo en el firewall si se estima que el acceso no debe ser público. 5.2.4 Desarrollo de una red corporativa segura Dos herramientas que están cobrando cada vez más importancia en el mundo empresarial son las intranets y las extranets. Una intranet es una red de ordenadores corporativos que utiliza tecnología internet para compartir de forma segura información evitando que usuarios no autorizados de internet puedan acceder a ella. Así, uno de los aspectos más importantes de una intranet es que ha de proporcionar una comunicación privada de forma exitosa para todos los miembros de la organización. Un sistema de intranet sería lo opuesto al término web (entendiendo como tal World Wide Web) que está formado por contenidos libremente accesibles por cualquier usuario. Hay que puntualizar que su estructura no tiene que ver con aspectos relacionados a la red física que se utiliza para diferenciarla de conceptos como Internet o las redes de área local (LAN), ya que lo que distingue a una intranet del internet público, es precisamente que las intranets son privadas, por lo que es imprescindible el uso de mecanismos de autenticación para que los usuarios puedan acceder a ella. Arquitectónicamente, las intranets se dividen en cliente y servidor. Mientras que el software cliente puede ser cualquier terminal de trabajo de los empleados, el software servidor se encargará de ejecutar un servidor de internet que, bien puede ser local, o bien remoto. Las intranets dentro de una organización son construidas con el fin de ser un sistema que apoye el desempeño de los trabajadores, de manera que les ayude a crear y entregar valor en sus procesos y a sus clientes, socios, aliados, promotores o accionistas. Para cumplir con este objetivo, se hace necesario estudiar los requisitos de 138 PROYECTO FIN DE CARRERA tipo institucional, del trabajador, de los productos y servicios, de los documentos, del contenido, y, sobre todo, de los procesos medulares del negocio. Entre otros servicios, una intranet puede ofrecer los siguientes: - Capacidad de compartir recursos (como impresoras o escáneres). - Posibilidad de conexión a internet (acceso a la información de la red y a sus posibilidades comunicativas). - Alojamiento de páginas web. - Servicios de almacenamiento de información, que son espacios de disco virtual a los que se puede acceder para guardar y recuperar información desde los equipos de la empresa y también desde cualquier equipo externo conectado a internet. - Servicios de correo electrónico (con buzón de correo electrónico, servicio de webmail, servicio de mensajería instantánea, etc.). - Foros, wikis, blogs u otros canales bidireccionales de comunicación entre los empleados, que permitan el intercambio de opiniones - Instrumentos diversos que permiten, a las personas autorizadas para ello, la realización de diversos trabajos tales como la gestión del personal, la creación de cuentas de usuario, la organización de test de seguridad periódicos y todo tipo de gestiones administrativas. Por el contrario, una extranet (de las voces inglesas extended intranet) es una red privada virtual que utiliza protocolos de internet, protocolos de comunicación e infraestructuras públicas de comunicación para compartir de forma segura parte de la información de una organización con sus proveedores, compradores, socios, clientes o cualquier otro negocio u organización. Se podría decir que una extranet es parte de la intranet de una organización que se extiende a usuarios que, sin embargo, están fuera de ella. Las extranet suelen tener un acceso semiprivado ya que para acceder a ella el usuario no ha de ser un trabajador de la propia empresa, pero sí que tiene que tener algún tipo de vínculo con la entidad, pudiéndose utilizar, si se gestiona apropiadamente el acceso a ella, como una red de colaboración con otras compañías. Los sistemas de soporte al desempeño. Para apoyar el desempeño de la gente, se requieren varias cosas: datos, información, conocimiento sobre los insumos, procesos y productos que se manejan en una organización. Integrar todo esto en un sistema es lo que se denomina sistema de soporte al desempeño SSD o PSS (por sus siglas en el idioma inglés, Performance Suporta Sistema). 139 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA El reto además es, integrarlo en un ambiente electrónicamente compartido por los trabajadores: una intranet corporativa. Esto significa tener en la red de la organización las aplicaciones, sistemas, archivos, glosarios, fórmulas, normas, procedimientos, etc.; es decir todo aquello que requiera el trabajador para agregar valor en sus proceso. El objetivo único es constituir un medio que de manera permanente y sistemática contribuya al desempeño en términos de excelencia y competitividad de los trabajadores. En la nueva economía, el trabajador debe estar considerado como socio estratégico del negocio; y es por ello que se le deberían entregar las mejores herramientas para la consecución de sus objetivos. Para que una intranet sea un sistema de soporte al desempeño verdaderamente útil para los trabajadores, es imprescindible que esté centrada en los procesos medulares del negocio, ya que, como ya se ha señalado anteriormente, sólo así se contribuirá a seguir creando valor para la organización. Los demás criterios, deberán estar alrededor o en una condición periférica y no por eso decimos que dejan de ser importantes. A efectos de responder estas exigencias del nivel de contenido y de información es necesario dotar de una batería robusta de software que responda a las exigencias de los trabajadores navegantes de la organización. En la medida que se vaya desarrollando la intranet corporativa y empiecen incorporarse nuevas funcionalidades, la dotación de software deberá ir creciendo en paralelo. Alguno de este software como los navegadores, diccionarios, enciclopedias; serán de propósito general, otros como los LMS (sistema administrador del aprendizaje) serán de propósito específico, y otros como los simuladores, CRM serán de uso directo en las operaciones del negocio. Los paquetes software y programas recomendados incluyen, entre otros, el siguiente conjunto de aplicaciones de propósito general: 140 - Browser o navegador. - Buscador inteligente. - Traductor inteligente. - Diccionarios. - Enciclopedias. - Herramientas de ofimática. - DBMS – Bases de datos. - Administrador de mensajería. - Administrador de colaboración. PROYECTO FIN DE CARRERA - Workflow. - Aplicaciones de escritorio. - Sistemas y aplicaciones administrativas. Entre los paquetes y programas recomendados se incluye el siguiente software específico: - Learning Management Systems o sistemas administradores del aprendizaje. - Knowledge Management Systems o sistemas de gestión del conocimiento. - Software específico de negocio como simuladores, sistemas y Aplicaciones de Negocio, ERP y CRM. Diseñar, desarrollar e implantar una intranet corporativa, requiere un trabajo previo de estrategia en términos de planificación y conceptualización del servicio que se ofrece atender en la organización. Uno de los factores de éxito en la intranet, es orientarla, primero, a los procesos medulares del negocio. La arquitectura de contenido requerida para este fin, deberá permitir manejar tanto el contenido de naturaleza estructurada como el no estructurado relacionado con los procesos medulares del negocio, su cadena, insumos, sub-procesos, productos y resultados siendo imprescindible un profundo conocimiento de estos elementos para la implantación de la intranet. Para la construcción de una intranet robusta, es recomendable contar con, al menos, dos equipos de desarrollo: uno que se encargue del portal horizontal basado en los procesos medulares del negocio y el segundo de los portales verticales basados en criterios institucionales, relacionados con los servicios de apoyo a ofrecer al personal sobre productos y servicios, flujo de documentos y contenido o de bases de conocimiento. Aún así, ambos equipos deberán trabajar de manera coordinada, integrada y alineada para evitar el solapamiento de funciones. 141 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA 5.3 IMPLANTACIÓN DE SISTEMAS DE DETECCIÓN DE VARIANTES DE MALWARE Como ya se ha indicado las actuales soluciones anti-malware comerciales basan su funcionamiento en una base de datos de firmas. Una firma es una secuencia de bytes que representa de forma unívoca a un ejecutable malicioso. Sin embargo, para determinar la firma de un nuevo ejecutable malicioso y contrarrestarla, los especialistas deben esperar hasta que el nuevo ejecutable malicioso haya dañado ya varias computadoras o redes para identificarlo como un programa dañino. Después de que se ha obtenido la firma del fichero sospechoso es comparado contra la lista de firmas recogidas en las bases de datos de malware. Cuando se encuentra una coincidencia, el archivo en cuestión será un fichero malicioso que habrá que poner en cuarentena o eliminar según sea necesario. Este enfoque reactivo de la seguridad que se ha mostrado eficiente en el pasado cuando las amenazas se conocían de antemano, pero no puede hacer frente al crecimiento exponencial del malware actual. En la actualidad, el uso de técnicas de ofuscación de código (como la inclusión de instrucciones nop o la adición de código intermedio basura que no modifique el comportamiento real del malware) están al orden del día para ocultar el comportamiento real de creaciones potencialmente maliciosas. Figura 5-2. Modelo sugerido para el establecimiento de la base de datos de malware. 142 PROYECTO FIN DE CARRERA La nueva arquitectura estaría formada por: - - Una base de datos de malware, con la estructura sugerida y que incluya a todas las variantes de malware registrados. Un marco para la selección de las variantes que representen a cada familia. Un componente que transforme al ejecutable sospechoso a una consulta en la base de datos de malware, basando la nueva representación en el sistema de opcodes mencionado en el capítulo anterior y la frecuencia de aparición de las secuencias de estos. Una función de clasificación para la detección de variantes de malware. El prototipo de esta versión comercial ya desarrollado por Xabi Ugarte, Igor Santos et ál. (miembros del S3lab de DeustoTech) cuenta con una interfaz gráfica de usuario (GUI) diseñada para que un usuario final no experto pueda hacer uso de este sistema de análisis. Con ella, se tiene la intención de crear un sistema completo anti-malware, pero sin embargo, ya que esta herramienta es aún experimental, carece de algunas funciones clásicas como la búsqueda automática de unidades externas, la carpeta de cuarentena y así sucesivamente. La primera de las pestañas (ver Figura 5-3) se utiliza para explorar directorios de forma recursiva. Cuando el usuario selecciona un directorio del equipo, el proceso de análisis se iniciará, mostrándose una lista en la parte inferior de la ventana con las variantes encontradas indicando, además, la familia de malware a la que se refieren. La segunda captura de pantalla (Figura 5-4) permite al usuario actualizar la base de datos con nuevas representaciones de las familias de malware. Del mismo modo, al seleccionar un directorio, se construirá la representación para todos los ejecutables dentro de la carpeta y se agregará a la base de datos de malware. Por último, una tercera pestaña que se muestra en la Figura 5-5, es utilizada para fijar algunos parámetros acerca del análisis del proceso que anteriormente se añadían á través de la línea de comandos. Esos parámetros incluyen la longitud de la secuencia, la creación de representaciones recursivas y el umbral establecido para hacer coincidir la representación. 143 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA Figura 5-3. Ventana de exploración de carpetas sospechosas. Figura 5-4. Ventana de inserción de nuevas variantes a la base de datos de malware. 144 PROYECTO FIN DE CARRERA Figura 5-5. Ventana de inserción de parámetros delbase prototipo comercial de NOA. Figura 5-3. Ventana de actualización de la de datos de malware. 5.4 REDUNDANCIA Y REPLICACIÓN PARA MANTENER LA RED SIEMPRE DISPONIBLE Para asegurar el funcionamiento del hardware frente a errores o a imprevistos no hay nada más eficaz que la redundancia de sistemas, aún a sabiendas que la replicación de ciertos dispositivos multiplicaría los costes de adquisición de estos sistemas e implicaría una mayor complejidad de la gestión de éstos. Así, una de las medidas más eficientes para la protección de los datos es mantener una buena política de copias de seguridad o backups como elemento capital para la continuidad del negocio en función del volumen de información generada y de la cantidad de sistemas críticos de los que se disponga. Esta política deberá gestionar por igual la adquisición de copias de seguridad completas, en las que los datos serán almacenados en su totalidad por primera vez, y las copias de seguridad incrementales, en las que únicamente serán copiados los ficheros creados o modificados desde el último backup. De esta manera, un buen sistema de respaldo deberá cumplir cada una de las siguientes características: - Será continuo. El respaldo de datos debe ser completamente automático y continuado de modo que funcione de forma transparente para los usuarios sin que éstos vean afectado el desempeño de sus tareas. - Será seguro. Haciendo uso de las aplicaciones de cifrado de datos garantizando la integridad de éstos, lo cual debe ser hecho localmente en el equipo antes del envío de la información. 145 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA - Estará distribuido. Una copia de estos datos deberá quedar alojada en dependencias alejadas de la empresa para evitar la pérdida de toda la información por efecto de fenómenos meteorológicos extremadamente adversos u otros imprevistos. - Contará con versiones anteriores de los datos. Para lo cual se contará con un sistema que permita la recuperación de versiones diarias, semanales y mensuales de los datos. En este apartado se va a hacer frente a la replicación de sistemas como medida de seguridad para mantener, a toda costa, el proceso productivo operativo. 5.4.1 Sistemas de alta disponibilidad Una de las formas más comunes hoy en día de redundancia de sistemas son los clusters50 de máquinas de alta disponibilidad. Estos sistemas se componen de dos o más máquinas que cumplen exactamente la misma función y que comparten los datos sobre los que trabajan por medio de un bus compartido SCSI o un canal de fibra conectados a un sistema de almacenamiento con la particularidad de que se permite un acceso compartido por varias máquinas. La idea es que uno de los sistemas cumpla la función encomendada al sistema, bien sea como servidor de aplicaciones, de bases de datos, web o con cualquier otro cometido. Si este sistema fallara, el otro sistema detectaría el error por medio de un enlace mantenido por medio de una red y/o un enlace nullmodem por puerto serie (utilizando un cable serie RS-232 como el de la Figura 5-4). Al detectar el fallo, el segundo sistema tomaría el control haciéndose con la dirección IP del primero y sustituyéndolo en la tarea que éste estuviera realizando. Es un sistema óptimo para asegurar la disponibilidad de un servicio determinado y suele ser más barato mantener un cluster de dos máquinas que tener una máquina con todos sus subsistemas redundantes. 50 El término cluster se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen una única computadora. 146 PROYECTO FIN DE CARRERA Figura 5-4. Cable serie RS-232. Los sistemas de alta disponibilidad son cada vez más populares, en parte por su gran fiabilidad y relativamente bajo coste, además de por la amplia disponibilidad de software libre que permite el montaje de estos sistemas por un precio muy asequible para la mayoría de las empresas. Estos sistemas deben complementarse con la mayor cantidad de dispositivos redundantes que el presupuesto permita emplear a nivel de cada máquina, como SAI, dobles fuentes de alimentación o discos montados en RAID. Se trata de uno de los métodos más eficaces para proveer de una redundancia en el hardware de forma eficaz y relativamente económica. Además son fáciles de montar y administrar e incluso existen empresas dedicadas al montaje de software preconfigurado para funcionar en sistemas de alta disponibilidad, como firewalls, bases de datos o sistemas similares. 5.4.2 Redundancia de máquinas y sistemas de almacenamiento La necesidad de redundancia en los sistemas críticos y en las máquinas que proporcionen almacenamiento es fundamental para poder acceder a los datos siempre que sea necesario, y la única forma de asegurar con una confiabilidad aceptable que dichos datos estarán siempre disponibles, es proveer a la empresa de algún tipo de redundancia en estos sistemas. Lo más aconsejable es la instalación de sistemas de alta disponibilidad, donde varias máquinas proporcionan la misma funcionalidad y se sincronizan permaneciendo siempre en el mismo estado. Si la máquina que está proporcionando el servicio fallase, otra de las máquinas del cluster podría ocupar su lugar y el sistema podría seguir funcionando. Normalmente, el sistema avisa a los administradores de estas eventualidades para que solucione el fallo en la primera máquina. Con un cluster de dos o tres máquinas 147 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA proporcionando la misma funcionalidad se obtienen unas tasas de fiabilidad muy altas en lo que a la integridad de los datos se refiere. Sin embargo, la replicación de los datos de un servidor de archivos principal en otros servidores de archivos secundarios (preferentemente alojados en otro edificio o en otras subsedes corporativas) es otra opción recomendable para proporcionar seguridad física en los sistemas de almacenamiento o en los servidores de aplicaciones, para minimizar el impacto de eventos no previstos como incendios, inundaciones u otros desastres naturales. La principal diferencia con los sistemas de alta disponibilidad es que estos sistemas no se sustituyen unos a otros de forma automática, ya que únicamente mantienen una copia de los datos a buen recaudo en otro servidor por si es necesario acceder a ellas. Para empresas con presupuestos limitados que no puedan instalar servidores de alta disponibilidad almacenar copias de seguridad en servidores localizados lejos del servidor principal es fundamental de cara a disponer de una copia de seguridad de los datos. Como siempre existe la posibilidad de que un intruso se apodere de uno de los sistemas y obtenga los datos directamente de esa máquina, por lo que la seguridad física e informática de este tipo de máquinas es, nuevamente, crítica. 5.4.3 Sistemas de backup Los sistemas de backup o de recuperación son una necesidad cada vez más patente en las empresas. Teniendo esto en cuenta y suponiendo que disponemos de un sistema de backup fiable debemos tener en cuenta otra serie de consideraciones, como el emplazamiento final de los backups, del que ya se ha hablado indirectamente anteriormente, y para lo que, la mejor solución, es mantener estos sistemas lejos de los equipos de los que se ha hecho backup y lejos del alcance de los usuarios. Además, habrá que considerar la integridad física de las propias máquinas de los backups, siendo necesario analizar si finalmente se optará por un sistema centralizado de backups alojado en un rack o si éstos estarán hospedados en servidores externos de la compañía llegando a acuerdos de housing. Otra cuestión a tener en cuenta con los sistemas de backup es la seguridad física de los medios donde se realizan. Por ejemplo, las cintas de backup podían verse afectadas por los campos magnéticos fuertes al igual que los discos ZIP, los discos duros soportan mal los golpes y los movimientos bruscos y los CD, por ejemplo tienen una vida corta y son más bien delicados. También se tendrán que tomar las precauciones debidas para garantizar que estos backups pueden ser restaurados correctamente y sin errores para asegurar que, llegado el caso, los equipos que necesiten hacer uso de estas copias de seguridad serán funcionales tan pronto como sea posible. 148 PROYECTO FIN DE CARRERA 5.4.4 Sistemas de arranque ininterrumpido (SAI) Los SAI son imprescindibles en la seguridad física de un sistema informático dado que la mayor parte de los sistemas operativos responden mal a las caídas repentinas y puede producirse una pérdida de datos importantes si no se usan sistemas de archivos con journaling51 como Ext3, Reiserfs, XFS, JFS o similares. Es importante ubicar estos dispositivos dentro de los racks o armarios para que no puedan ser desactivados por accidente, por un fallo de un usuario o administrador o por hipotéticos intrusos. A la hora de implantar sistemas de arranque ininterrumpido existen dos filosofías contrapuestas: - Mantener un gran SAI que alimente un grupo de máquinas al completo, por ejemplo en un rack o en un armario con muchos dispositivos. Aunque los grandes SAI suelen ser más seguros y proporcionan mayor autonomía y protección, el principal problema al que hay que hacer frente es que ese SAI puede convertirse en un punto de fallo de todo el sistema, dado que si falla, la totalidad de los equipos se vendrán abajo. - Disponer de varios SAI que proporcionen alimentación a menos máquinas diversificando los puntos de fallo. Los SAI más pequeños, aunque no tienen tantas funcionalidades como los anteriores, cumplen bien su cometido. El presupuesto será un punto determinante de cara a la elección de una u otra opción: un SAI de gran tamaño es bastante más caro que varios pequeños, por lo que habrá que realizar estimaciones acerca de la frecuencia con la que tienen lugar los cortes de energía y valorar qué riesgos se está dispuesto a asumir. 5.4.5 Redundancia a nivel interno de hardware De la misma forma que se aconseja encarecidamente la redundancia a nivel de máquinas para todo el sistema en general, se aconseja también la redundancia a nivel interno de hardware. Los equipos actuales pueden incorporar varias fuentes de alimentación, varios discos duros montados en RAID52 e incluso, en ocasiones, dos placas base. Todas estas funcionalidades son muy beneficiosas para la seguridad física del sistema en general, pues toleran ciertos fallos en el hardware sin que el sistema se vea afectado. 51 El journaling es un sistema que se basa en llevar un registro diario en el que se almacena la información necesaria para restablecer los datos afectados por las transacciones en caso de que éstas fallen. 52 En informática, el acrónimo RAID (del inglés Redundant Array of Independent Disks o conjunto redundante de discos independientes) hace referencia a un sistema de almacenamiento que usa múltiples discos duros o SSD entre los que distribuyen o replican los datos. 149 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA Sin embargo, se debe tener en cuenta que este tipo de sistemas son más costosos, y que en ocasiones los sistemas de alta disponibilidad construidos con varias máquinas pueden ser igual de eficientes y más económicos que los sistemas redundantes a nivel de hardware. El caso del RAID es diferente. Hoy por hoy cualquier servidor corporativo debería incorporar algún tipo de RAID, ya sea RAID 0, RAID 1 o RAID 5, bien sobre hardware o sobre software. Con la caída continua de precio que experimentan los discos duros actuales, contar con un sistema de RAID basado en software es realmente asequible, proporcionando además, una redundancia en el hardware sin aumentos desorbitados del presupuesto. 5.4.6 Redundancia a nivel de red y conectividad La redundancia a nivel de red, incluida la conectividad a redes públicas como Internet o a redes corporativas privadas entre empresas debe ser hoy en día una de las mayores preocupaciones de un consultor de seguridad física, más aún teniendo en cuenta que una gran parte de los tiempos muertos que se producen en el trabajo diario de las empresas se deben a fallos en la red o en la conectividad a Internet, con el consecuente impacto en la productividad. Esto es especialmente crítico cuando los equipos del usuario final trabajan de forma remota sobre servidores empresariales, como ocurre con algunos de los nuevos terminales implantados en muchas entidades financieras. Deberemos estudiar en primer lugar la conexión global a las redes públicas como Internet o en su caso si esta existe la conexión privada que entre distintos edificios o departamentos de la empresa existan. Para garantizar la conexión a Internet o una conexión privada sobre redes públicas no hay mejor consejo que la utilización de diferentes medios o líneas de conexión a la red contratados con diferentes proveedores. Para asegurar una conexión normal y fluida en una empresa suele bastar con la contratación de dos líneas independientes con proveedores diferentes. También será interesante estudiar la contratación de los seguros de disponibilidad que ofrecen algunas compañías con respecto a la disponibilidad del servicio. En las líneas ADSL normales el contrato que se suscribe suele especificar que la compañía puede mantener sus líneas caídas durante un cierto espacio de tiempo sin que por ello tenga que indemnizar al usuario final. Este tipo de contratos deben ser evitados buscando aquéllos que, aunque aparentemente más caros, aseguren una cierta disponibilidad de la conexión, o que, al menos, se hagan responsables de los hipotéticos cortes de conexión mediante el pago de indemnizaciones. Estos aspectos redundarán en una mayor implicación del proveedor de conexión en asegurar la conectividad. Es importante comprobar también que las redes físicas sobre las que contratamos los proveedores sean diferentes, pues es bastante común que los proveedores de conectividad a internet usen el mismo cableado de una compañía, sea esta pública o 150 PROYECTO FIN DE CARRERA privada. En este caso tendremos un punto de fallo importante a tener en cuenta, pues si hay un problema en el cableado las dos líneas contratadas quedaran inutilizadas. En casos especialmente críticos puede ser incluso necesaria la contratación de líneas privadas o enlaces propios de la empresa, como conexiones entre edificios mediante microondas. Los enlaces de microondas son una forma segura de comunicación entre edificios corporativos y son, a pesar de su precio, cada vez más usadas por las empresas. Aunque, además, necesitan tener visibilidad entre las sedes que se quieren comunicar y una gran cantidad de permisos para obtener la licencia de emisión. Una vez funcionando estos enlaces, que pueden ser controlados por la propia empresa o por una tercera contratada a tal efecto, son fiables y resistentes a condiciones climáticas adversas o eventualidades similares. De esta manera, la idea más general para proporcionar una conectividad permanente a la red, es mantener más de una opción de conexión, de forma que si una falla se disponga de otra para mantener, al menos temporalmente, la conectividad. A este respecto, es interesante el uso de sistemas de enrutadores que puedan utilizar todas las conexiones disponibles al mismo tiempo, para poder emplear la totalidad del ancho de banda contratado. Para las redes departamentales y locales se deberá buscar también una cierta redundancia en la conexión con la red troncal de la empresa y por tanto con los enrutadores que proporcionan la conectividad con el exterior. Puede ser interesante mantener varias conexiones con varios concentradores en cada planta con la red troncal que permitan el fallo de uno de estos. Es importante que la red local pueda funcionar siempre que sea posible independientemente de la conexión a la red exterior. El sistema ideal, por tanto, debería permitir el funcionamiento de las redes departamentales durante un periodo de tiempo razonable que tolere fallos en la conectividad con el exterior, pero que a su vez garantice la seguridad de los sistemas de la red. Puede ser necesario aconsejar la instalación de sistemas de almacenamiento de datos y servidores de aplicaciones capaces de funcionar en modo autónomo dentro de los departamentos y que luego repliquen esta información siempre que la red esté disponible con los servidores principales de la empresa. Esta misma filosofía podría ser también aplicada a los backups, que pueden realizarse a pequeña escala dentro de los departamentos y luego realizarse globalmente dentro de la empresa usando la red troncal. Los sistemas de archivos que pueden funcionar en modo desconectado, como Coda, Intermezzo o similares, son muy útiles en estos casos, pues permitirán trabajar cuando la red está desconectada y replicarán automáticamente los datos cuando exista conexión con los servidores principales. 151 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA 5.5 SISTEMAS INFORMACIÓN DE PREVENCIÓN DE FUGAS DE El uso de internet ha ido creciendo en los últimos años, tanto por parte de los particulares como por parte de las empresas, y la llamada web social es una de las razones subyacentes de este éxito. En concreto, esto ha sido posible gracias a la interacción de los usuarios con los denominados entornos emergentes (en inglés, Emerging Interaction Environments o EIE), como Facebook, Blogger, LinkedIn o SecondLife que son utilizados por millones de usuarios y que se han convertido en una herramienta comercial y de colaboración también para las empresas. Sin embargo, como cualquier medio de comunicación exitoso, estos entornos son también dados a ser mal utilizados, hecho que está dando pie a que usuarios malintencionados los utilicen con fines delictivos. Algunos de estos comportamientos pasan por la distribución de spam y malware ya mencionados, pero también incluyen aspectos como el acoso sexual, la intimidación y el daño a la imagen y a la marca de la compañía. En particular, puede haber también un riesgo relativo a la intimidad de las personas o los datos sensibles de las empresas debido a la gran cantidad de posibles interacciones. Los sistemas de prevención de fuga de información ayudan a contener los riesgos de pérdida de datos. La mayor parte de estas herramientas son muy eficaces cuando la información privada a proteger es conocida. Sin embargo, existe una gran cantidad de información privada que no se reconoce como tal hasta que ésta ya ha sido divulgada a usuarios desconocidos o empresas de la competencia. Con estos antecedentes, se propone aquí el primer sistema para prevenir fugas de datos que utiliza el reconocimiento de entidades con nombre (del inglés, NER, por sus siglas en inglés de Named Entity Recognition). El reconocimiento de entidades es un sub-área dentro de la extracción de información que busca localizar y clasificar los elementos en el texto en categorías conocidas como nombres propios, organizaciones, lugares y así sucesivamente. Estas técnicas, que ya se han aplicado con éxitos para la identificación de genes y proteínas en texto biomédicos, en la mejora de búsqueda en la web o para realizar correcciones ortográficas automáticas, han sido ya implementadas en el campo de la prevención de fugas de información en un trabajo titulado Data Leak Prevention through Named Entity Recognition publicado en la conferencia PASWeb 2010 de Minneapolis, (MN, EE.UU.) por José María Gómez Hidalgo y José Miguel Martín Abreu (de Optenet53) y Javier Nieves, Igor Santos, Félix Brezo y Pablo G. Bringas 53 Optenet es una compañía global de seguridad fundada en 1997 y con sede en Madrid (España), que ofrece soluciones para proveedores de servicios y grandes empresas en el mundo, protegiendo a más de 100 millones de usuarios finales en el mundo, incluyendo clientes de operadores globales móviles y fijos y empleados de grandes organizaciones empresariales. 152 PROYECTO FIN DE CARRERA (miembros del S3Lab de DeustoTech, laboratorio de investigación de la Universidad de Deusto). Las contribuciones realizadas en dicho trabajo (J. M. Gómez-Hidalgo, 2010) fueron las siguientes: - Se mostraba cómo utilizar la NER para evitar fugas de datos. - Se ofrecía un estudio empírico de las técnicas de uso de la NER con un conjunto de datos del mundo real en dos idiomas, inglés y español, formado por contenidos extraídos de la red social Twitter. - Se presentaba un prototipo capaz de alertar a los usuarios acerca de las posibles fugas de información. El experimento diseñado para probar el funcionamiento de estas técnicas recogió información de la red social y analizó los mensajes enviados por los usuarios buscando identificar cada una de las entidades que contenían estos mensajes. El prototipo consiguió clasificar con éxito el 90,92% de las instancias en castellano y el 92,32% de las instancias en inglés. [PER Wolff], currently a journalist in [LOC Argentina], played with [PER Del Bosque] in the final years of the seventies in [ORG Real Madrid]. La idea del prototipo comercial (ver Figura 5-5) presentado en Minneapolis, era emplear estas técnicas para detectar entidades que correspondieran a información a proteger en cada uno de los sistemas empleados por los usuarios de la compañía. Implementaba un servicio de fácil administración que permitía incluir nuevas instancias a filtrar, por ejemplo, en el envío de correos electrónicos o en los mensajes colocados en las redes sociales, como nombres, números de teléfono o cuentas bancarias, entre otras. De esta manera, el usuario era notificado cada vez que quería enviar información potencialmente comprometida y se le era requerida una confirmación. En el caso de que el envío fuera finalmente realizado, esto se reflejaba en un historial que permitiría realizar posteriores auditorías acerca de en qué momento y por quién fue filtrada la información. Entre sus objetivos destaca su contribución a combatir y eliminar el contenido ilegal en Internet, protegiendo a los menores y apoyando a las ONGs y organizaciones gubernamentales que comparten el mismo fin. 153 5. IMPLANTACIÓN SEGURA DE SISTEMAS INFORMÁTICOS EN LA EMPRESA Figura 5-5. Imagen del panel de administración del prototipo del sistema de prevención de fugas de información basado en técnicas de reconocimiento de entidades. 154 PROYECTO FIN DE CARRERA Capítulo 6 6. DISPOSICIONES FINALES A pesar de la información facilitada en este proyecto fin de carrera de cara al diseño de un plan de seguridad que permita la implantación de un proyecto de seguridad informática; dadas las características de la investigación realizada, hay algunos factores que no pueden ser obviados y que serán expuestos en este apartado. En la primera parte de este último capítulo se procede a detallar alguno de estos aspectos y se sugieren nuevas líneas de trabajo a estudiar en el futuro y al final del mismo se resumen las principales conclusiones a extraer de este proyecto. 6.1 PRÓXIMAS LÍNEAS DE TRABAJO Como ya se ha puesto de manifiesto en el experimento del capítulo 3 hay que atribuir a los opcodes una cierta capacidad para detectar software malicioso. Sin embargo, se trata de un modelo orientado a la detección de variantes de familias de malware de características similares y no es un modelo pensado para la detección de malware plenamente desconocido. En este apartado, se proponen algunas líneas de trabajo a seguir para la mejora de las funcionalidades del detector de malware así como nuevas amenazas para la seguridad a estudiar en el futuro. 6.1.1 Desarrollo de un prototipo optimizado La primera de las mejoras hace referencia al desarrollo de una aplicación con métodos optimizados computacionalmente. Al tratarse de un prototipo experimental, el proceso de cálculo no está comercialmente refinado y los tiempos obtenidos en las comparaciones aún son más altos que los obtenidos para el cálculo de las firmas de los ficheros (del orden de 7 veces más lentos que el tiempo que se tarda en obtener la firma MD5 y del orden de 3 veces más lento el tiempo en que se tarda en calcular la firma en SHA-1). Sin embargo, se estima que estos resultados no son para nada desalentadores, ya que el propio refinamiento del software podría minimizar este gap en el futuro. 155 6. 6.1.2 DISPOSICIONES FINALES Detección de malware desconocido y uso de técnicas de aprendizaje automático Como ya se ha mencionado anteriormente, el método actual es particularmente útil para la detección de variantes de malware ya existente, al buscar similitudes entre las representaciones vectoriales de los ficheros usando la similitud del coseno como métrica. Sin embargo, habría que profundizar en el estudio de técnicas de aprendizaje automático para determinar si algoritmos como NaiveBayes, RandomForest o J45 de las implementaciones de WEKA son capaces de identificar, dados los vectores de frecuencia de diferentes muestras de software benigno y malware, la existencia de programas de índole maliciosa. Estas técnicas ya han sido utilizadas con éxito por miembros del S3Lab en otros campos como la detección de errores en piezas de fundición (J. Nieves I. S., 2010) (J. Nieves I. S.-P., 2011). Los diferentes algoritmos de machine learning o aprendizaje automático se pueden agrupar en función de la salida de los mismos. Algunos de los cuales incluyen: 156 - Aprendizaje supervisado. El algoritmo produce una función que establece una correspondencia entre las entradas y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificación, donde el sistema de aprendizaje trata de etiquetar (clasificar en nuestro caso entre malware y software benigno) una serie de vectores utilizando diferentes algoritmos. La base de conocimiento del sistema está formada por ejemplos de etiquetados anteriores. - Aprendizaje no supervisado. Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos ejemplos. - Aprendizaje semi-supervisado. El aprendizaje semi-supervisado es un tipo de aprendizaje automático especialmente útil cuando solo existe una cantidad fija de información etiquetada para cada una de las clases de forma que tratará de predecir con la mayor fiabilidad posible la etiqueta para cada una de las instancias no etiquetadas. Este método mejora los resultados del aprendizaje no supervisado y ya ha sido utilizado con éxito por Santos et ál. (I. Santos B. S., 2011). - Aprendizaje por refuerzo. El algoritmo aprende observando el mundo que le rodea, siendo su información de entrada el feedback que obtiene por retroalimentación del mundo exterior como respuesta a sus acciones. - Transducción. De similares características al aprendizaje supervisado, pero sin construir explícitamente una función. Trata de predecir las categorías de los futuros ejemplos basándose en los ejemplos de entrada, sus respectivas categorías y los ejemplos nuevos al sistema. PROYECTO FIN DE CARRERA - Aprendizaje multi-tarea. Se trata de métodos de aprendizaje que usan conocimiento previamente aprendido por el sistema para tratar de solventar problemas parecidos a los ya vistos. La idea es emplear estas técnicas para detectar malware desconocido empleando como modelo de aprendizaje programas maliciosos y benignos previamente identificados como tales. En esta línea se mueve el trabajo de I. Santos et ál. (I. Santos F. B., 2011). 6.1.3 Cálculo de relevancias de tuplas de N-opcodes Quizás la mayor limitación teórica de este proceso es que no ha sido diseñado para la obtención de relevancias de cadenas de opcodes. El cálculo de relevancias se ha realizado únicamente con opcodes individuales como referencia siguiendo la línea de trabajo propuesta por Daniel Bilar (Bilar, 2007) en las que se establecía que los opcodes por sí solos eran ya indicadores de la propia existencia de malware. Sería recomendable en el futuro realizar un proceso similar al descrito utilizando como referencia pesos diferentes en función de la aparición de tuplas de 2, 3 ó 4 opcodes. En el procedimiento actual, se contempla que las cadenas de opcodes que contengan códigos operacionales iguales tendrán un peso idéntico cualquiera que sea el orden en el que éstos se encuentren, algo que no tiene por qué ser estrictamente así. De esta manera, se propone el desarrollo de un procedimiento que calcule la relevancia de cadenas de 2, 3, 4 ó 5 opcodes para explorar el alcance de esta propuesta. 6.1.4 Mapas filogenéticos El empleo de las técnicas expuestas en el capítulo 3 permitiría además realizar un análisis del etiquetado del malware por parte de los websites especializados. Este etiquetado se realiza atendiendo a la fecha de aparición de las variantes de malware y no atendiendo a razones filiales. De esta manera, se podrían refinar los métodos tradicionales de etiquetado del malware para pasar a tener en consideración la propia mutación de las diferentes familias. Esta nueva línea de investigación ofrecería más facilidades a los especialistas de seguridad para determinar cuáles son las tendencias evolutivas de cada una de las familias, permitiendo, por qué no, calcular la existencia de variantes aún no detectadas por comparación con sus hermanos. 6.1.5 Empaquetados Desafortunadamente, el método propuesto no se ha mostrado capaz de hacer frente al malware empaquetado. Para ello, sería necesario incluir una nueva capa en el proceso de detección de malware que se encargará de realizar el proceso de desempaquetado. Para ello, existen dos alternativas: la primera, consiste en identificar el programa empaquetador utilizado para utilizarlo para desempaquetarlo y obtener como resultado el ejecutable que finalmente se cargaría en memoria, y la segunda consiste en la creación de un desempaquetador genérico como ya han propuesto algunos autores como 157 6. DISPOSICIONES FINALES X. Ugarte-Pedrero, I. Santos y P.G. Bringas en su trabajo Structural Feature based Anomaly Detection for Packed Executable Identification (X. Ugarte-Pedrero, Structural Feature based Anomaly Detection for Packed Executable Identification, 2011). 6.2 CONCLUSIONES A estas alturas, es evidente que la razón de ser de toda organización empresarial es obtener el máximo rédito económico posible en la actividad productiva que desempeñan. Como tal, los procesos de negocio son los que dan dinero y los que marcan la supervivencia de las empresas en el tiempo. La seguridad informática sin embargo, aunque no es un apartado que aporte valor directamente sobre el producto final de muchas industrias, sí que es un activo a tener en cuenta como eje vertebrador del mantenimiento de la ventaja competitiva de éstas. El cada vez mayor número de sistemas informáticos implementados en cualquiera que sea el sector empresarial, hacen de la seguridad una necesidad urgente a subsanar para mantener la posición de privilegio de los líderes del mercado. En una sociedad global en el que la piratería y el tráfico clandestino de secretos campan a sus anchas, las empresas necesitan hacer uso de los mejores medios disponibles para protegerse ante estas amenazas. Se ha intentado dejar claro en este documento que la velocidad a la que se suceden los avances tecnológicos es cada vez mayor y que los mecanismos empleados por las empresas para protegerse de las amenazas informáticas hoy en día, dista mucho de los métodos empleados para hacer frente a los riesgos a los que se enfrentaba el consultor de seguridad hace una década. Por ello, es necesario que las empresas dispongan de un equipo de seguridad actualizado y formado con respecto al desarrollo de nuevos métodos que pongan en entredicho la seguridad de los sistemas actuales, ya que para poder priorizar y tomar decisiones adecuadas en base a los recursos finitos de los que se dispone, es fundamental conocer los riesgos a los que hay que hacer frente para buscar la manera de adelantarse a ellos e ir un paso por delante de la concepción tradicional de la seguridad que siempre va a remolque de la inseguridad. Así, todos los mecanismos aquí propuestos deberán estar integrados en el devenir diario de la empresa. El lanzamiento de cursos y campañas de concienciación entre los empleados de la compañía ayudará también a instaurar hábitos que permitan una gestión más adecuada de estos desafíos futuros en relación con la protección de los equipos. En ese sentido, en este proyecto fin de carrera se ha querido dejar constancia de la existencia de una amenaza real por culpa del afianzamiento de una industria del malware dispuesta a explotar todos los medios a su alcance para sacar el máximo rendimiento posible de las nuevas vulnerabilidades encontradas tanto en el software como en el hardware. También se han comentado algunos de los casos más relevantes en relación con sucesos que han afectado a la imagen y a la marca de algunas compañías 158 PROYECTO FIN DE CARRERA en el pasado, incidiendo especialmente en que si incluso las organizaciones de mayor tamaño se pueden ver afectadas por estas amenazas, no serán menores los riesgos a los que tendrán que hacer frente empresas con presupuestos de mucho menor calado. Como consecuencia de la continua evolución de las herramientas informáticas, los activos inmateriales (como los secretos industriales o las nuevas técnicas de fabricación), la información bancaria y datos de los clientes y proveedores son aspectos cuya seguridad va a ir adquiriendo una mayor relevancia con el paso del tiempo, de modo que la seguridad de los equipos informáticos que los contienen y de las redes que los manejan, será, en adelante, uno de los principales caballos de batalla para los ingenieros del futuro. 159 PROYECTO FIN DE CARRERA Este proyecto fin de carrera ha sido terminado de redactar en Bilbao, a 1 de mayo de 2011. 161 PROYECTO FIN DE CARRERA Bibliografía Areitio, J. (2008). Seguridad de la información. Redes, informática y sistemas de información. Learning Paraninfo, S. A. Associated Press. (2011, Marzo 21). Google blames China for distupting email services in latest spat. Associated Press. (2007, Septiembre 20). Newark: employee admits computer crime. The New York Times . BBC News. (2007, Junio 14). FBI tries to fight zombie hordes. Bilar, D. (2007). Opcodes as predictor for malware. Electronic Security and Digital Forensics, (pp. 156-169). Massachusetts. Bridis, T. (2001, Noviembre 22). FBI Develops Eavesdropping tools. Washington Post . Claburn, T. (2009, Enero 29). Fannie Mae Contractor Indicted For Logic Bomb. (I. Week, Ed.) Corrons, L. (2010, Marzo 3). Mariposa botnet. (P. L. blog, Ed.) Departamento de Defensa. (2006). Select Controls for the Information Security of the Ground-based Midcourse Defense Communications Network. Auditoría, Oficina de Inspección General, Departamento de Defensa de los Estados Unidos. El País. (2011, abril 14). Cae un «botnet» pirata que había infectado dos millones y medio de ordenadores. El País . Europol. (2008, Enero 17). Training course on Investigating Malware and Botner-driven crime. La Haya, Países Bajos. Federal Bureau of Investigation (FBI). (2007). OPERATION: BOT ROAST 'Botherders' charged as Part of Initiative. Fortinet. (2011). March 2011 Threat Landscape Research. Gabryluk, A. (2011, April 6). Trend Micro: spam in decline, but toolkits a rising threat. Telemanagement, the Authoritative Journal of Business Telecommunications . Gartner. (2008). New Bank-Targeted Trojan via Firefox Saps Consumer Confidence. Gartner. (2009). The War of Phishing is Far From Over. 163 BIBLIOGRAFÍA I. Santos, B. S. (2011). Opcode-sequence-based Semi-supervised Unknown Malware Detection. 4th International Conference on Computational Intelligence in Security for Information Systems (CISIS), (pp. 50-57). Torremolinos. I. Santos, F. B. (2010). Opcode-sequence-based Malware Detection. 2nd International Symposium on Engineering Secure Software and Systems (ESSoS), (pp. 35-43). Pisa (Italia). I. Santos, F. B. (2011). Using Opcode Sequences in Single-Class Learning to Detect Unknown Malware. IET Information Security . IDG News Service. (2010). Siemens: Stuxnet worm hit industrial systems. ComputerWorld . J. M. Gómez-Hidalgo, J. M.-A. (2010). Data Leak Prevention through Named Entity Recognition. 1st International Workshop on Privacy Aspects of Social Web and Cloud Computing (PASWeb). IEEE International Conference on Privacy, Security, Risk and Trust (PASSAT2010), (pp. 1129-1134). Minneapolis. J. Nieves, I. S. (2010). Enhanced Foundry Production Control. Computer Science 6262, Springer-Verlag Berlin Heidelberg 201, (pp. 213-220). Berlin. J. Nieves, I. S.-P. (2011). Anomaly Detection for High Precision Foundries. 9th IEEE International Conference on Industrial Informatics (INDIN). Lisboa. Kahoraho Buyubiye, E., & Gude Prego, J. J. (2009). Fundamentos de control e instrumentación de procesos. (S. A. Kopiak, Ed.) Bilbao. Long, J. (2004). Google hacking for penetration testers. Syngress Publishing. Maclean, W. (2010, September 24). Cyber attack appears to target Iran-tech firms. Reuters . London: Reuters. McMillan, R. (2010). Was Stuxnet built to attack Iran's nuclear program? ComputerWorld . Mullenweg, M. (2011, Abril 13). Security Incident. (Wordpress, Ed.) Pardo, R. (2002-2003). Administración de Empresas. Bilbao. PCWorld. (2011, marzo 17). Likejacking, código malicioso en el «Me gusta» de Facebook. Prince & Cooke. (2010). Riesgos y costes de la Piratería en PyMEs en América Latina. Resolución: R/01139/2008, Procedimiento Nº PS/00075/2008 (Agencia Española de Protección de Datos Septiembre 1, 2008). 164 PROYECTO FIN DE CARRERA Revilla Ocejo, J. (2011). Informática Industrial. Teoría (Vol. Volumen 1). Bilbao. Revilla Ocejo, J. (2011). Informática Industrial. Teoría (Vol. Volumen 2). Bilbao. Salvatierra, B. (2011, Abril 5). Así funciona el robo de datos en internet. Público . Stallings, W. (2004). Comunicaciones y Redes de Computadores (Séptima Edición ed.). (J. E. Díaz Verdejo, J. M. Estévez Tapiador, P. García Teodoro, J. M. López Soler, & J. J. Ramos Muñoz, Trans.) Madrid: Pearson Prentice Hall. Symantec. (2010). W32.Stuxnet. Theodore, T. (1991). Picking, MIT Guide to Lock Picking. Trend Micro. Trend Labs. (2010). Trend Micro TrendLabs Global Threat Trends 1H 2010. Manila. Velasco, A. (2011). Complejos Industriales (Sexta Edición ed.). Bilbao. X. Ugarte-Pedrero, I. S. Structural Feature based Anomaly Detection for Packed Executable Identification. 4th International Conference on Computational Intelligence in Security for Information Systems (CISIS). Torremolinos. X. Ugarte-Pedrero, I. S. (2011). Structural Feature based Anomaly Detection for Packed Executable Identification. 4th International Conference on Computational Intelligence in Security for Information Systems (CISIS). Torremolinos. Zetter, K. (2010, Febrero 3). Report Details Hacks Targeting Google, Others. (T. Level, Ed.) 165 PROYECTO FIN DE CARRERA Índice Alfabético 802.11 ........................................ 25, 134 cookies................................................ 35 cortafuegos ........................................ 77 CPU ..................................................... 54 CRM .................................................. 143 csv ...................................................... 71 A D ábaco .................................................... 2 adware ............................................... 35 Agobot................................................ 76 Aircrack .............................................. 22 Airodump ........................................... 22 Andy Lin.............................................. 49 Antilam ............................................... 76 APIs .................................................... 26 ARP ..................................................... 24 ARPANET .............................................. 4 Axel «Ago» Gembe ............................ 76 Delf ..................................................... 77 Denegación de Servicio ...................... 17 DeustoTech ...................................... 155 diccionario .......................................... 57 dirección de seguridad ..................... 109 DLL ...................................................... 78 DMZ .................................................. 134 DoS ..................................................... 35 0 0-day ................................................ 119 8 B B. E. T. A ........................................... 116 backup .............................................. 147 Bancodor ............................................ 76 Bifrose ................................................ 77 bocas de red ..................................... 132 Boeing ................................................ 48 bombas lógicas................................... 35 botnet ................................................. 36 bots .................................................... 36 C caballos de Troya ............................... 34 cableado ........................................... 132 cableado coaxial............................... 132 canales IRC ......................................... 80 ciclo de Deming ................................ 110 cintas de backup .............................. 150 cluster............................................... 148 CmjSpy ............................................... 77 código binario ...................................... 2 comprobadores de red .................... 132 E eMule ........................................... 20, 79 ENIAC.................................................... 2 ERP ................................................... 143 Ex-ante ............................................. 116 Ex-post.............................................. 116 extranet ............................................ 141 F FakeAP................................................ 22 falsos positivos ........................... 69, 102 fibra óptica ....................................... 132 ficheros .dis ..................................... 74 firewall ..................................... 128, 139 firmas ............................................... 100 FreeBSD ............................................ 128 G gap de autenticación ......................... 42 Geoff Bickers ...................................... 22 George Boole ....................................... 2 GNU .................................................... 76 Gottfried Leibnitz ................................. 2 Graybird ............................................. 77 Gruel................................................... 78 167 ÍNDICE ALFABÉTICO grupos electrógenos ......................... 111 Gusanos .............................................. 37 hash .................................................. 100 histograma.......................................... 81 hoax .................................................... 34 Hupigon .............................................. 78 MD5 .................................................. 157 MDA .................................................... 48 metacrilato ....................................... 127 Microsoft Excel ................................... 72 Microsoft Outlook .............................. 81 minería de texto ................................. 62 Mosucker ............................................ 79 Mozilla ................................................ 44 I N I Love You ............................................. 5 ingeniería social ............ 42, 79, 121, 129 instrucciones mnemónicas ................. 55 integridad ..................................... 1, 147 intranet ............................................. 140 IRCbot ................................................. 79 ISSA ..................................................... 21 Named Entity Recognition ................ 154 NER ................................................... 155 Netstumbler ............................... 22, 134 NewBasicAssembler ..................... 55, 70 H J Johnny Long ........................................ 19 K KaZaA .................................................. 78 keycatchers ....................................... 130 Kismet ................................................. 22 know-how ......................................... 120 L lenguaje máquina ............................... 55 likejacking ........................................... 26 LittleWitch .......................................... 79 lock picking ....................................... 122 los relés de protección ......................... 8 M MAC .................................................... 25 MAC spoofing ................................... 132 Makwana ............................................ 50 malware empaquetado .................... 159 man-in-the-browser ........................... 44 man-in-the-middle ........................ 25, 42 máquina analítica ................................. 2 Mark I ................................................... 2 marketing ......................................... 117 McNamara .......................................... 49 168 O OpenNMS ......................................... 135 OpenView ......................................... 135 operando ............................................ 54 Optenet ............................................ 154 OSI..................................................... 112 P paneles mímicos ................................... 7 pcap .................................................... 22 PcClient ............................................... 79 PCI DSS ................................................ 21 PCMCIA ............................................. 129 PDF...................................................... 46 pesos tf-idf .......................................... 64 pharming ............................................ 42 phishing .............................................. 41 plan de contingencia ........................ 113 plan estratégico ................................ 110 PlayStation .......................................... 50 PLC .................................................. 8, 40 plug-in ................................................. 44 producto escalar ................................. 63 Protección de Datos de Carácter Personal........................................... 20 Q Qriocity ............................................... 51 PROYECTO FIN DE CARRERA R rack................................................... 131 racks ................................................. 122 RAID ................................................. 151 redes inalámbricas ............................. 21 redundancia ..................................... 147 routers .............................................. 112 RS-232 .............................................. 148 S SAI .................................... 111, 149, 151 Sdbot .................................................. 79 servidores proxy................................. 22 SHA-1................................................ 157 similitud del coseno ........................... 62 sistemas NAS .................................... 124 SMART .............................................. 136 SNMP................................................ 135 spam................................................... 36 spyware .............................................. 35 SSD ................................................... 141 Stuxnet ........................................... 8, 39 SubSeven ............................................ 80 switch ............................................... 131 switches............................................ 112 T tarjetas de coordenadas .................... 45 TCP/IP ................................................. 18 telnet ................................................ 138 terminales X ..................................... 124 TIR .................................................... 116 trigger................................................. 36 troyanos ............................................. 34 U UNIVAC ................................................. 3 US PSN ................................................ 51 V VAN .................................................. 115 VB ....................................................... 80 vectores de inicialización ................... 22 virus .................................................... 33 Von Neumann ...................................... 4 VxHeavens .......................................... 75 W WEKA .......................................... 71, 158 WEP ...................................... 21, 22, 131 WPA.................................................... 25 Z Zokrim ................................................ 80 tap .................................................... 130 169 PROYECTO FIN DE CARRERA Apéndices En esta sección se incluyen los 5 apéndices que complementan la información suministrada en el Proyecto Fin de Carrera, pero que, dada su extensión, no han sido incluidos en el texto del proyecto en sí: Apéndice 1: Archivo de relevancia de opcodes Apéndice 2: Parser de ficheros .xml Apéndice 3: Procedimiento de gestión de los parámetros del programa Apéndice 4: Funciones auxiliares para la creación de ficheros .arff Apéndice 5: Funciones Hash o resumen y herramientas para su cálculo 171 PROYECTO FIN DE CARRERA APÉNDICE 1: ARCHIVO DE RELEVANCIA DE OPCODES La información mostrada en las páginas que van a continuación corresponden a la contenida en el archivo de configuración configuration.xml empleado en el experimento desarrollado en el Capítulo 3. En este fichero se registran todos y cada uno de los opcodes junto con la relevancia de cada uno de ellos en función de en qué tipo de archivos hayan sido detectados, obteniendo un peso de 100% aquellos que cuando han sido encontrados formaban parte siempre de código malicioso y obteniendo un peso del 0%, bien aquellos opcodes que no han sido identificados en ningún fichero o bien aquellos que sólo han aparecido en software benigno, con el fin de priorizar a aquéllos que aparecen con más frecuencia en el malware. Como se puede observar, el fichero se encuentra ordenado de forma descendente en función del peso individual de cada opcode. Aún así, la utilización de esta técnica es puramente experimental. En un prototipo más avanzado el uso de este fichero debe ser sustituido (como de hecho ha sido sustituido) por una base de datos tal y como se recoge en un trabajo posterior ya publicado y aceptado por la comunidad científica. <?xml version="1.0" encoding="utf-8" ?> - <configuracion> - <weightsTable> <retf>100</retf> <subss>100</subss> <subpd>100</subpd> <sqrtss>100</sqrtss> <sqrtpd>100</sqrtpd> <shufpd>100</shufpd> <punpcklqdq>100</punpcklqdq> <pshufd>100</pshufd> <mulss>100</mulss> <movupd>100</movupd> <movntdq>100</movntdq> <movmskpd>100</movmskpd> <movhpd>100</movhpd> <movdq2q>100</movdq2q> <minss>100</minss> <maxss>100</maxss> <maxsd>100</maxsd> <maxpd>100</maxpd> <divpd>100</divpd> <cvttpd2pi>100</cvttpd2pi> <cvttpd2dq>100</cvttpd2dq> <cvtsi2ss>100</cvtsi2ss> <mulpd>100</mulpd> 173 APÉNDIDES <cvtsd2si>100</cvtsd2si> <fcomi>97,99897383</fcomi> <cvtpi2pd>100</cvtpi2pd> <psubusw>97,98657718</psubusw> <cvtpd2dq>100</cvtpd2dq> <paddq>97,97979798</paddq> <comisd>100</comisd> <setp>97,84946237</setp> <c>100</c> <xadd>97,76871916</xadd> <psubq>99,70282318</psubq> <cvtps2pi>97,71428571</cvtps2pi> <psraw>99,48717949</psraw> <fbstp>97,70143976</fbstp> <movss>99,38271605</movss> <cmovnp>97,69736842</cmovnp> <setnp>99,34640523</setnp> <fcmovne>97,59384023</fcmovne> <fyl2xp1>99,33035714</fyl2xp1> <pavgw>97,56944444</pavgw> <cmovge>99,29824561</cmovge> <cmovle>97,46835443</cmovle> <movdqu>99,29328622</movdqu> <psadbw>97,36842105</psadbw> <setno>99,18699187</setno> <pmaxsw>97,35099338</pmaxsw> <fnop>99,09613804</fnop> <movnti>97,35099338</movnti> <paddsb>98,92307692</paddsb> <pminub>97,30639731</pminub> <ucomiss>98,6013986</ucomiss> <cmovp>97,2972973</cmovp> <bsf>98,59872611</bsf> <fcmovu>97,27685325</fcmovu> <psubusb>98,58490566</psubusb> <fucomip>97,09962169</fucomip> <fcmovnbe>98,53333333</fcmovnbe> <fcmovnb>97,04861111</fcmovnb> <comiss>98,49056604</comiss> <cvtdq2ps>97,02970297</cvtdq2ps> <fdecstp>98,47715736</fdecstp> <pcmpeqd>97,00787402</pcmpeqd> <pmaxub>98,44559585</pmaxub> <fcmovbe>96,98009609</fcmovbe> <fcmove>98,36400818</fcmove> <cmovns>96,85714286</cmovns> <sysexit>98,21428571</sysexit> <rsm>98,21428571</rsm> 174 <maskmovq>96,80851064</maskmov q> PROYECTO FIN DE CARRERA <psrad>96,74796748</psrad> <pinsrw>94,81481481</pinsrw> <rsqrtps>96,71641791</rsqrtps> <iret>94,49004953</iret> <fcmovb>96,67119565</fcmovb> <btc>94,4646098</btc> <ffree>96,66182874</ffree> <aad>94,29776726</aad> <fidivr>96,53834676</fidivr> <fldl2t>94,21965318</fldl2t> <fucom>96,39519359</fucom> <fstenv>94,03286979</fstenv> <pminsw>96,35036496</pminsw> <cmovs>94,02173913</cmovs> <fucomp>96,26485569</fucomp> <sqrtps>93,98907104</sqrtps> <psrlw>96,1038961</psrlw> <loope>93,92485885</loope> <psrld>96,08938547</psrld> <lds>93,81135707</lds> <cmpxchg8b>95,90062112</cmpxchg8 b> <cvtpi2ps>95,89041096</cvtpi2ps> <pcmpgtd>95,85062241</pcmpgtd> <pmulhuw>95,81395349</pmulhuw> <cmovg>95,63318777</cmovg> <paddusw>95,52238806</paddusw> <divps>95,47511312</divps> <movdqa>95,46875</movdqa> <fcomip>95,45772187</fcomip> <wrmsr>95,20153551</wrmsr> <fisubr>95,16612829</fisubr> <packsswb>95,13513514</packsswb> <psubsb>95,1048951</psubsb> <rcpps>95,09803922</rcpps> <bsr>93,60580092</bsr> <movntps>93,52941176</movntps> <minps>93,23671498</minps> <xlat>93,19593284</xlat> <sti>93,17740683</sti> <fincstp>93,17269076</fincstp> <stc>93,02238026</stc> <cmc>93,01987397</cmc> <pcmpgtw>92,95774648</pcmpgtw> <cmovbe>92,7756654</cmovbe> <popf>92,6904717</popf> <lahf>92,65367316</lahf> <rdmsr>92,63803681</rdmsr> <ficomp>92,57641921</ficomp> <into>92,57606491</into> 175 APÉNDIDES <maxps>92,2705314</maxps> <fsincos>87,66233766</fsincos> <pmuludq>92,1875</pmuludq> <ftst>87,60958504</ftst> <loop>92,09858644</loop> <aam>87,40712661</aam> <cli>92,0920641</cli> <fldenv>87,33223452</fldenv> <unpckhps>91,98113208</unpckhps> <hlt>87,18049796</hlt> <cvttps2pi>91,42857143</cvttps2pi> <fist>87,1119654</fist> <out>91,38079507</out> <xchg>87,00103544</xchg> <jnp>91,28724879</jnp> <fxch>86,93866031</fxch> <fistp>91,12643401</fistp> <fimul>86,84459587</fimul> <psubd>90,90909091</psubd> <lods>86,73359324</lods> <movq>89,7905065</movq> <pushf>86,6642367</pushf> <das>89,76499854</das> <punpckhbw>86,5625</punpckhbw> <bswap>89,59261092</bswap> <jno>86,45804201</jno> <jp>89,47351739</jp> <cmovae>86,26760563</cmovae> <rdtsc>89,27315358</rdtsc> <fbld>86,03782396</fbld> <aaa>88,91231306</aaa> <pcmpgtb>85,91549296</pcmpgtb> <fisub>88,88121547</fisub> <fxtract>85,71428571</fxtract> <cmovl>88,51851852</cmovl> <clc>85,66508514</clc> <fldz>88,49033063</fldz> <int>85,36622596</int> <rdpmc>88,44884488</rdpmc> <jcxz>85,17774594</jcxz> <cmovo>88,44086022</cmovo> <fucompp>85,04016064</fucompp> <fchs>88,43099378</fchs> <lgs>84,86486486</lgs> <seto>88,26086957</seto> <pandn>84,84848485</pandn> <ud2>88,21656051</ud2> <sysenter>84,58333333</sysenter> <andnps>88</andnps> <aas>84,56732216</aas> 176 PROYECTO FIN DE CARRERA <setb>83,37438424</setb> <ror>78,20782005</ror> <les>83,17326366</les> <movntq>78,16733068</movntq> <fucomi>82,95605859</fucomi> <fld1>78,12974203</fld1> <pextrw>82,67716535</pextrw> <fxam>77,71520515</fxam> <sgdt>82,63852243</sgdt> <cbw>77,66387419</cbw> <daa>82,08799403</daa> <db>77,34950635</db> <punpckhdq>81,98614319</punpckhd q> <subsd>81,81818182</subsd> <in>80,81183796</in> <punpckldq>80,74534161</punpckldq > <fidiv>77,00528867</fidiv> <fsqrt>76,91309987</fsqrt> <setns>76,8707483</setns> <loopne>76,20017553</loopne> <cmovb>76,12903226</cmovb> <fsave>80,35800677</fsave> <frstor>75,72888114</frstor> <paddusb>80,23952096</paddusb> <orps>75,71428571</orps> <xorpd>80</xorpd> <clts>75,57251908</clts> <fprem1>80</fprem1> <cmove>75</cmove> <pcmpeqw>79,89690722</pcmpeqw> <fsubrp>74,78873239</fsubrp> <fldln2>79,59183673</fldln2> <addps>74,617737</addps> <movmskps>78,98832685</movmskps > <unpcklps>78,96825397</unpcklps> <rol>78,89352492</rol> <pavgb>78,74396135</pavgb> <rcl>78,7243831</rcl> <ficom>78,60782951</ficom> <enter>78,39758806</enter> <std>74,18123563</std> <cmovne>73,68421053</cmovne> <fdivr>73,15620346</fdivr> <pcmpeqb>72,44897959</pcmpeqb> <rcr>71,7446313</rcr> <cmpps>71,18644068</cmpps> <psubb>70,80745342</psubb> <paddb>70,32520325</paddb> 177 APÉNDIDES <addsd>70</addsd> <wait>62,78162081</wait> <lar>69,34460888</lar> <jns>62,63971953</jns> <cmova>69,17293233</cmova> <test>62,44614005</test> <invd>69,14893617</invd> <arpl>68,3423567</arpl> <cvtps2pd>67,03539823</cvtps2pd> <int3>66,70805768</int3> <frndint>66,66666667</frndint> <bound>66,65292937</bound> <sahf>66,45495495</sahf> <faddp>66,21404324</faddp> <ret>66,15264847</ret> <setl>65,96618357</setl> <ins>65,86680085</ins> <sldt>65,76806879</sldt> <andps>65,66523605</andps> <pusha>65,5399718</pusha> <outs>65,44711738</outs> <pxor>64,9122807</pxor> <mulsd>64,28571429</mulsd> <xorps>64,1025641</xorps> <f2xm1>63,82978723</f2xm1> <popa>63,01976871</popa> <bt>63,01204819</bt> <fscale>62,8458498</fscale> 178 <pmovmskb>62,42424242</pmovmsk b> <pshufw>62,17948718</pshufw> <fabs>61,9669612</fabs> <mul>61,4649107</mul> <movzx>61,31044675</movzx> <jo>60,61441746</jo> <je>60,49451204</je> <fcom>60,40782292</fcom> <wbinvd>60,11450382</wbinvd> <setbe>59,88372093</setbe> <cmpxchg>59,38461538</cmpxchg> <cmps>58,50625211</cmps> <lfs>58,44155844</lfs> <pslld>57,4204947</pslld> <pmaddwd>57,27109515</pmaddwd> <movapd>57,14285714</movapd> <nop>56,75179641</nop> <mulps>56,27705628</mulps> <pmullw>56,25</pmullw> <sets>56,21621622</sets> <fstp>56,09716484</fstp> PROYECTO FIN DE CARRERA <js>55,75258859</js> <fiadd>49,12820513</fiadd> <subps>55,48387097</subps> <ja>48,82717195</ja> <cmovno>55,16224189</cmovno> <fcos>48,74623872</fcos> <sar>54,87642104</sar> <fmul>48,20925969</fmul> <fsubr>54,47577945</fsubr> <shl>47,95260345</shl> <jne>54,45840164</jne> <fpatan>47,22222222</fpatan> <packssdw>54,20168067</packssdw> <pop>47,12944381</pop> <psubsw>54,06360424</psubsw> <fld>53,85520769</fld> <psubw>53,50553506</psubw> <neg>53,39009098</neg> <fcmovnu>53,29181495</fcmovnu> <setge>52,93670886</setge> <setle>51,55159038</setle> <shrd>51,38529738</shrd> <movlps>51,18790497</movlps> <cld>50,80080037</cld> <cmp>50,74478572</cmp> <fldlg2>50,42194093</fldlg2> <cpuid>50,26455026</cpuid> <rsqrtss>50</rsqrtss> <punpckhwd>47,02970297</punpckhw d> <cmppd>44,44444444</cmppd> <fyl2x>44,37299035</fyl2x> <jmp>44,2098602</jmp> <fptan>43,82716049</fptan> <fdiv>43,11028828</fdiv> <not>42,99982957</not> <paddw>42,65232975</paddw> <paddsw>42,56410256</paddsw> <setne>42,32366286</setne> <imul>41,78422163</imul> <btr>41,57303371</btr> <prefetcht2>41,26679463</prefetcht2 > <movsd>50</movsd> <jl>40,88373671</jl> <andpd>50</andpd> <fcompp>40,65074135</fcompp> <movsx>49,6882352</movsx> <lsl>40,35532995</lsl> <mov>49,54911918</mov> <setg>40,22177419</setg> 179 APÉNDIDES <finit>40</finit> <fst>27,86961367</fst> <jbe>38,70349896</jbe> <psllw>27,57009346</psllw> <fstsw>38,11797018</fstsw> <fdivrp>27,45367193</fdivrp> <lss>37,88395904</lss> <bts>27,00329308</bts> <psllq>37,5</psllq> <fsub>26,5447708</fsub> <shr>37,32392344</shr> <div>25,5518102</div> <sete>36,93399737</sete> <packuswb>24,67532468</packuswb> <fclex>36,67412636</fclex> <fdivp>24,56140351</fdivp> <xor>34,51408578</xor> <sbb>23,61877372</sbb> <psrlq>34,39716312</psrlq> <fild>22,43255197</fild> <jle>34,26514482</jle> <fmulp>22,42907801</fmulp> <sub>33,9244064</sub> <fsubp>22,37330037</fsubp> <movlpd>33,33333333</movlpd> <setae>22,22222222</setae> <punpcklbw>32,8358209</punpcklbw> <fsin>32,22416813</fsin> <fldcw>32,13127513</fldcw> <add>32,06928502</add> <fprem>31,92090395</fprem> <adc>31,53257485</adc> <fadd>30,81687755</fadd> <push>30,54649586</push> <movhps>29,92248062</movhps> <fldpi>29,72972973</fldpi> <call>29,26642272</call> <fcomp>28,75146542</fcomp> 180 <pand>22</pand> <and>20,5575516</and> <punpcklwd>19,07894737</punpcklwd > <leave>18,55602421</leave> <lfence>17,1314741</lfence> <movups>17,00975081</movups> <dec>16,48726132</dec> <seta>16,39344262</seta> <movs>14,5863316</movs> <jae>14,34672861</jae> <jg>13,74873989</jg> PROYECTO FIN DE CARRERA <idiv>13,59728855</idiv> <stos>3,357017144</stos> <shufps>12,27272727</shufps> <cwd>3,104999289</cwd> <paddd>12,16931217</paddd> <por>1,136925358</por> <shld>11,80274859</shld> <emms>0,520833333</emms> <ucomisd>11,11111111</ucomisd> <unpcklpd>0</unpcklpd> <lea>9,910670492</lea> <orpd>0</orpd> <inc>9,490482858</inc> <divss>0</divss> <scas>9,220048668</scas> <cvtdq2pd>0</cvtdq2pd> <fldl2e>8,415841584</fldl2e> <cmpsd>0</cmpsd> <pmulhw>7,975460123</pmulhw> <addss>0</addss> <movaps>7,629427793</movaps> <addpd>0</addpd> <movd>6,875</movd> </weightsTable> <jb>6,659128724</jb> </configuracion> <or>6,180889801</or> <jge>6,139306847</jge> <fstcw>4,877606528</fstcw> 181 PROYECTO FIN DE CARRERA APÉNDICE 2: PARSER DE FICHEROS .XML A continuación se incluye parte del código empleado para la lectura del fichero de relevancias expuesto en el apéndice anterior. Se trata de un sencillo parser de ficheros .xml que recogerá las variables y las relevancias del fichero. También ha sido implementado en C#. /// <summary> /// </summary> public class ConfigurationParser { // Dictionary containing the weights of opcodes in malware applications public Dictionary<string, double> weights = new Dictionary<string, double>(); public ConfigurationParser(string path) { // use an XmlTextReader to open an XML document XmlTextReader xtr = new XmlTextReader(path); xtr.WhitespaceHandling = WhitespaceHandling.None; // load the file into an XmlDocuent XmlDocument xd = new XmlDocument(); xd.Load(xtr); // get the document root node XmlNode xnodDE = xd.DocumentElement; // recursively walk the node tree AddChildren(xnodDE, 0); // close the reader xtr.Close(); } private void AddChildren(XmlNode xnod, int level) { XmlNode xnodWorking; String pad = new String(' ', level * 2); switch (xnod.Name) { case "weightsTable": { foreach (XmlNode xmle in xnod) { weights.Add(xmle.Name, Convert.ToDouble(xmle.InnerText)); } break; } } 183 APÉNDICES // call recursively on all children of the current node if (xnod.HasChildNodes) { xnodWorking = xnod.FirstChild; while (xnodWorking != null) { AddChildren(xnodWorking, level + 1); xnodWorking = xnodWorking.NextSibling; } } } public void DisplayWeights() { foreach (string n in weights.Keys) { Console.WriteLine(n + "\t" + weights[n]); } } } 184 PROYECTO FIN DE CARRERA APÉNDICE 3: PROCEDIMIENTO DE GESTIÓN DE LOS PARÁMETROS DEL PROGRAMA En este apartado se recoge parte del código experimental de NOA que abarca la selección de las funcionalidades ya comentadas en el Capítulo 3 de este documento. private static int ProcessArguments(string[] args) { if (!File.Exists(Environment.CurrentDirectory.ToString() + '\\' + "nbdisasm.exe")) { // nbdisasm.exe not found return -3; } for (int i = 0; i < args.Length; i++) { switch (args[i].Substring(0, 2)) { // h, H, ? standing for Help case "-h": case "-H": case "?": case "-?": return 0; // a, A standing for ARFF case "-a": case "-A": weka = true; try { // Updating arff's Destinitation path arffDestiny = args[i].Substring(2); } catch (Exception e) { Console.WriteLine("402 Error: Can`t determine a valid destination root.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // i, I standing for INFO case "-i": case "-I": try { source = args[i].Substring(2); fileEntries = Directory.GetFiles(source); } catch (Exception e) { Console.WriteLine("402 Error: Can`t determine a valid source root.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } info = true; break; 185 APÉNDICES // e, E standing for Excel case "-e": case "-E": redirectOutputToExcel = true; break; // f, F standing for File case "-f": case "-F": try { path = args[i].Substring(2); } catch (Exception e) { Console.WriteLine("403 Error: File not found.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // N case "-N": recursive = true; try { nSequence = int.Parse(args[i].Substring(2)); } catch (Exception e) { Console.WriteLine("401 Error: Can`t determine a number of sequences.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // n case "-n": try { nSequence = int.Parse(args[i].Substring(2)); } catch (Exception e) { Console.WriteLine("401 Error: Can`t determine a number of sequences.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // v, V standing for Verbose case "-v": case "-V": verbose = true; break; // s, S standing for Source case "-g": case "-G": 186 PROYECTO FIN DE CARRERA try { goodSourceFolder = args[i].Substring(2); } catch (Exception e) { Console.WriteLine("403 Error: Can`t determine a valid source root for the goodware files.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // s, S standing for Source case "-s": case "-S": try { source = args[i].Substring(2); fileEntries = Directory.GetFiles(source); } catch (Exception e) { Console.WriteLine("402 Error: Can`t determine a valid source root.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // d, D standing for Destiny case "-d": case "-D": destiny = args[i].Substring(2); break; // m, M for selecting the metric to be used case "-m": case "-M": switch (args[i].Substring(2, 6).ToUpper()) { case "COSINE": metric = 0; break; case "SPEARM": metric = 1; break; case "PEARSO": metric = 2; break; } break; // o, O standing for Order case "-o": case "-O": order = true; break; // p, P standing for prepare case "-p": case "-P": prepare = true; 187 APÉNDICES try { source = args[i].Substring(2); fileEntries = Directory.GetFiles(source); // Updating arff's Destinitation path arffDestiny = args[i].Substring(2); } catch (Exception e) { Console.WriteLine("402 Error: Can`t determine a valid source root.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; // w, W standing for Weight case "-w": case "-W": heavy = true; try { // Defining a specific path for the configuration XML File config = new ConfigurationParser(args[i].Substring(2)); } catch (Exception e) { // Default path for the configuration XML File config = new ConfigurationParser("configuration.xml"); } break; // t, T standing for Total summary case "-t": case "-T": summary = true; break; case "-c": case "-C": pig = true; try { // Defining a specific path for the the comparison results comparedResults = (args[i].Substring(2)); } catch (Exception e) { // Default path for the comparison results comparedResults = ("ComparisonResults"); } break; case "-x": case "-X": usingDisFiles = true; try 188 PROYECTO FIN DE CARRERA { source = args[i].Substring(2); fileEntries = Directory.GetFiles(source); } catch (Exception e) { Console.WriteLine("402 Error: Can`t determine a valid source root.\nPlease, check the help for further information using:\n\tnoa.exe -h\n\nError details: " + e.Message); return -1; } break; default: break; } } if (verbose) Console.Out.WriteLine("\nValidating arguments ..."); return ValidateStartingInfo(); } private static int ValidateStartingInfo() { if ((nSequence != 0) && (path != "" || source != "")) everything is Ok if (!comparedResults.Equals("")) return 1; else // Falta comprobar q está el coboob return 1; else { // not enough parameters //ojooooooo q lo he cambiado return 1; } } // private static void PrintArguments(string[] args) { if (verbose) { Console.Out.WriteLine("\nPrinting arguments..."); for (int i = 0; i < args.Length; i++) { Console.Out.WriteLine("\t" + i + ")\t" + args[i]); } } } 189 PROYECTO FIN DE CARRERA APÉNDICE 4: FUNCIONES AUXILIARES PARA LA CREACIÓN DE FICHEROS .ARFF De cara al uso de las técnicas definidas en este documento junto con técnicas de aprendizaje automático, se incluye a continuación el código en C#relativo a la creación de ficheros .arff interpretables por WEKA. Estos ficheros han sido empleados para el desarrollo de experimentos de detección de malware desconocido en experimentos de aprendizaje semi-supervisado. /// <summary> /// This method is in charge of generating the arff file. Note that only generates the file since the /// information has already been loaded. /// 1.Creating the directory where it is going to be stored /// 2.Creating the ARFF file with the name : /// NOA1234.arff where 1234 is the number of ticks of the current hour /// 3.Adding some information as a comment to the file together with the creation date /// 4.Writing down the headers of the file: /// RELATION /// ATTRIBUTE attributte1 NUMERIC; /// ATTRIBUTE attributte2 NUMERIC; /// ... /// ATTRIBUTE type {G, M}; /// 5.Saving the data stored in the static arffstructure containing all the information /// DATA data /// /// </summary> private static void CreateArffFile() { string directory = ""; string folderName = ""; // Create a directory for the outputfiles #region Creating Directory if (!arffDestiny.Equals("") && !arffDestiny.Equals("/") && !arffDestiny.Equals('\\')) { directory = arffDestiny; } else { directory = Environment.CurrentDirectory; } System.IO.Directory.CreateDirectory(@directory); #endregion Creating Directory for (int i = 0; i < arffStructure.Count; i++) { #region Creating File.arff 191 APÉNDICES string fileName = ""; // Generating automatic filename DateTime date = DateTime.Now; fileName = directory + "\\NOA" + date.Ticks + ".arff"; // Create a writer and open the file using the name of the program passed. TextWriter tw = new StreamWriter(fileName); #endregion Creating File.arff Creación de ficheros ARFF #region Writing down arff info(); if (verbose) Console.Out.WriteLine("\nSaving file as:\n\t" + fileName + "\nPlease wait ..."); // Writing down some info tw.WriteLine("%"); tw.WriteLine("%\tARFF file automatically generated by NOA ... \n"); tw.WriteLine("%\tCreation Date:\t" + date + "\n"); tw.WriteLine("%\n%"); // Writing down Relation's name tw.WriteLine("@RELATION " + fileName.Substring(fileName.LastIndexOf('\\'))); // Writing down the list of attributes foreach (string key in arffStructure[i].Keys) { tw.WriteLine("@ATTRIBUTE \"" + key + "\" NUMERIC"); } // Writing the class attribute tw.WriteLine("@ATTRIBUTE class {GW,MW}"); // Writing down the Data tw.WriteLine("\n@DATA\n"); for (int j = 0; j < currentIndex; j++) { // We write the { symbol tw.Write("{"); // The variable i is to count the columns int attrCount = 0; foreach (string key in arffStructure[i].Keys) { // We write only if the attribute is not zero (sparse format file) if (arffStructure[i][key].freq[j] != 0) { tw.Write(attrCount + " " + arffStructure[i][key].freq[j].ToString().Replace(",", ".") + ","); } // We increase the attribute number count attrCount++; } 192 PROYECTO FIN DE CARRERA string name = fileEntries[j].Substring(fileEntries[j].LastIndexOf('\\')); if (name.Substring(1,5).Equals("AGood")) tw.Write(attrCount + " GW}\n"); else tw.Write(attrCount + " MW}\n"); } // close the stream tw.Close(); if (verbose) Console.Out.WriteLine("Save Completed"); #endregion } #region Writing down recursive arffinfo if requested if (recursive) { #region Creating File.arff string fileName = ""; // Generating automatic filename DateTime date = DateTime.Now; fileName = directory + "\\NOA" + date.Ticks + ".arff"; // Create a writer and open the file using the name of the program passed. TextWriter tw = new StreamWriter(fileName); #endregion Creating File.arff #region Writing down arff info: Creation Date and name of the relation; if (verbose) Console.Out.WriteLine("\nSaving file as:\n\t" + fileName + "\nPlease wait ..."); // Writing down some info tw.WriteLine("%"); tw.WriteLine("%\tARFF file automatically generated by NOA ... \n"); tw.WriteLine("%\tCreation Date:\t" + date + "\n"); tw.WriteLine("%\n%"); // Writing down Relation's name tw.WriteLine("@RELATION Recursive" + fileName.Substring(fileName.LastIndexOf('\\'))); #endregion #region Primera pasada por todos los niveles para almacenar sólo los atributos en el fichero for (int i = 0; i < arffStructure.Count; i++) { // Writing down each attribute for each level list of attributes foreach (string key in arffStructure[i].Keys) { 193 APÉNDICES tw.WriteLine("@ATTRIBUTE \"" + key + "\" NUMERIC"); } } #endregion // Writing the class attribute tw.WriteLine("@ATTRIBUTE class {GW,MW}"); // Writing down the Data tw.WriteLine("\n@DATA\n"); #region Segunda pasada ahora por todos los niveles para almacenar ahora la informacion correspondiente a cada uno for (int j = 0; j < currentIndex; j++) { // We write the { symbol tw.Write("{"); // The variable i is to count the columns int attrCount = 0; //Recorremos todos los niveles for (int i = 0; i < arffStructure.Count; i++) { // En el nivel actual, vamos a por todas las ocurrencias de opcodes foreach (string key in arffStructure[i].Keys) { // y escribimos solo si no es 0 if (arffStructure[i][key].freq[j] != 0) { tw.Write(attrCount + " " + arffStructure[i][key].freq[j].ToString().Replace(",", ".") + ","); } // We increase the attribute number count attrCount++; } } // Una vez escritos todos los niveles ponemos el tipo string name = fileEntries[j].Substring(fileEntries[j].LastIndexOf('\\')); if (name.Substring(1, 5).Equals("AGood")) tw.Write(attrCount + " GW}\n"); else tw.Write(attrCount + " MW}\n"); } #endregion // close the stream tw.Close(); if (verbose) Console.Out.WriteLine("Save Completed"); } #endregion } 194 PROYECTO FIN DE CARRERA APÉNDICE 5: FUNCIONES HASH O RESUMEN Y HERRAMIENTAS PARA SU CÁLCULO En informática, hash se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un documento, registro, archivo, etc.. Por resumir, se entiende identificar probabilísticamente un gran conjunto de información, dando como resultado un conjunto imagen finito generalmente menor (un subconjunto de los números naturales por ejemplo). Las funciones resumen varían en los conjuntos de partida y de llegada y en cómo afectan a la salida similitudes o patrones de la entrada. Una propiedad fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces las dos entradas que generaron dichos resultados también deberían serlo. Sin embargo, es muy posible que existan claves resultantes iguales para objetos diferentes, ya que el rango de posibles claves es mucho menor que el de posibles objetos a resumir (las claves suelen tener en torno al centenar de bits, pero los ficheros no tienen un tamaño límite). Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía, procesamiento de datos y firmas digitales, entre otros. Una buena función de hash es una que experimenta pocas colisiones en el conjunto esperado de entrada; es decir que se podrán identificar unívocamente las entradas. Muchos sistemas relacionados con la seguridad informática usan funciones o tablas hash y en este proyecto se han utilizado dos de los más conocidos: MD5 y SHA1. En criptografía, MD5 (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash, plantea una serie de dudas acerca de su uso futuro. class HashGenerator { #region Static Methods for this utility /// <summary> /// Static method to compute the MD5 hash for an executable file. /// /// The source code was published by brezovsky at http://blog.brezovsky.net/en-text-2.html and it has been /// fully recycled. /// </summary> /// <param name="text">String containing the excutable files...</param> 195 APÉNDICES /// <returns>In a string the SHA1 hash of the given file.</returns> public static string GetMD5Hash(string input) { System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] bs = System.Text.Encoding.UTF8.GetBytes(input); bs = x.ComputeHash(bs); System.Text.StringBuilder s = new System.Text.StringBuilder(); foreach (byte b in bs) { s.Append(b.ToString("x2").ToLower()); } string password = s.ToString(); return password; } [...] #endregion } La familia SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hash criptográficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos y publicadas por el National Institute of Standards and Technology (NIST). El primer miembro de la familia fue publicado en 1993 es oficialmente llamado SHA. Sin embargo, hoy día, no oficialmente se le llama SHA-0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA1. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y en rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (conociéndose todos ellos como SHA-2). SHA-0 y SHA-1 producen una salida resumen de 160 bits (20 bytes) de un mensaje que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensaje MD4 y MD5. En 1998, un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA1, se desconoce si fue la NSA quien lo descubrió pero aumentó la seguridad del SHA-1 ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año 2004, un número de ataques significativos fueron divulgados sobre funciones criptográficas de hash con una estructura similar a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1. La resistencia del algoritmo SHA-1 se ha visto comprometida a lo largo del año 2005. Después de que MD5, entre otros, quedara seriamente comprometido en el 2004 por parte de un equipo de investigadores chinos, el tiempo de vida de 196 PROYECTO FIN DE CARRERA SHA-1 quedó visto para sentencia. El mismo equipo de investigadores chinos, compuesto por Xiaoyun Wang, Yiqun Lisa Yin y Hongbo Yu (principalmente de la Shandong University en China), ha demostrado que son capaces de romper el SHA-1 en al menos 269 operaciones, unas 2000 veces más rápido que un ataque de fuerza bruta (que requeriría 280 operaciones). Los últimos ataques contra SHA-1 han logrado debilitarlo hasta 263. class HashGenerator { #region Static Methods for this utility [...] /// <summary> /// Static method to compute the SHA1 hash for an executable file. /// /// The source code was published by ms_michel at http://snippets.dzone.com/posts/show/517 and it has been /// fully recycled. /// </summary> /// <param name="text">String containing the excutable files...</param> /// <returns>In a string the SHA1 hash of the given file.</returns> public static string GetSHA1Hash(string text) { // Gets the SHA1 hash for text SHA1 sha1 = new SHA1CryptoServiceProvider(); byte[] data = Encoding.Default.GetBytes(text); byte[] hash = sha1.ComputeHash(data); // Transforms as hexa string hexaHash = ""; foreach (byte b in hash) { hexaHash += String.Format("{0:x2}", b); } // Returns SHA1 hexa hash return hexaHash; } #endregion } 197