3 PROYECTO DE TESIS I. TITULO: “SISTEMA DE SEGURIDAD DE SOFTWARE APLICANDO CRIPTOGRAFÍA CON AUTÓMATAS CELULARES” II. III. DATOS GENERALES 2.1 EJECUTOR : 2.2 DIRECTOR : INTRODUCCIÓN El Software de computadora, que es el que hace útil a una computadora, esta propensa a sufrir alteraciones en cualquier momento no solo por infecciones de virus informáticos sino también por personas maliciosas o inquietas por romper passwords o alterar el flujo de este. Hoy en día en Internet se pueden apreciar millones de programas publicados en páginas Web, de las cuales muchos son programas de uso compartido (Shareware), es decir que el usuario puede probar el programa gratuitamente, pero deberá pagar por este si lo quiere utilizar por más tiempo. Algunos de estos programas también son programas de libre acceso (Freeware), o sea que se pueden utilizar sin pago alguno. Aunque los desarrolladores intentan día a día proteger sus programas con nuevos algoritmos de seguridad de software; los crackers también descubren los agujeros para alterar los algoritmos. Por lo que ambos (desarrolladores y cracker’s) se encuentran en una lucha incansable e incesable por superarse el uno del otro. 4 IV. FORMULACIÓN DEL PROBLEMA Las empresas de desarrollo de software, e incluso aquellas personas que desarrollan software a pequeña escala, o simplemente para fines personales, siempre se vieron preocupadas por la seguridad de sus creaciones. Esta seguridad casi imposible de alcanzar en su totalidad, fue y es aún un problema de cualquier software que salga a la luz. Grupos de Cracker’s y aficionados al Cracking, están haciendo que el software sea un mal negocio para aquellas empresas desarrolladoras de software que ven a Internet como una puerta abierta para clientes que quieran comprar sus productos. Los software’s del tipo Shareware (Try-After-Pay) son los más propensos a ser atacados por los cracker’s, ya que estos se pueden descargar (download) a través de Internet para su evaluación, y luego de un cierto periodo el usuario deberá pagar por este, si lo quiere utilizar por más tiempo. Es por esto que se necesita de protecciones extras de diversos tipo en los Software’s que puedan dar una mayor seguridad contra las alteraciones de los mismo, para que cualquier empresa de desarrollo de software siga creando nuevas aplicaciones, y no se vea truncada en su desarrollo y crecimiento empresarial. El presente trabajo se muestra como una alternativa de solución a estos problemas, con la construcción de un Sistema de Protección de Software que sea capaz de asegurar a otros programas por medio de encriptación con Autómatas Celulares. Luego de formular el problema surge la siguiente interrogante: ¿Cuál es el Diseño para un Sistema de Seguridad que Proteja Archivos Portables Ejecutables PE, aplicando Criptografía con Autómatas Celulares? 5 V. OBJETIVOS 5.1 OBJETIVO GENERAL Diseñar y construir un Sistema de Seguridad con Aplicación de Criptografía de Autómatas Celulares para la Protección de Archivos Ejecutables “PE” de las plataformas Microsoft Windows. 5.2 OBJETIVOS ESPECÍFICOS Implementar con un Algoritmo de Encriptación basado en Autómatas Celulares, al archivo protegido mediante el Sistema de Protección de Software. Implementar con algoritmos de Comprobación de Redundancia Cíclica (CRC – Cyclic Redundancy Check) para proteger de cambios en el archivo protegido mediante el Sistema de Protección de Software. Implementar con algoritmos de detección de Debuggers (Depuradores) al software protegido mediante el Sistema de Protección de Software. 6 VI. ANTECEDENTES DE LA INVESTIGACIÓN En el ámbito de la ciudad de Puno no existe una investigación de esta naturaleza por lo que este trabajo será un punto de partida para que nuevos investigadores ahonden en el tema de la seguridad de software. En el mundo existen empresas especializadas en brindar aseguramiento de software a muchas otras, pero que en su mayoría solo usan algoritmos de encriptación ya conocidos, por lo que a los Cracker’s se les hace fácil el análisis y por ende la alteración de los programas. Un estudio bien detallado de los Autómatas Celulares para la aplicación en la Criptografía fue realizado por Stephen Wolfram del Instituto de Estudios Avanzados de Princeton NJ., el cual llego a la conclusión que los autómatas celulares podían producir increíbles patrones complejos, usando simples reglas, los cuales podrían ser utilizados para la producción de números aleatorios. Estos números aleatorios generados con Autómatas Celulares son más difíciles de resolver y analizar, que los producidos por medio algoritmos lineales, ya que el análisis evolutivo de un Autómata Celulares requiere saber los anteriores estados de este. Hoy en día no se conoce de un sistema de protección de software que use Algoritmos de Encriptación con Autómatas Celulares, por lo que el presente trabajo de investigación será un punto de partida muy importante en la Seguridad de Software en conjunción con los Sistemas Dinámicos y más precisamente con los Autómatas Celulares. Esta investigación no pretende dar una solución completa a la Seguridad del Software, sino una alternativa de solución para que se logren hacer sistemas de protección de software más fuertes que impidan a Cracker’s romper fácilmente estos algoritmos. 7 VII. MARCO TEÓRICO 7.1 SEGURIDAD DE SOFTWARE 7.1.1 SIGNIFICADO DEL TÉRMINO SEGURIDAD Un concepto adecuado para el presente trabajo, en el que se presenta un problema de seguridad en el software informático, sería: “La seguridad se refiere a las políticas, procedimientos y medidas técnicas usadas para evitar un acceso no autorizado, alteración, robo o daños físicos a los sistemas de registro. La seguridad puede promoverse mediante un conjunto de técnicas y herramientas para salvaguardar el hardware, software, las redes de telecomunicaciones y de datos”1. 7.2 ESTRUCTURA DE LOS ARCHIVOS PORTABLES EJECUTABLES “PE” El formato de los archivos PE, esta organizado como un flujo lineal de datos. Empieza con una cabecera MS-DOS, un programa stub de modoreal, y una firma del archivo PE. Inmediatamente sigue una cabecera de archivo PE y una cabecera opcional. Más allá de eso, todas las cabeceras de las secciones aparecen, seguidas por todos los cuerpos de las secciones. Cerrando fuera del archivo con otras secciones de información misceláneas, incluyendo información de relocalización, tablas de información de símbolos, números de líneas de información, y tablas de cadena de datos. 1 Los Sistemas de Información, Capitulo 18: El control de los sistemas de información, Pág: 708. 8 7.3. AMENAZAS EN LA SEGURIDAD DEL SOFTWARE "Se mueven en una delgada e indefinida barrera que separa lo legal de lo ilegal. Las instituciones y las multinacionales del software les temen, la policía los persigue y hay quien los busca para contratarlos. Se pasean libremente por las mayores computadoras y redes del mundo sin que ellas tengan secretos.”2 7.3.1. HACKERS Los años han hecho que esta palabra sea prácticamente intraducible, dando esto diversos resultados negativos y casi siempre acusadores sobre la persona que realiza hacking. “Un Hacker es una persona que está siempre en una continua búsqueda de información, vive para aprender y todo para él es un reto; no existen barreras, y lucha por la difusión libre de información (Free Information), distribución de software sin costo y la globalización de la comunicación”3. 7.3.2. CRACKERS Los Crackers, en realidad, son hackers cuyas intenciones van más allá de la investigación. Es una persona que tiene fines maliciosos o de venganza, quiere demostrar sus habilidades pero de la manera equivocada o simplemente personas que hacen daño solo por diversión. Tesis “Seguridad Informática: Sus Implicancias e Implementación”. Cristian F. Borghello 2001, www.cfbsoft.com.ar, Pág 3 – Capitulo: Amenazas Humanas. 3 Tesis “Seguridad Informática: Sus Implicancias e Implementación”. Cristian F. Borghello 2001, www.cfbsoft.com.ar, Pág 6 – Capitulo: Amenazas Humanas. 2 9 7.4. CRIPTOGRAFÍA 7.4.1. DEFINICIÓN La palabra criptografía proviene del griego kryptos, que significa esconder y gráphein, escribir, es decir, escritura escondida. La criptografía ha sido usada a través de los años para mandar mensajes confidenciales cuyo propósito es que sólo las personas autorizadas puedan entender el mensaje. “La criptografía, en el contexto de redes informáticas, es la ciencia que estudia los métodos y procedimientos, mediante algoritmos matemáticos, para modificar los datos de tal manera que solamente las personas que tengan la llave adecuada puedan a) tener acceso a la versión original de los mismos (confidencialidad) y b) asegurar que estos datos no fueron modificados entre el remitente y el destinatario (integridad)”4. La criptografía hoy día involucra varias formas de encriptación/desencriptación, así como diferentes métodos de autenticación. Aunque sus métodos y aplicaciones siguen siendo cada vez más complejos, la criptografía como tal sigue girando fundamentalmente alrededor de problemas matemáticos difíciles de solucionar. Un problema puede ser difícil de resolver porque su solución requiere de cierto conocimiento secreto, como la llave para desencriptar un mensaje cifrado o para firmar un documento digital. También puede ser que sea intrínsecamente difícil de solucionar, en términos de los requerimientos matemáticos o de cómputo necesarios para solucionar o decodificar el mensaje encriptado. 4 Aladdin Security Portal, Adaptado en español por Red Segura http://www.redsegura.com/Temas/CRdefini.html 10 7.4.2. CRIPTOGRAFÍA CLÁSICA El cifrado de textos es una actividad que ha sido ámpliamente usada a lo largo de la historia humana, sobre todo en el campo militar y en aquellos otros en los que es necesario enviar mensajes con información confidencial y sensible a través de medios no seguros. Aunque en cierta forma el sitema de jeroglíficos egipcio puede considerarse ya una forma de criptografía (sólo podían ser entendidos por personas con conocimientos suficientes), el primer sistema criptográfico como tal conocido se debe a Julio Cesar. Su sistema consistía en reemplazar en el mensaje a enviar cada letra por la situada tres posiciones por delante en el alfabeto latino. Por lo que el mensaje "HOLA MUNDO" se transformaría en "KRÑD OXPGR". Para volver al mensaje original desde el texto cifrado tan sólo hay que coger un alfabeto e ir sustituyendo cada letra por la que está tres posiciones antes en el msimo. Este sistema fué innovador en su época, aunque en realidad es fácil de romper, ya en todo sistema de trasposición simple sólo hay un número de variaciones posible igual al de letras que formen el alfabeto (27 en este caso). Este fué el primer sistema criptográfico conocido, y a partir de él, y a lo largo de las historia, aparecieron otros muchos sistemas, basados en técnicas criptológicas diferentes. Entre ellos caben destacar los sistemas monoalfabéticos (parecidos al de Julio Cesar, pero que transforman cada letra del alfabeto original en la correspondiente de un alfabeto desordenado), el sistema Playfair de Ser Charles Wheastone (1854, sistema monoalfabético diagramas), los sistemas polialfabéticos, los de permutación, etc. de 11 7.4.3. CRIPTOGRAFÍA MODERNA Los sistemas criptográficos clásicos presentaban una dificultad en cuanto a la relación complejidad-longitud de la clave / tiempo necesario para encriptar y desencriptar el mensaje. En la era moderna esta barrera clásica se rompió, debido principalmente a los siguientes factores: Velocidad de cálculo: con la aparición de los computadores se dispuso de una potencia de cálculo muy superior a la de los métodos clásicos. Avance de las matemáticas : que permitieron encontrar y definir con claridad sistemas criptográficos estables y seguros. Necesidades de seguridad: surgieron muchas actividades nuevas que precisaban la ocultación de datos, con lo que la Criptología experimentó un fuerte avance. A partir de estas bases surgieron nuevos y complejos sistemas criptográficos, que se clasificaron en dos tipos o familias principales, los de clave simétrica y los de clave pública. Los modernos algoritmos de encriptación simétricos mezclan la trasposición y la permutación, mientras que los de clave pública se basan más en complejas operaciones matemáticas. Criptografía simétrica. Incluye los sistemas clásicos, y se caracteriza por que en ellos se usa la misma clave para encriptar y para desencriptar, motivo por el que se denomina simétrica. Toda la seguridad de este sistema está basada en la llave simétrica, por lo que es misión fundamental tanto del emisor como del receptor 12 conocer esta clave y mantenerla en secreto. Si la llave cáe en manos de terceros, el sistema deja de ser seguro, por lo que habría que desechar dicha llave y generar una nueva. Para que un algoritmo de este tipo sea considerado fiable debe cumplir varios requisitos básicos: Conocido el criptograma (texto cifrado) no se pueden obtener de él ni el texto en claro ni la clave. Conocidos el texto en claro y el texto cifrado debe resultar más caro en tiempo o dinero descifrar la clave que el valor posible de la información obtenida por terceros. Generalmente el algoritmo de encriptación es conocido, se divulga públicamente, por lo que la fortaleza del mismo dependerá de su complejidad interna y sobre todo de la longitud de la clave empleada, ya que una de las formas de criptoanálisis primario de cualquier tipo de sistema es la de prueba-ensayo, mediante la que se van probando diferentes claves hasta encontrar la correcta. Los algoritmos simétricos encriptan bloques de texto del documento original, y son más sencillos que los sistemas de clave pública, por lo que sus procesos de encriptación y desencriptación son más rápidos. Las principales desventajas de los métodos simétricos son la distribución de las claves, el peligro de que muchas personas deban conocer una misma clave y la dificultad de almacenar y proteger muchas claves diferentes. Criptografía de clave pública. También llamada asimétrica, se basa en el uso de dos claves diferentes, claves que poséen una propiedad fundamental: una clave puede desencriptar lo que la otra ha encriptado. 13 Generalmente una de las claves de la pareja, denominada clave privada, es usada por el propietario para encriptar los mensajes, mientras que la otra, llamada clave pública, es usada para desencriptar el mensaje cifrado. Las claves pública y privada tienen características matemáticas especiales, de tal forma que se generan siempre a la vez, por parejas, estando cada una de ellas ligada intrínsecamente a la otra, de tal forma que si dos llaves públicas son diferentes, entonces sus llaves privadas asociadas también lo son, y viceversa. Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver en un sentido, pero muy complicadas de realizar en sentido inverso, salvo que se conozca la clave privada, como la potencia y el logaritmo. Ambas claves, pública y privada, están relacionadas matemáticamente, pero esta relación debe ser lo suficientemente compleja como para que resulte muy dificil obtener una a partir de la otra. Este es el motivo por el que normalmente estas claves no las elige el usuario, si no que lo hace un algoritmo específico para ello, y suelen ser de grán longitud. Mientras que la clave privada debe mantenerla en secreto su propietario, ya que es la base de la seguridad del sistema, la clave pública es difundida ámpliamente por Internet, para que esté al alcance del mayor número posible de personas, existiendo servidores que guardan, administran y difunden dichas claves. Sistemas mixtos. En muchas ocasiones se implementan sistemas criptográficos mixtos, en los que se usa la llave pública del receptor para encriptar una clave simétrica que se usará en el proceso de comunicación encriptada. De esta forma se aprovechan las ventajas de ambos sistemas, usando el sistema asimétrico para el envío de la clave 14 sensible y el simétrico, con mayor velocidad de proceso, para el envío masivo de datos. 7.5. AUTÓMATAS CELULARES (AC) 7.5.1. DEFINICIÓN Un AC finito-dimensional es una cuádrupla A = (I, S, V, f) donde I es el denominado espacio celular, S es el conjunto (finito) de estados, V es la vecindad de cada célula y f es la función de transición local. Espacio Celular: La disposición espacial de las células así como su número determinan el espacio celular, de tal forma que la dimensión del autómata celular viene dada por la del mínimo espacio real en el que se puede sumergir I. Para un AC de una dimensión (d = 1) las células se distribuirán uniformemente una a continuación de otra a modo de cadena. A estos ACs se les denomina lineales (para ser más explícitos, si el número de células del espacio celular es n, serán llamados n-lineales). Cada una de las células de un AC n-lineal se denotará por ai, donde 0 i n – 1. Conjunto de Estados: Si A es n-lineal (A = autómata celular), entonces denotaremos por ai(t ) al estado en el que encuentra la célula i en el instante t. En lo que sigue se considerará AC binarios, es decir la celda o célula sólo podrá estar en el estado “1” (activo) o en el estado “0” (inactivo). Vecindad: Es el conjunto de células cuyos estados en el instante t influyen en el estado de la célula considerada en el instante t + 1. En d = 1 el número de vecinos es 2r + 1 y el número de posibles vecindades es k2r + 1. 15 En un AC las n celdas se encuentran en un retículado de dimensión d. Cuando el retículo es de tamaño finito es común considerar condiciones de contorno periódicas, es decir que la celda en la posición 0 tiene como vecina a la celda de la posición n y viceversa. Función de Transición Local f: Mediante esta función se rige la evolución de los estados de las células teniendo en cuenta la vecindad de las mismas. Así, si A es un autómata celular n-lineal en el que suponemos que la vecindad es simétrica de radio r, entonces se puede obtener una función de transición como la siguiente: ai(t 1) f (ai(t )r ,...,ai(t ) ,...,ai(t )r ) 7.5.2. LOS AUTÓMATAS CELULARES DE WOLFRAM La teoría moderna de autómatas celulares podemos decir que se funda sobre los cimientos establecidos por Stephen Wolfram a mediados de la década de los 80. Dicho autor, centra su atención fundamentalmente en un tipo muy particular de autómata celular lineal A = (I, S, V, f) tal que posee las siguiente características: el conjunto de estados es S = Z2 = {0, 1}, las vecindades son simétricas de radio 2 y las condiciones de contorno son periódicas. A este tipo de Autómata Celulares es al que se refiere cuando se habla de autómatas celulares de Wolfram (ó ACW para abreviar). Las posibles funciones de transición que define Wolfram es de 2 2 256 autómatas de este tipo, las cuales fueron clasificados 3 por el propio Wolfram asociándoles un determinado número comprendido entre 0 y 255, denominado número de Wolfram del AC. Dicho número se construye de la siguiente manera: dado un AC de Wolfram cuya función de transición sea f, tendremos: 16 Entonces el número de Wolfram asociado al AC vendrá dado por: w 7 27 6 26 5 25 4 24 3 23 2 22 1 21 0 20 donde obviamente 0 w 255. Dicho de otra forma, el número de Wolfram del AC es el entero cuyo código binario se corresponda con los valores de las distintas vecindades “valoradas”. 7.6. CLASES Y OBJETOS 7.6.1. PROGRAMACIÓN ORIENTADA A OBJETOS Cuando se habla de POO se refiere necesariamente a un aspecto (entidad) fundamental “el Objeto” interveniente, este “Objeto” en la vida real puede existir en una infinidad de formas, ya que todo lo que existe son objetos (seres vivos, hechos, seres inanimados) y que a su vez presentan una serie de relaciones con otros objetos (interactuar). De esta forma al hacer una implicación a la orientación a objetos necesariamente se otorga mayor importancia a los datos, es así que se representan los objetos a partir de datos (tipo de datos abstractos), a diferencia de la programación estructurada que enfatiza lo procedimental. Todo objeto necesita interactuar con su medio por lo cual se definen cinco propiedades fundamentales: 17 Abstracción de Datos: Nos permite la creación de nuevos tipos de datos a partir de los ya existentes en un lenguaje determinado. Encapsulación: Protección de los datos privados que no pueden ser accesados por objetos externos. Herencia: Propiedad que permite la creación de un objeto hijo de uno superior heredando las mismas características. Polimorfismo: Propiedad mediante la cual un grupo de objetos reaccionan de diferente manera a un mismo mensaje. Reutilización: Posibilidad de volver a utilizar el código existente sin mucho esfuerzo. (Joyanes Aguilar, 1997). 7.7. METODOLOGÍA ORIENTADA A OBJETOS FDF VIII. HIPÓTESIS El Sistema de Seguridad para la Protección de Archivos Ejecutables con Aplicación de Criptografía con Autómatas Celulares, implanta su aseguramiento en más del 70% de los archivos ejecutables de las plataformas Microsoft Windows, lo que hace que sea un Sistema capaz de reestructurar todo el archivo a proteger, sin alterar el correcto funcionamiento de este. IX. MATERIALES Y MÉTODOS 18 9.1. MATERIAL DE ESTUDIO “Los intrusos utilizan diversas técnicas para quebrar los sistemas de seguridad de un sistema. Básicamente buscan los puntos débiles del sistema para poder colarse en ella. El trabajo de los Desarrolladores de Protección de Software no difiere mucho de esto. En lo que si se diferencia, y por completo, es en los objetivos: mientras que un Cracker penetra en las redes para distintos fines (investigación, alteración, daño, etc.) un Desarrollador lo hace para poder mejorar los sistemas de seguridad”5. Sin duda lo anterior es muy cierto, todos los desarrolladores de sistemas de protección de software tienen algo de cracker’s, por lo que el párrafo anterior es el punto de partida para el presente trabajo, al igual que los cracker’s el estudio de los sistemas de seguridad de software se llevó a cabo con la información obtenida por diversos tutoriales de cracking, y conversaciones con algunos cracker’s y hacker’s a través de correos electrónicos y charlas on-line por medio del mIRC. 9.2. POBLACIÓN La población esta formada por todos los archivos ejecutables existentes para las plataformas Microsoft Windows y que tengan la estructura de los archivos ejecutables PE. 9.3. MUESTRA Para la obtención de la muestra se tiene la siguiente formula dada según la proporción de interés. 5 Entrevista realizada al Hacker HackRock, el día 19 de noviembre del 2002, canal #Hacking - mIRC 19 n Z 2 xpxq d2 Donde: Z : Valor de tabla de la distribución Normal. p : Proporción de Interés del estudio. q : Complemento de la proporción de interés ( q = 1 – p ) d : Error de muestreo Como no se cuentan con trabajos anteriores de este tipo, entonces los valores de p y q serán tomadas asumiendo que un 50% de los archivos ejecutables sean protegidos y un 50% de estos no pudieron ser protegidos por el sistema, asumiendo que estos hallan tenido errores y fallas durante la protección del archivo ejecutable. Entonces obtenemos la siguiente cantidad de muestra para un error de muestreo del 15%: n 9.4. Z 2 xpxq (1.94)2 (0.5)(0.5) 23.20 23 d2 (0.15)2 DISEÑO ESTADÍSTICO Dado que la variable Protección del Archivo Ejecutable es una variable cualitativa con dos categorías (0 = Protegidos y 1 = No Protegidos) será necesario utilizar la “Prueba estadística de hipótesis de una sola Proporción”, que se define de la siguiente forma: Si n es pequeño, se usa la distribución Binomial PX x0 | p p0 n b( x, n, p) x x0 Si n es grande, se usa la distribución Normal como aproximación de la Binomial. 20 Z 9.5. Pˆ P0 p0 q0 / n X np 0 np 0 q 0 SISTEMA DE VARIABLES VARIABLES DE ESTUDIO Variable Dependiente Protección del Archivo Ejecutable PE. Variables Independientes Algoritmos de Seguridad. Nivel de Seguridad de la Plataforma de Ejecución. OPERACIONALIZACIÓN DE VARIABLES Variables Independientes Indicadores Índice Algoritmos de Seguridad. Seguridad en el Método de Muy Buena = 1 Encriptación con Autómatas Celulares. Buena =2 Regular =3 Mala =4 Muy Mala =5 Detección de Depuradores. Si No Comprobación de Redundancia Cíclica Si No Plataforma de Ejecución. Variable Dependiente Protección del Archivo Ejecutable. Nivel de Seguridad Ofrecida por la Muy Buena = 1 Plataforma. Buena =2 Regular =3 Mala =4 Muy Mala =5 Indicador Índice Archivo Ejecutable Protegido sin SI Errores por el Sistema de Protección No 21 9.6. DESARROLLO DEL SISTEMA METODOLOGÍA DE DESARROLLO Para el desarrollo del sistema se ha tomado por conveniente el proceso de construcción evolutivo denominado Modelo en Espiral propuesto por Boehm (Figura 6.1). MODELO EN ESPIRAL Debido al tiempo y la forma evolutiva que tendrá el sistema en cuanto a su desarrollo, se vio por conveniente tomar en consideración para el proceso de desarrollo del sistema el modelo en espiral, el cual es apropiado por la necesidad que se tendrá que actualizar el sistema en determinados periodos de tiempo y que proporcione mejores capacidades en cada etapa de desarrollo del sistema. El modelo en espiral se basa en regiones de tareas que pueden estar entre tres y seis regiones. Como se puede ver en el esquema inferior se muestra seis regiones de tareas en consideración: a. Comunicación con el cliente Se realizan las tareas requeridas para establecer comunicación entre el desarrollador y el cliente. b. Planificación Se realizaron las tareas requeridas para definir recursos, el tiempo y otras informaciones relacionadas con el proyecto. Aquí se delimitó el ámbito que abarcó el sistema en su entorno de negocios. c. Análisis de Riesgos Las tareas requeridas para evaluar riesgos técnicos y de gestión. d. Ingeniería 22 Las tareas requeridas para construir una o más representaciones de la aplicación. e. Construcción y adaptación Las tareas requeridas para construir, probar, instalar y proporcionar soporte al usuario (documentación y práctica). f. Evaluación del cliente Las tareas requeridas para obtener la reacción del cliente según la evaluación de las representaciones del software creadas durante la etapa de ingeniería e implementación durante la etapa de instalación. Planific ación Comunicac ión c on el c liente Análisis de Riesgos Evaluac ión del Cliente Ingenieria Construc ción y adaptac ión FIGURA 6.1 Modelo en Espiral X. ADMINISTRACIÓN DEL PROYECTO 10.1. CRONOGRAMA DE ACTIVIDADES TAREA Tiempo Especificación 1. Identificación de las 3 semanas - necesidades y beneficios Entrevistas con empresas y personas encargadas de desarrollar software. - Identificar las necesidades y limitaciones del sistema. 23 2. Definir las 2 semanas - Salidas/Control/Entradas Rango que tendrán las teclas en el software deseadas - Rango de interacción - Rango de detección de errores. - Rango de otras funciones - Documentos de Entrada/Control/Salida del Software 3. Definir la funcionalidad 3 semanas - Definir las funciones del teclado y Mouse - Definir los modos de interacción - Definir la detección de errores. - Definir otras funciones - Definir los elementos básicos del sistema 4. Investigar la disponibilidad 2 semanas - existente del software 5. Evaluar los resultados ser reutilizados en el software 1 semana - obtenidos Evaluar las entradas/ Control/ Salidas del software 6. Revisar la documentación del 2 semanas - software 7. Revisión y Validación Identificar los componentes que pueden Revisar una ves desarrollado la documentación del software 2 semanas - Presentación y revisión del software 24 10.2. RECURSOS DEL PROYECTO 10.2.1. HARDWARE Y SOFTWARE. HARDWARE - Una Computadora personal Pentium III de 800 Mhz con 128 MB de RAM SOFTWARE. - Sistema Operativo Microsoft Windows ME. - Microsoft Visual C++ 6.0 - New Visio 5.0 - UML Semantic Help - Microsoft Visual Modeler - Numera SOFTICE - Microsoft Macro Assembler 25 10.3. PRESUPUESTO Descripción Unidad Cant. Total(S/.) EQUIPOS Y MATERIALES - Bibliografía e Información - Discos Flexibles Caja 1 25.00 - Plumones de Pizarra Unidad 12 36.00 - Papel Bond 60 gr. Millar 2 44.00 - Papel Bond 80 gr Millar 3 84.00 - Cuaderno de 100 h Unidad 1 1.00 - Revistas 50.00 - Imprevistos (10%) 30.00 100.00 SERVICIOS - Digitación - Impresión - Empastado - Imprevistos (10%) 50.00 50.00 60.00 40.00 OTROS - Movilidad 50.00 - Investigación en web 300.00 S/. TOTAL 1070.00 26 XI. BIBLIOGRAFÍA: MIGUEL ANGEL RODRÍGUEZ – SOLELLÓ, “Programación ENSAMBLADOR en entorno MS DOS”, Ediciones ANAYA Multimedia, Primera Edición, España 1987. ENCICLOPEDIA DE INFORMATICA COMPUTACIÓN “Ingeniería de Software e Inteligencia Artificial” Editorial Cultural, S.A. Madrid España 1998, 356p. HERNANDEZ SAMPIERI, R, “Metodología de la Investigación”, Primera Edicion, Editorial Mc-Graw Hill ,1997. 486p. PRESSMAN, R. “Ingeniería de Software” Un enfoque moderno, Cuarta Edición, Editorial Mc – Graw Hill, México 1993, 591p. RANDY KATH, “The Portable Executable File Format from Top to Bottom”, Microsoft Developer Network Techonlogy Group, Junio de 1993. Referencia en Internet Tesis “Seguridad Informática: Sus Implicancias e Implementación”. Cristian F. Borghello 2001. http://www.cfbsoft.com.ar La Web del programador. http://www.lawebdelprogramdor.com. Tutoriales de Cracking, Compilación de Tutores 2000 v4.0, Karpoff http://welcome.to/Karpoff. Kriptopolis http://www.kriptolopolis.com 27 INDICE I. TITULO: .................................................................................................................................................. 3 II. DATOS GENERALES ........................................................................................................................ 3 III. INTRODUCCIÓN ............................................................................................................................... 3 IV. FORMULACIÓN DEL PROBLEMA ............................................................................................... 4 V. OBJETIVOS ........................................................................................................................................ 5 5.1 5.2 OBJETIVO GENERAL ..................................................................................................................... 5 OBJETIVOS ESPECÍFICOS ............................................................................................................ 5 VI. ANTECEDENTES DE LA INVESTIGACIÓN ................................................................................ 6 VII. MARCO TEÓRICO ............................................................................................................................ 7 7.1 SEGURIDAD DE SOFTWARE ........................................................................................................ 7 7.1.1 SIGNIFICADO DEL TÉRMINO SEGURIDAD .................................................................... 7 7.2 ESTRUCTURA DE LOS ARCHIVOS PORTABLES EJECUTABLES “PE” ................................. 7 7.3 AMENAZAS EN LA SEGURIDAD DEL SOFTWARE .................................................................. 8 7.3.1. HACKERS ................................................................................................................................ 8 7.3.2. CRACKERS .............................................................................................................................. 8 7.4. AUTÓMATAS CELULARES (AC) ................................................................................................. 9 7.4.1. DEFINICIÓN ......................................................................................................................... 14 7.4.2. LOS AUTÓMATAS CELULARES DE WOLFRAM ............................................................ 15 7.5. CLASES Y OBJETOS ..................................................................................................................... 16 7.5.1 PROGRAMACIÓN ORIENTADA A OBJETOS ......................................................................... 16 VIII. IX. 9.1 9.2 9.3 9.4 9.5 9.6 X. HIPÓTESIS.................................................................................................................................... 17 MATERIALES Y MÉTODOS ......................................................................................................... 17 MATERIAL DE ESTUDIO............................................................................................................. 18 POBLACIÓN .................................................................................................................................. 18 MUESTRA ...................................................................................................................................... 18 DISEÑO ESTADÍSTICO ................................................................................................................ 19 SISTEMA DE VARIABLES ........................................................................................................... 20 VARIABLES DE ESTUDIO ........................................................................................................... 20 OPERACIONALIZACIÓN DE VARIABLES................................................................................ 20 DESARROLLO DEL SISTEMA .................................................................................................... 21 METODOLOGÍA DE DESARROLLO........................................................................................... 21 MODELO EN ESPIRAL ................................................................................................................. 21 ADMINISTRACIÓN DEL PROYECTO ........................................................................................ 22 10.1 CRONOGRAMA DE ACTIVIDADES ........................................................................................... 22 10.2 RECURSOS DEL PROYECTO ...................................................................................................... 24 10.2.1. HARDWARE Y SOFTWARE. ................................................................................................... 24 10.3 PRESUPUESTO.............................................................................................................................. 25 XI. BIBLIOGRAFÍA: .............................................................................................................................. 26 REFERENCIA EN INTERNET ........................................................................................................................... 26 28 U n iv er s id a d N a c io n a l d el Al t ipl a n o – P u n o Facultad de Ingeniería Estadística e Informática Carrera Profesional de Ingeniería Estadística e Informática “Sistem a de Seguridad de Software Aplicando Criptografía con Autóm atas Celulares” PROYECTO DE TESIS Presentado por: Henry Juárez Vargas Puno, C.U. Julio del 2,003