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

Documentos relacionados