• No se han encontrado resultados

Herramienta para el analisis y gestion de riesgos de la seguridad informatica para BANDEC

N/A
N/A
Protected

Academic year: 2023

Share "Herramienta para el analisis y gestion de riesgos de la seguridad informatica para BANDEC"

Copied!
112
0
0

Texto completo

(1)

Universidad de las Ciencias Informáticas Facultad 5

Título:

Herramienta para el análisis y gestión de riesgos de la seguridad informática para BANDEC

Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas

Autores:

Dayani Corzo Diaz

Tutor:

Ing. Lázaro Reyes Mur Co-Tutor

Ing. Jesús Fuentes Suárez

Ciudad de La Habana, Cuba, Julio, 2007

(2)

Pensamiento

(3)

DECLARACIÓN DE AUTORÍA

Declaro que soy el único autor de este trabajo y autorizo al Banco de Crédito y Comercio (BANDEC) para que hagan el uso que estimen pertinente con este trabajo.

Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.

Ing. Lázaro Reyes Mur Ing. Jesús Fuentes Suárez

______________ ______________

Firma del Tutor Firma del Co-Tutor

Dayani Corzo Diaz

______________

Firma del autor

(4)

Agradecimientos

I

Agradecimientos

No resulta fácil ser breve a la hora de agradecerles a todas las personas que han estado a mi lado brindándome su ayuda y apoyo en todo momento durante estos 5 años de estudio.

Agradezco a mis padres a los que quiero y admiro. Mamá, papi gracias por su apoyo y sabios consejos; un millón de gracias por darme la oportunidad de estar aquí en estos momentos, por hacerme ver el lado positivo de las cosas por muy difícil que fuese el camino, gracias por animarme cada vez que pensaba que todo estaba perdido, por hacerme ver que con esfuerzo, mucha fe y dedicación todos salimos adelante, gracias por hacerme ver el lado positivo de los malos momentos que pase durante la carrera, por estar siempre a mi lado brindándome su cariño en los momentos felices y tristes, gracias por saberme mostrar el camino correcto, por su educación y por ser ejemplos de padres. Gracias por el perfume de amor y ternura que desprende que aunque yo no este cerca soy capaz de sentirlo. Ustedes son los mejores padres del mundo…los quiero con la vida.

A mi hermanito querido quiero agradecerle sus palabras de aliento, por estar siempre pendiente de mí y de mis estudios, por compartir conmigo innumerables momentos de alegrías, tristezas y travesuras, sus palabras “tatica tú puedes” son para mi un estimulante para seguir adelante cada día. Para ti mi hermano un beso y todo mi corazón.

A mi novio por su apoyo incondicional y paciencia, por ser un motivo más por el cual seguir adelante. Por sus críticas constructivas, su ayuda valiosa y sin límites. Por compartir conmigo su vida y muchos días de risas y llanto. Le agradezco porque mas que mi novio ha sido mi guía, mi confidente y mi amigo durante mis estudios.

A mis abuelos, que aunque no están presentes se que donde estén siempre están conmigo y se sentirán orgullosos de mi, mami, abuela, abuelo, pipo, Severo donde estén les quiero agradecer por ser ejemplos de personas, por ser mis guías, mi razón de ser y por ayudar a mis padres a formarme en la mujer que soy hoy.

Quiero agradecerle a toda mi familia por siempre estar pendiente de mí y de mis estudios, gracias por su apoyo y ayuda incondicional y por la confianza que depositaron en mí. A mis vecinos por su preocupación.

A mis amigos, a los que han estado a mi lado compartiendo días de estrés, alegrías y tristezas durante estos 5 años, a todos aquellos que han demostrado ser verdaderos amigos. A mis amigos que me ayudaron a salir afuera en el momento mas difícil de mi carrera “la prueba de nivel de programación” y a los amigos que siempre están pendientes a pesar de la distancia. A los profesores que me han brindado siempre su ayuda. A mis suegros por apoyarme siempre. A nuestro eterno Comandante en Jefe y a la Revolución, que me han dado la posibilidad de superarme profesionalmente.

Quiero agradecer al tutor, a Jesús y demás personas que de una forma u otra, por su colaboración y paciencia contribuyeron a la materialización de este sueño.

Gracias a todos!!!

(5)

Dedicatoria

II

Dedicatoria

A mi mamá y a mi papá por ser la luz de mis ojos, mi guía, mi razón de ser, por no cansarse de luchar, por brindarme todo el cariño y ayuda que siempre he necesitado.

A mi hermano querido por su ternura, comprensión y apoyo, junto a papi y mamá son mi más grande tesoro.

A Jesús por su ayuda, apoyo y por estar siempre a mi lado.

A mis seres queridos que ya no están a mi lado por formarme en la persona que soy hoy.

A mi familia por su confianza en mi y comprensión.

(6)

Resumen

III

Resumen

El presente

trabajo de diploma tiene como objetivo desarrollar una aplicación Web para el análisis y gestión de riesgos de la seguridad informática para el Banco de Crédito y Comercio (BANDEC). Para ello se ha propuesto llevar a cabo la informatización de los principales procesos que se realizan en esta actividad, acordes a las nuevas concepciones de la institución.

El Banco de Crédito y Comercio cuenta con una herramienta (ARSIBANDEC) que se utiliza para consolidar los análisis de riesgos, su primera versión fue realizada en la Oficina Central de BANDEC, dicha versión fue realizada en Visual Basic 6.0 y no ha sido modificada desde su confección por lo que no esta de acorde con la metodología actual. Posteriormente, con el cambio de la metodología producto del desarrollo de las TIC, la herramienta se convirtió en obsoleta.

Esta herramienta ya no se ajusta a la base legal vigente ni a los requerimientos tecnológicos actuales.

Requiere ser instalada en cada estación de trabajo, no cuenta con un mecanismo de auditoria, no presenta un sistema de seguridad efectivo, no puede ser implantado en otras plataformas, además no tiene mecanismos de transferencia de información, ni un formato digital estándar para devolverlos , no tiene una arquitectura definida ni segura.

Para realizar el sistema informático que posibilite el correcto análisis y gestión de riesgos de la seguridad informática en BANDEC se siguió una metodología basada en las nuevas técnicas de la informática. Como resultado se espera que el análisis y gestión de riesgos sea eficaz y eficiente, ganar en rapidez, además de lograr un flujo más rápido y seguro de información sensible, y un producto con facilidades para emigrar a otras plataformas

(7)

Palabras Claves

IV

Palabras Claves

Seguridad Informática.

Análisis de Riesgos.

Gestión de Riesgos.

Herramientas de Seguridad Informática.

Aplicaciones.

Software.

(8)

Índice

V

Índice

Agradecimientos ... I Dedicatoria ... II Resumen...III Palabras Claves ... IV

Introducción ...1

CAPITULO 1 ...4

1.1 Introducción al análisis y gestión de riesgos ...4

1.2 Definiciones: ...5

1.3 Sistemas de análisis y gestión de riesgos existentes a nivel mundial: ...9

1.4 Sistemas de análisis y gestión de riesgos existentes en nuestro país: ...13

1.5 La metodología para el análisis y gestión de riesgos persigue los siguientes objetivos: ...14

1.6 Tendencias y Tecnologías ...14

1.7 Metodologías y herramientas a utilizar ...25

CAPITULO 2 ...35

2.1 Objeto de estudio...35

2.2 Descripción general de la propuesta de sistema ...36

2.3 Modelo del negocio ...36

2.4 Especificación de los requisitos de software ...41

2.5 Definición de los casos de uso del sistema ...45

CAPITULO 3. ...52

3.1 Análisis y Diseño ...52

3.2 Diseño de la BD ...60

3.3 Mecanismos de Diseño...63

3.4 Estándares de diseño ...69

3.5 Estándares de codificación ...69

3.6 Estándares para la BD ...72

3.7 Estándares de Organización ...74

3.8 Tratamiento de errores ...75

3.9 Concepción de la ayuda...75

CAPITULO 4 ...76

4.1 Implementación ...76

4.2 Modelo de Despliegue...76

4.3 Diagrama de componentes ...77

4.4 Modelo de prueba ...79

CONCLUSIONES ...83

Recomendaciones...84

REFERENCIAS BIBLIOGRÁFICAS...85

Bibliografía ...86

Glosario de Términos...88

Anexos ...91

(9)

Índice

VI

Figura 1 Elementos de MAGERIT y sus interrelaciones... 11

Figura 2 Diagrama de Casos de Uso del Negocio... 38

Figura 3 Diagrama de actividades ... 40

Figura 4 Diagrama de Clases del Modelo de Objetos ... 41

Figura 5 Diagrama de Casos de Uso del Sistema ... 46

Figura 6 Paquete Caracterizar Entorno... 47

Figura 7 Paquete Gestionar Análisis de Riesgos... 48

Figura 8 Paquete Recuperar Gestión de Análisis de Riesgos... 50

Figura 9 Caracterizar Entorno Entidad ... 53

Figura 10 Gestionar Análisis Delegación Provincial ... 54

Figura 11 Diagrama Genérico de Clases del Diseño... 55

Figura 12 Diagrama de Clase del Diseño. Caracterizar Entorno Entidad ... 56

Figura 13 Diagrama de Clase del Diseño. Calcular_Riesgos... 57

Figura 14 Diagramas de Interacción. Caracterizar_Entorno ... 58

Figura 15 Diagramas de Interacción. Calcular_Riesgos... 59

Figura 16 Mecanismo de seguridad. ... 64

Figura 17 Diagrama de Despliegue... 77

Figura 18 Diagrama de Componentes General ... 78

(10)

Índice

VII

Tabla 1 Actores del negocio ... 37

Tabla 2 Trabajadores del negocio ... 37

Tabla 3 Descripción del caso de uso del negocio... 39

Tabla 4 Definición de los actores ... 45

Tabla 5 Caracterizar Entorno Entidad ... 47

Tabla 6 Caracterizar Entorno Delegación Provincial ... 47

Tabla 7 Caracterizar Entorno Oficina Central ... 48

Tabla 8 Gestionar Análisis Riesgos Entidad ... 49

Tabla 9 Gestionar Análisis Riesgos Delegación Provincial ... 49

Tabla 10 Gestionar Análisis Riesgos Oficina Central ... 49

Tabla 11 Recuperar Gestión de Análisis de Riesgos Entidad ... 50

Tabla 12 Recuperar Gestión de Análisis de Riesgos Entidad Especifica ... 51

Tabla 13 Recuperar Gestión de Análisis de Riesgos Delegación Provincial ... 51

Tabla 14 Recuperar Gestión de Análisis de Riesgos Delegación Provincial Especifica ... 51

Tabla 15 Recuperar Gestión de Análisis de Riesgos Oficina Central ... 51

Tabla 16 Activos... 60

Tabla 17 Amenazas ... 60

Tabla 18 Áreas ... 60

Tabla 19 Caracterización_Entorno_Informatico ... 61

Tabla 20 Entidad ... 61

Tabla 21 Medidas de Seguridad... 62

Tabla 22 Subtipo_Activos ... 62

Tabla 23 Riesgo ... 62

Tabla 24 Provincia ... 63

Tabla 25 Usuario... 63

Tabla 26 Estándares de codificación ... 72

Tabla 27 Estándares para la BD ... 74

Tabla 28 Caso de prueba verificar usuario y contraseña ... 79

Tabla 29 Caso de prueba verificar usuario y contraseña ... 79

Tabla 30 Caso de prueba entrar amenaza de un activo... 80

Tabla 31 Caso de prueba entrar amenaza de un activo... 80

Tabla 32 Caso de prueba cantidad de activos. ... 80

(11)

Índice

VIII

Tabla 33 Caso de prueba cantidad de activos ... 81

Tabla 34 Caso de prueba entrar datos del caracterizar entorno en la entidad ... 81

Tabla 35 Caso de prueba entrar datos del caracterizar entorno en la entidad ... 81

Tabla 36 Caso de prueba entrar fecha de calcular riesgo ... 82

Tabla 37 Caso de prueba entrar fecha de calcular riesgo. ... 82

Tabla 38 Caso de prueba entrar fecha de Ver Riesgo. ... 82

Tabla 39 Caso de prueba entrar fecha de Ver Riesgo ... 82

(12)

Introducción

1

Introducción

Herramienta para el análisis y gestión de riesgos de seguridad informática

La mayoría de los sistemas de seguridad informática en el país son de naturaleza reactiva, dada la importancia y las condiciones históricas en que vivimos resulta de vital importancia este tema dentro del contexto actual de desarrollo.

Lograr el paso a sistemas de seguridad de la información que sean proactivos es una tarea primordial para el desarrollo de los servicios y de la vida económica del país dada la importancia y presencia que ganan cada día los sistemas informáticos.

El análisis de riesgos es el primer paso en el establecimiento y diseño de un sistema de seguridad informática, este trabajo habitualmente se realiza en nuestro país en la mayoría de los casos por personal no calificado o con escasos conocimientos, de forma manual y con superficialidad, teniendo como consecuencias que muchos sistemas de seguridad informática se diseñen con vulnerabilidades que posteriormente redunden en costos adicionales o se mantengan ocurriendo incidentes que tienen un costo grande por falta de previsión, conocimiento y el no contar con herramientas adecuadas que traten este importante asunto del que hay pobres antecedentes en el país. Un ejemplo de lo antes expuesto lo constituye El Banco de Crédito y Comercio (BANDEC).

En la presente investigación surge la necesidad de dar solución a las diferentes situaciones antes expuestas por lo que el problema de investigación a resolver es ¿Cómo facilitar el análisis y gestión de riesgos de la seguridad informática en el Banco de Crédito y Comercio (BANDEC)?

Como objeto de estudio se presenta el análisis y gestión de riesgos de seguridad informática para las diferentes instituciones de nuestro país y como campo de acción se define el proceso de análisis y gestión de riesgos de seguridad informática para BANDEC.

Para resolver la problemática existente la idea a defender es: si se desarrolla una aplicación Web, para el análisis y gestión de riesgos, mejorará consecuentemente la calidad del trabajo referente a la seguridad informática de BANDEC y se contará con un sistema acorde a las nuevas concepciones de las tecnologías de la información.

Por lo tanto el objetivo general de este trabajo será desarrollar una aplicación Web para el análisis y gestión de riesgos de seguridad informática para BANDEC.

(13)

Introducción

2

De acuerdo con esta propuesta se derivan los siguientes objetivos específicos:

Realizar un estudio detallado de los temas a tratar, como lo son: riesgos, seguridad, análisis y gestión de riesgos.

Estudiar cómo se realiza el análisis y gestión de riesgos de seguridad informática en BANDEC.

Estudiar cómo se realiza el análisis y gestión de riesgos de seguridad informática en otras instituciones estatales.

Diseñar una aplicación Web que sea compatible con la infraestructura tecnológica existente en BANDEC.

Implementar una Aplicación Web para realizar la consolidación del análisis y gestión de riesgos de seguridad informática.

Para cumplir con estos objetivos se proponen las siguientes tareas investigativas:

Estudio del proceso de consolidación de la metodología establecida por el MININT y las normas internacionales para la gestión y análisis de riesgos de seguridad informática.

Selección de la metodología de Análisis y Diseño de sistemas informáticos, que facilite y garantice la creación con calidad del sistema.

Selección de la herramienta para llevar a cabo el proyecto y la elección de la plataforma en la que se desarrollará la aplicación. Fundamentando su elección.

Implantación de un sistema informático que asegure una solución adecuada para el diseño y mantenimiento de los sistemas de seguridad informática en el país.

Implementar la aplicación.

Los métodos teóricos aplicados en la investigación son el método histórico-lógico puesto que se realizó un estudio de las tecnologías que existen actualmente, para poder realizar la selección de las que se va a utilizar de acuerdo a las características propias del sistema a desarrollar; el método de análisis y síntesis, pues se realiza un análisis de la bibliografía que se utilizó para el estudio del tema;

el método de modelación, ya que se modelan los diagramas que representan la aplicación.

(14)

Introducción

3

Como métodos empíricos se utilizan las entrevistas, las que fueron de gran utilidad para tener un mayor conocimiento sobre la situación problémica existente; también se utilizó el método de análisis de documentos, debido a que se emplearon diferentes materiales para una mayor profundiz ación en el tema.

Se ofrece un catálogo, abierto a ampliaciones, que marca pautas en cuanto a: tipos de activos, dimensiones de valoración de los activos, criterios de valoración de los activos, amenazas típicas sobre los sistemas de información y salvaguardas a considerar para proteger sistemas de información y proporcionará una amplia base de partida para avanzar rápidamente.

Aporta luz adicional y guías sobre algunas técnicas que se emplean habitualmente para llevar a cabo proyectos de análisis y gestión de riesgos: técnicas específicas para el análisis de riesgos, análisis mediante tablas, técnicas generales, análisis coste-beneficio, diagramas de flujo de datos, diagramas de procesos, técnicas gráficas, planificación de proyectos, y valoración.

El presente trabajo consiste en una aplicación que utilizando las metodologías nacionales e internacionales establecidas, sugiera que se realice un tratamiento adecuado de los riesgos a partir de un trabajo de análisis, evaluación y generalización de los mismos integrando nuevas concepciones en el tema y constituya un nuevo producto que es de gran demanda tanto nacional como internacionalmente.

(15)

Capítulo I

4

CAPITULO 1

1.1 Introducción al análisis y gestión de riesgos

A pesar del incipiente desarrollo que aún tiene nuestro país en el empleo a gran escala de las tecnologías de la información, la realidad nos indica que se presentan en nuestro caso las mismas amenazas y características que se refieren en toda la literatura sobre el tema en países con mucha mayor experiencia, tanto en los objetivos e impacto de los ataques a redes, como en las causas y motivaciones de los presuntos atacantes.

Estas amenazas, desde el punto de vista de seguridad nacional, se pudieran definir como lo hacen el resto de los países del mundo aunque en el caso cubano se potencian por nuestra condición de país agredido por poderosos e inescrupulosos enemigos. Importantes amenazas se concentran en actos de espionaje político, militar y económico; el vandalismo, la destrucción de datos, juegos prohibidos, control de las redes de forma remota y otros.

La naturaleza propia de las redes de datos, en especial la extensión de su radio de acción, implica que el impacto de un problema de seguridad, ya sea accidental o intencional, rebase por lo general, los limites de una entidad u organización en particular, pudiendo alcanzar una repercusión que comprometa a toda la sociedad.

En Cuba, a pesar de que aún no se ha logrado alcanzar tales niveles de dependencia de la tecnología informática, diferentes eventos de seguridad reportados en las redes de las organizaciones estatales, de los que hemos tenido conocimiento, recomiendan de manera urgente estudiar las vulnerabilidades de nuestros sistemas informáticos, todos los cuales sin excepción están expuestos a las más variadas y comprometidas amenazas.

Consecuentemente con el resultado del estudio de la vulnerabilidad es preciso emprender los esfuerzos necesarios para en una primera etapa de forma expedita corregir las debilidades que se detecten en los sectores claves, a la par que se proyecte una organización de alcance estratégico que involucre todas las instituciones gubernamentales, docentes, científicas, productivas, militares y de seguridad.

(16)

Capítulo I

5

En el presente capítulo se brindan aspectos relacionados con la seguridad inform ática, se hace una descripción de los conceptos que son necesarios para el mejor entendimiento del problema.

Para analizar la seguridad de un sistema se debe pensar en la forma en que el mismo pudiera sufrir determinada pérdida o daño, para lo cual es necesario identificar las debilidades del sistema.

Conocer el riesgo al que están sometidos los elementos de trabajo es, simplemente, imprescindible para poder gestionarlos y por ello han aparecido multitud de guías informales, aproximaciones metódicas y herramientas de soporte las cuales buscan objetivar el análisis para saber cuán seguros (o inseguros) están y no llamarse al engaño. El gran reto de todas estas aproximaciones es la complejidad del problema al que se enfrentan; complejidad en el sentido de que hay muchos elementos que considerar y que, si no se es riguroso, las conclusiones serán de poco fiar. Es por ello que esta aplicación persigue una aproximación metódica que no deje lugar a la improvisación, ni dependa de la arbitrariedad y preparación del analista.

1.2 Definiciones:

1.2.1 Una vulnerabilidad es una debilidad en el sistema de seguridad, por ejemplo, en procedimientos, diseños e implementaciones que pueden ser explotados para causar algún daño.

1.2.1.1 Objetivos del estudio de vulnerabilidades

Determinar los sistemas críticos para la gestión de cada Organismo, en particular los soportados en redes de datos, las amenazas que actúan sobre ellos, los niveles de riesgo y el posible impacto.

Determinar el grado de dependencia actual y perspectivo con relación a estos sistemas.

Establecer las políticas que se requieran para minimizar los riesgos sobre los bienes informáticos críticos e implementar las acciones y mecanismos que se necesiten para su prevención, detección y recuperación.

Determinar los parámetros que permitan establecer niveles mínimos de disponibilidad permisibles.

Establecer un sistema que garantice la continuidad de este estudio sobre la base de los cambios que surjan y los incidentes que se produzcan.

(17)

Capítulo I

6

1.2.2 Amenaza: Situación o acontecimiento que pueda causar daños a los bienes informáticos.

1.2.3 Activo: Datos, infraestructura, hardware, software, personal y su experiencia, información, servicios. Daños producidos por la materialización de una amenaza.

1.2.4 Riesgo: Probabilidad de que se produzca un daño.

1.2.5 Sistemas críticos: Aquellos cuya afectación puede paralizar o afectar severamente la gestión de una organización.

1.2.6 Seguridad informática: Es la capacidad de las redes o de los sistemas de información para resistir, con un determinado nivel de confianza, los accidentes o acciones ilícitas o malintencionadas que comprometan la disponibilidad, autenticidad, integridad y confidencialidad de los datos almacenados o transmitidos y de los servicios que dichas redes y sistemas ofrecen o hacen accesibles.

Determina que necesita ser protegido y por qué, de qué debe protegerse y cómo protegerlo mientras exista. El objetivo a proteger es la misión de la Organización, teniendo en cuenta las diferentes dimensiones de la seguridad:

Disponibilidad: Disposición de los servicios a ser usados cuando sea necesario. La carencia de disponibilidad supone una interrupción del servicio. La disponibilidad afecta directamente a la productividad de las organizaciones.

Integridad: Mantenimiento de las características de completitud y corrección de los datos. Contra la integridad, la información puede aparecer manipulada, corrupta o incompleta.

Confidencialidad: Que la información llegue solamente a las personas autorizadas. Contra la confidencialidad o secreto pueden darse fugas y filtraciones de información, así como accesos no autorizados.

La confidencialidad es una propiedad de difícil recuperación, pudiendo minar la confianza de los demás en la organización que no es diligente en el mantenimiento del secreto, y pudiendo suponer el incumplimiento de leyes y compromisos contractuales relativos a la custodia de los datos.

(18)

Capítulo I

7

Autenticidad: Que no haya duda de quién se hace responsable de una información o prestación de un servicio, tanto a fin de confiar en él como de poder perseguir posteriormente los incumplimientos, errores. Contra la autenticidad se dan suplantaciones y engaños que buscan realizar un fraude.

1.2.7 Concepto de Riesgo: Estimación del grado de exposición a que una amenaza se materialice sobre uno o más activos causando daños o perjuicios a la Organización. El riesgo indica lo que le podría pasar a los activos si no se protegieran adecuadamente.

1.2.8 Análisis de riesgo: Uso sistemático de la información para identificar fuentes y estimar riesgos.

Proceso mediante el cual se identifican las amenazas y las vulnerabilidades en una organización, se valora su impacto y la probabilidad de que ocurran. [ISO/IEC 17799]

Es un proceso para asegurar que los controles de seguridad de un sistema se adapten según la proporción de sus riesgos. (http://www.pcorp.u-net.com/riskben.htm)

El análisis de riesgo es un proceso cíclico y continuo que involucra al área de tecnologías de la información y a la administración.

1.2.2.1 Objetivo del análisis de riesgo

Tener la capacidad de:

Identificar, evaluar y manejar los riesgos de seguridad.

Estimar la exposición de un recurso a una amenaza determinada.

Determinar cual combinación de medidas de seguridad proporcionará un nivel de seguridad razonable a un costo aceptable.

Tomar mejores decisiones en seguridad informática.

Enfocar recursos y esfuerzos en la protección de los activos.

(19)

Capítulo I

8

1.2.9 Gestión de riesgos: Selección e implantación de Barreras de seguridad para conocer, prevenir, impedir, reducir o controlar los riesgos identificados.

Nótese que una opción legítima es aceptar el riesgo. Es frecuente oír que la seguridad absoluta no existe; en efecto, siempre hay que aceptar un riesgo que, eso sí, debe ser conocido y sometido al umbral de calidad que se requiere del servicio.

Como todo esto es muy delicado, no es meramente técnico, e incluye la decisión de aceptar un cierto nivel de riesgo, deviene imprescindible saber en qué condiciones se trabaja y así poder ajustar la confianza que merece el sistema. Para ello qué mejor que una aproximación metódica que permita tomar decisiones con fundamento y explicar racionalmente las decisiones tomadas.

1.2.2.2 El análisis y gestión de riesgos

Las tareas de análisis y gestión de riesgos no son un fin en sí mismas sino que se encajan en la actividad continua de gestión de la seguridad.

El análisis de riesgos permite determinar cómo es, cuánto vale y cómo se encuentran los activos protegidos. En coordinación con los objetivos, estrategias y políticas de la Organización, las actividades de gestión de riesgos permiten elaborar un plan de seguridad que, implantado y operado, satisfaga los objetivos propuestos con el nivel de riesgo que se acepta la Dirección.

La implantación de los controles de seguridad requiere una organización gestionada y la participación informada de todo el personal que trabaja con el sistema de información. Es este personal el responsable de la operación diaria, de la reacción ante incidencias y de la monitorización en general del sistema para determinar si satisface con eficacia y eficiencia los objetivos propuestos.

Este esquema de trabajo debe ser repetitivo pues los sistemas de información rara vez son inmutables; más bien se encuentran sometidos a evolución continua tanto propia (nuevos activos) como del entorno (nuevas amenazas), lo que exige una revisión periódica en la que se aprende de la experiencia y se adapta al nuevo contexto.

(20)

Capítulo I

9

El análisis de riesgos proporciona un modelo del sistema en términos de activos, amenazas y salvaguardas, y es la piedra angular para controlar todas las actividades con fundamento. La gestión de riesgos es la estructuración de las acciones de seguridad para satisfacer las necesidades detectadas por el análisis.

1.3 Sistemas de análisis y gestión de riesgos existentes a nivel mundial:

1.3.1 MAGERIT:

El Consejo Superior de Informática en España ha elaborado la Metodología de Análisis y Gestión de Riesgos de los sistemas de información, MAGERIT. La razón de ser de MAGERIT está directamente relacionada con la generalización del uso de los medios electrónicos, informáticos y telemáticos, que supone unos beneficios evidentes, pero que también dan lugar a ciertos riesgos que deben minimizarse con medidas que garanticen la seguridad y generen confianza en la utilización de estos medios.

El ciclo de gestión de la seguridad siempre establece como primera etapa el análisis y la gestión de los riesgos del sistema que tratamos de proteger. Para una correcta definición e implantación de la seguridad, es necesario identificar y determinar los diferentes elementos significativos dentro del entorno de la seguridad de los sistemas de información. Metodología hecha en España con carácter gubernamental.

Elementos de MAGERIT

A continuación definimos brevemente los elementos considerados significativos por MAGERIT para el estudio de la Seguridad en Sistemas de Información.

Activos: recursos del sistema de información o relacionados con éste, necesarios para que la organización funcione correctamente y alcance los objetivos propuestos por la dirección.

El activo esencial es la información que maneja el sistema; o sea los datos. Y alrededor de estos datos se pueden identificar otros activos relevantes:

Los servicios que se pueden prestar gracias a aquellos datos, y los servicios que se necesitan para poder gestionar dichos datos.

Las aplicaciones informáticas (software) que permiten manejar los datos.

(21)

Capítulo I

10

Los equipos informáticos (hardware) y que permiten hospedar datos, aplicaciones y servicios.

Los soportes de información que son dispositivos de almacenamiento de datos.

El equipamiento auxiliar que complementa el material informático.

Las redes de comunicaciones que permiten intercambiar datos.

Las instalaciones que acogen equipos informáticos y de comunicaciones.

Las personas que explotan u operan todos los elementos anteriormente citados.

Amenazas: eventos que pueden desencadenar un incidente en la organización, produciendo daños materiales o pérdidas inmateriales en sus activos.

Vulnerabilidad de un activo: potencialidad o posibilidad de ocurrencia de la materialización de una amenaza sobre dicho activo.

Impacto en un activo: consecuencia sobre éste de la materialización de una amenaza.

Riesgo: posibilidad de que se produzca un impacto determinado en un activo, en un dominio o en toda la organización

Servicio de salvaguarda: acción que reduce el riesgo.

Mecanismo de salvaguarda: procedimiento, dispositivo, físico o lógico, que reduce el riesgo.

(22)

Capítulo I

11

La siguiente figura muestra los elementos y sus interrelaciones:

Figura 1 Elementos de MAGERIT y sus interrelaciones

(23)

Capítulo I

12

En el proceso de análisis y gestión de riesgos de la seguridad en los sistemas de información podemos identificar las siguientes etapas:

Planificación

En esta fase, se establece el objetivo del proyecto, el dominio de estudio y las restricciones generales. Deben también definirse las métricas con las que se valorarán los diferentes elementos de seguridad, de manera que los resultados finales de medición del riesgo sean definidos en función de los parámetros adecuados para cuantificar el riesgo por la organización (por ejemplo, definir la escala de frecuencias para medir la vulnerabilidad, definir las cantidades monetarias por las que cuantificar el impacto, etc).

Análisis de riesgos

Una vez definido el dominio, los analistas de riesgos procederán a realizar las entrevistas al personal de la organización para la obtención de información. En esta fase se identificarán los activos de la organización, identificando las relaciones que se establecen entre activos. De esta forma se obtiene el "árbol de activos" que representan las distintas dependencias y relaciones entre activos, es decir, todos aquellos elementos que están "encadenados entre sí" en términos de seguridad.

También se identifican el conjunto de amenazas, estableciendo para cada activo, cual es la vulnerabilidad que presenta frente a dicha amenaza. Además, se cuantifica el impacto, para el caso en el que la amenaza se materializase.

Dado que los activos se encuentran jerarquizados y se encuentran establecidas las relaciones de dependencia entre los activos de las diferentes categorías, hemos conseguido de forma explicita documentar la "cadena de fallo" en caso de un incidente de seguridad.

La experiencia y la sucesiva revisión de la información generada en estudios de riesgos anteriores permitirán ajustar de forma más exacta las diferentes dependencias entre activos. Con toda esta información, tendremos una estimación del costo que podría producir la materialización de una amenaza sobre un activo. Teniendo en cuenta las relaciones funcionales y de dependencias entre activos, se hallan los valores de riesgo.

(24)

Capítulo I

13

Gestión de riesgos

En esta fase, se procede a la interpretación del riesgo. Una vez identificado los puntos débiles, deben seleccionarse el conjunto de funciones de salvaguarda que podrían ser usados para disminuir los niveles de riesgo a los valores deseados. Para ello, deberán especificarse los mecanismos de salvaguarda que se encuentran implantados hasta ese momento y cual es su grado de cumplimiento.

Este proceso se ayuda de la simulación. Se van probando selecciones de diferentes mecanismos de salvaguarda y se estudia en que medida reducen los niveles de riesgo a los márgenes deseados. Es muy importante realizar las correctas estimaciones de la efectividad de los diferentes mecanismos de salvaguarda para ajustar de forma precisa los valores de riesgo.

Selección de mecanismos de salvaguarda

Una vez obtenidos estos resultados, se establece de nuevo reuniones con el equipo responsable del proyecto de la organización en estudio. De esta forma, se analizan los resultados obtenidos y se establece un plan de implantación de mecanismos.

1.4 Sistemas de análisis y gestión de riesgos existentes en nuestro país:

1.4.1 ARSIBANDEC

En BANDEC existe un Herramienta (ARSIBANDEC) que su primera versión fue realizada en la oficina central, que se utiliza para consolidar los análisis de riesgos, dicha herramienta no esta acorde con la metodología actual. Fue realizada en VisualBasic 6.0. Esta versión no ha sido modificada desde su confección.

Posteriormente, con el cambio de la metodología producto del desarrollo de las TIC, la herramienta se convirtió en obsoleta. Esta herramienta ya no se ajusta a la base legal vigente ni a los requerimientos tecnológicos actuales. Requiere ser instalada en cada estación de trabajo, no cuenta con un mecanismo de auditoria, no presenta un sistema de seguridad efectivo, no puede ser implantado en otras plataformas, además no tiene mecanismo de transferencia de información, ni un formato digital estándar para devolverlos , no tiene una arquitectura definida ni segura.

(25)

Capítulo I

14

1.5 La metodología para el análisis y gestión de riesgos persigue los siguientes objetivos:

Concienciar a los responsables de los sistemas de información de la existencia de riesgos y de la necesidad de atajarlos a tiempo

Ofrecer un método sistemático para analizar tales riesgos

Ayudar a descubrir y planificar las medidas oportunas para mantener los riesgos bajo control Apoyar la preparación a la Organización para procesos de evaluación, auditoria, certificación o

acreditación, según corresponda en cada caso.

1.6 Tendencias y Tecnologías

1.6.1 Aplicaciones Web.

Una aplicación Web es aquella que los usuarios usan accediendo a un servidor Web a través de Internet o de una Intranet. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero. La habilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Tiene aplicaciones como los webmails, wikis, weblogs, tiendas en línea, Wikipedia, entre otros servicios son ejemplos bien conocidos de aplicaciones Web.

Las aplicaciones Web generan dinámicamente una serie de páginas en un formato estándar, soportado por navegadores Web comunes como HTML o XHTML. Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario.

1.6.2 Servidor Web Apache

El servidor Web Apache es uno de los mayores triunfos del software libre. Entre sus características fundamentales podemos destacar:

• Es flexible, rápido y eficiente.

• Continuamente actualizado y evoluciona a mayor velocidad.

• Multiplataforma.

• Se desarrolla de forma abierta.

(26)

Capítulo I

15

• Modular: Puede ser adaptado a diferentes entornos y necesidades, con los diferentes módulos de apoyo que proporciona, y con la API de programación de módulos, para el desarrollo de módulos específicos.

• Incentiva la realimentación de los usuarios, obteniendo nuevas ideas, informes de fallos y parches para la solución de los mismos.

• Extensible: gracias a ser modular se han desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de programación del lado del servidor.

1.6.3 Lenguajes de programación para la Web.

La interacción y personalización de la información con el usuario se logra por medio de algunos de los diferentes lenguajes de programación para Web que existen hoy en día. Dichos lenguajes se clasifican en dos partes fundamentales, en dependencia de dónde se implementan, siguiendo la arquitectura Cliente/Servidor: los lenguajes del lado del Cliente y los lenguajes del lado del Servidor. En el primer grupo entre los más usados se encuentran: JavaScript, Visual Basic Script, Java. En el segundo grupo se destacan: PERL, ASP, JSP, PHP.

Arquitectura Cliente / Servidor

"Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de trabajo. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otros computadores llamados servidores".

"Es un modelo para construir sistemas de información, que se sustenta en la idea de repartir el tratamiento de la información y los datos por todo el sistema informático, permitiendo mejorar el rendimiento del sistema global de información". (1)

Algunas Ventajas

• Aumento de la productividad: Los usuarios pueden utilizar herramientas que le son familiares, como hojas de cálculo y herramientas de acceso a bases de datos. Mediante la integración de las aplicaciones cliente/servidor con las aplicaciones personales de uso habitual, los usuarios pueden

(27)

Capítulo I

16

construir soluciones particularizadas que se ajusten a sus necesidades cambiantes. Una interfaz gráfica de usuario consistente reduce el tiempo de aprendizaje de las aplicaciones.

• Menores costes de operación: Permiten un mejor aprovechamiento de los sistemas existentes, protegiendo la inversión. Por ejemplo, el compartir los servidores (habitualmente caros) y dispositivos periféricos (como impresoras) entre máquinas clientes permite un mejor rendimiento del conjunto. Proporcionan un mejor acceso a los datos. La interfaz de usuario ofrece una forma homogénea de ver el sistema, independientemente de los cambios o actualizaciones que se produzcan en él y de la ubicación de la información. El movimiento de funciones desde un ordenador central hacia servidores o clientes locales origina el desplazamiento de los costes de ese proceso hacia máquinas más pequeñas y por tanto, más baratas.

• Mejora en el rendimiento de la red: Las arquitecturas cliente/servidor eliminan la necesidad de mover grandes bloques de información por la red hacia los ordenadores personales o estaciones de trabajo para su proceso. Los servidores controlan los datos, procesan peticiones y después transfieren sólo los datos requeridos a la máquina cliente. Entonces, la máquina cliente presenta los datos al usuario mediante interfaces amigables. Todo esto reduce el tráfico de la red, lo que facilita que pueda soportar un mayor número de usuarios. Tanto el cliente como el servidor pueden escalarse para ajustarse a las necesidades de las aplicaciones.

• La existencia de varias UCPs (Unidad de Control de Procesos) proporciona una red más fiable:

un fallo en uno de los equipos no significa necesariamente que el sistema deje de funcionar. En una arquitectura como ésta, los clientes y los servidores son independientes los unos de los otros con lo que pueden renovarse para aumentar sus funciones y capacidad de forma independiente, sin afectar al resto del sistema. La arquitectura modular de los sistemas cliente/servidor permite el uso de ordenadores especializados (servidores de base de datos, servidores de ficheros, etc.).

Permite centralizar el control de sistemas que estaban descentralizados, como por ejemplo la gestión de los ordenadores personales que antes estuvieran aislados.

(28)

Capítulo I

17

Del lado del cliente:

Del lado del cliente tenemos los lenguajes: Javascript y HTML, XHTML y la tecnología Ajax que son los encargados de aportar dinamismo a la aplicación en los navegadores.

1.6.3.1 JavaScript

Es un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado actualmente.

Es un lenguaje de programación bastante sencillo que permite hacer las cosas con rapidez , a veces con ligereza. Es un lenguaje fácil de aprender para aquellas personas que no tengan una experiencia previa en la programación y así poder utilizarlo en toda su potencia con sólo un poco de práctica.

Con JavaScript se puede crear efectos especiales en las páginas y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones JavaScript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador.

Permite la programación de pequeños scripts, pero también de programas más grandes, orientados a objetos, con funciones y estructuras de datos complejas. Además, JavaScript pone a disposición del programador todos los elementos que forman la página Web, para que éste pueda acceder a ellos y modificarlos dinámicamente.

La característica principal de JavaScript, de hecho, es la de ser un lenguaje de scripting, pero sobre todo, la de ser el lenguaje de scripting por excelencia y, sin lugar a dudas, el más usado.

Esta particularidad conlleva una notable serie de ventajas según el uso que se le deba dar y teniendo en cuenta la relación que se establece entre el mecanismo cliente-servidor.

 El lenguaje de scripting es seguro y fiable porque está en claro y hay que interpretarlo, por lo que puede ser filtrado; para el mismo JavaScript, la seguridad es casi total.

(29)

Capítulo I

18

 Los script tienen capacidades limitadas, por razones de seguridad, por lo cual no es posible hacer todo con JavaScript, sino que es necesario usarlo conjuntamente con otros lenguajes evolucionados.

 El código JavaScript se ejecuta en el cliente por lo que el servidor no es solicitado más de lo debido.

1.6.3.2 HTML (HyperText Markup Language)

El HTML, acrónimo inglés de HyperText Markup Language (lenguaje de marcas hipertextuales), es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas Web. Este lenguaje se ha convertido en uno de los formatos más populares que existen para la construcción de documentos y también de los más fáciles de aprender.

Ventajas del lenguaje HTML:

 Puede ser creado y editado con cualquier editor de textos básico, como Gedit, el Bloc de Notas de Windows (o Notepad), o cualquier otro editor que admita texto sin formato como GNU Emacs, Microsoft Wordpad, TextPad, Vim, etc.

 Existen además, otros programas para la realización de sitios Web o edición de código HTML, como por ejemplo Microsoft FrontPage, el cual tiene un formato básico parecido al resto de los programas de Office. También existe el Dreamweaver, siendo uno de los más utilizados en el ámbito de diseño y programación Web.

1.6.3.3 XHTML(Extensible Hipertext Markup Language)

Acrónimo inglés de Extensible Hipertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas Web. XHTML es la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas de XML.

Las principales ventajas del XHTML sobre otros formatos son:

 Facilidad de edición directa del código y de mantenimiento.

(30)

Capítulo I

19

 Un mismo documento puede adoptar diseños radicalmente distintos en diferentes dis positivos, pudiendo incluso escogerse entre varios diseños para un mismo medio.

 Compatibilidad parcial con navegadores antiguos: la información se visualiza, aunque sin formato. Cabe apuntar que el XHTML 1.0 fue diseñado expresamente para ser mostrado en navegadores que soportan HTML de base.

 Los documentos escritos conforme a XHTML 1.0 pueden potencialmente presentar mejor rendimiento en las actuales herramientas Web que aquellos escritos conforme a HTML.

1.6.3.4 XML

XML es un Lenguaje de Etiquetado Extensible muy simple, pero estricto que juega un papel fundamental en el intercambio de una gran variedad de datos. Es un lenguaje muy similar a HTML pero su función principal es describir datos y no mostrarlos como es el caso de HTML.

Es un formato que permite la lectura de datos a través de diferentes aplicaciones. Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles a las demandas más frecuentes por parte de los usuarios. XML sirve para estructurar, almacenar e intercambiar información.

Entre las tecnologías XML disponibles se pueden destacar:

XSL: Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen y cómo debería ser paginado en un medio de presentación como puede ser una ventana de un navegador Web o un dispositivo de mano, o un conjunto de páginas de un catálogo, informe o libro.

XPath: Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento XML.

XLink: Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en documentos XML para crear enlaces entre recursos XML.

XPointer: Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido.

XQL: Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde documentos.

(31)

Capítulo I

20

1.6.3.5 AJAX

AJAX parece ser la palabra de moda en el mundo del desarrollo de aplicaciones Web, no es una tecnología, sino la unión de varias tecnologías que unidas pueden lograr cosas realmente impresionantes. AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript y XML asíncronos, donde XML es un acrónimo de Extensible Markup Language), es una técnica de desarrollo web para crear aplicaciones interactivas. Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre la misma página sin necesidad de recargarla. Esto significa aumentar la interactividad, velocidad y usabilidad en la misma.

El concepto de AJAX es: Cargar y renderizar una página, luego mantenerse en esa página mientras scripts y rutinas van al servidor buscando, en background, los datos que son usados para actualizar la página solo re-renderizando la página y mostrando u ocultando porciones de la misma.

En vez de cargar un pagina Web, al inicio de la sesión, el navegador carga al motor AJAX (escrito en JavaScript y usualmente “sacado” en un frame oculto). Este motor es el responsable, por renderizar la interfaz que el usuario ve y por comunicarse con el servidor en nombre del usuario. El motor AJAX permite que la interacción del usuario con la aplicación suceda sincrónicamente (independientemente de la comunicación con el servidor). Así el usuario nunca estará mirando una ventana en blanco del navegador y un icono de reloj de arena esperando a que el servidor haga algo.

AJAX incorpora:

 Presentación basada en estándares usando XHTML y CSS.

 Exhibición e interacción dinámicas usando el Document Object Model.

 Intercambio y manipulación de datos usando XML y XSLT.

 Recuperación de datos asincrónica usando XMLHttpRequest.

 Y JavaScript poniendo todo junto.

(32)

Capítulo I

21

AJAX es una combinación de tres tecnologías ya existentes:

 XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que acompaña a la información.

 Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinámicamente con la información presentada.

 El objeto XMLHttpRequest para intercambiar datos asincrónicamente con el servidor Web. En algunos frameworks y en algunas situaciones concretas, se usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos intercambios.

 XML es el formato usado comúnmente para la transferencia de vuelta al servidor, aunque cualquier formato puede funcionar, incluyendo HTML pre-formateado, texto plano.

 AJAX no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente.

Del lado del servidor:

Los lenguajes del lado del servidor permiten desarrollar lógica del negocio dentro del servidor, y posibilitan el acceso a la base de datos y el procesamiento de la información. Como lenguaje candidato para la programación de los procesos a informatizar se ha elegido el PHP.

1.6.3.6 PHP o Hypertext Pre-processor (Pre-procesador del hipertexto).

Originalmente conocido como Personal Home Page Tools (herramientas para páginas principales). Es un lenguaje interpretado de alto nivel y embebido en páginas HTML y ejecutado en el servidor. Fue creado en 1994 por Rasmus Lerdorf, pero como PHP está desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores.

Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. Resulta muy útil para diseñar de forma rápida y eficaz aplicaciones Web dirigidas a bases de datos. Su interpretación y ejecución se da en el servidor, en el cual se encuentra almacenado el script, y el cliente sólo recibe el resultado de la ejecución.

(33)

Capítulo I

22

La meta del lenguaje es permitir rápidamente a los desarrolladores la generación dinámica de páginas.

Con PHP se puede hacer cualquier cosa que podemos realizar con un script CGI, como el procesamiento de información en formularios, foros de discusión, manipulación de cookies y páginas dinámicas. También ofrece la integración con varias bibliotecas externas, que permiten que el desarrollador haga casi cualquier cosa, desde generar documentos en pdf, hasta analizar código XML.

PHP ofrece una solución simple y universal para las paginaciones dinámicas del Web de fácil programación. Su diseño elegante lo hace perceptiblemente más fácil de mantener y ponerse al día en comparación con el código de otros lenguajes. Debido a su amplia distribución PHP está perfectamente soportado por una gran comunidad de desarrolladores.

Como producto de código abierto, PHP goza de la ayuda de un gran grupo de programadores, permitiendo que los fallos de funcionamiento se encuentren y se reparen rápidamente. El código se pone al día continuamente con mejoras y extensiones de lenguaje para ampliar las capacidades de PHP. (2)

El PHP corre en 7 plataformas, funciona en 11 tipos de servidores, ofrece soporte sobre unas 20 Bases de Datos y contiene unas 40 extensiones estables.

Las principales ventajas de PHP son:

 Crear páginas Web dinámicas

 Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (GIMP Tool Kit).

 Es muy rápido. Su integración con la base de datos MySQL y el servidor Apache, le permite constituirse como una de las alternativas más atractivas del mercado.

 PHP tiene una de las comunidades más grandes en Internet, por lo que no es nada complicado encontrar ayuda, documentación, artículos, noticias, y más recursos.

 Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

(34)

Capítulo I

23

 También tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de Web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.

 Es posible utilizar PHP para generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre otras cosas.

 El fácil uso y la similitud con otros lenguajes de programación permiten a la mayoría de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave.

 Permite leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML.

¿Por qué PHP y no otro lenguaje?

 Es uno de los lenguajes más extendidos en la WEB

 Es un lenguaje multiplataforma.

 Fácil de aprender.

 PHP ofrece un sinfín de funciones para la explotación de bases de datos de una manera llana, sin complicaciones.

 Soporta gran cantidad de bases de datos, por ejemplo: PostgreSQL, My SQL.

 Lee y manipula datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML.

 Es libre, por lo que se presenta como una alternativa de fácil acceso para todos

 Permite las técnicas de programación orientada a objetos.

 Buena combinación con otras herramientas, como el servidor apache y la base de datos mysql (o msql, o postgres), todas gratuitas.

 Las tareas fundamentales que puede realizar directamente el lenguaje son definidas en el mismo lenguaje como funciones.

(35)

Capítulo I

24

 Trabaja en combinación con otras tecnologías: perl, javascript, dhmtl.

 Gran seguridad, muy poca probabilidad de dañar los datos.

 Puede ser instalado en servidores Windows (Con emuladores (apache+php+(MySql/PostGres)

 Rapidez de ejecución

 Ofrece la integración con varias bibliotecas externas, que permiten que el desarrollador haga varias cosas, (acceso a bases de datos, creación de pdf, analizar código XML, encriptación)

 Además PHP forma parte de los requerimientos de software de este trabajo.

Desventajas de PHP

 Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que aumente el número de solicitudes.

 La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.

 La orientación a objetos es aún muy deficiente para aplicaciones grandes.

A pesar de las desventajas que presenta el lenguaje, fue el escogido para desarrollar el sistema, debido a las importantes ventajas que posee.

1.6.4 Symfony

Un framework simplifica el desarrollo de una aplicación mediante la automatización de algunos de los patrones utilizados para resolver las tareas comunes, proporciona estructura al código fuente, forzando al desarrollador a crear código más legible y más fácil de mantener, facilita la programación de aplicaciones, ya que encapsula operaciones complejas en instrucciones sencillas.

Symfony es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web, gracias a sus características; este separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web; proporciona varias herramientas y clases para reducir el tiempo de desarrollo de una aplicación web compleja; el resultado de estas ventajas es que no se debe reinventar la rueda.

Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas *nix (Unix, Linux,etc.) como en plataformas Windows.

(36)

Capítulo I

25

Características:

Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares)

Independiente del sistema gestor de bases de datos

Sencillo de usar en la mayoría de los casos, pero lo suficientemente flexible como para adaptarse a los casos más complejos

Basado en la premisa de “convenir en vez de configurar”, en la que el desarrollador solo debe configurar aquello que no es convencional

Sigue la mayoría de mejores prácticas y patrones de diseño para la web

Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo

Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo

Fácil de extender, lo que permite su integración con librerías desarrolladas por terceros.

1.7 Metodologías y herramientas a utilizar

Todo desarrollo de software es riesgoso y difícil de controlar, es por eso que se debe tener un especial cuidado a la hora de seleccionar una adecuada metodología de desarrollo de software porque puede que al final los clientes no estén satisfechos y los desarrolladores aún más insatisfechos.

Para dar una idea de qué metodología se puede utilizar se hará mención a tres de ellas de las que se consideran las más importantes, tales como: RUP, XP y MSF. De estas la que más se adapta a la aplicación a desarrollar es el Proceso Unificado de Modelado (RUP), debido a que en RUP están reflejadas la mayor cantidad de etapas en el desarrollo del software y porque es ideal para el desarrollo de un trabajo de Diploma como ejercicio complementario de la especialidad.

1.7.1 El Proceso Unificado de Modelado. RUP.

El Proceso Unificado de Modelado o RUP (Rational Unified Process), es un proceso de desarrollo de software, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

(37)

Capítulo I

26

El Proceso Unificado de Desarrollo (RUP) es una propuesta de proceso para el desarrollo de software orientado a objeto que utiliza UML para describir un sistema. Es un marco de trabajo genérico que puede especializarse para una gran variedad de sistemas software, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños de proyecto. Incluye artefactos (que son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una persona puede desempeñar distintos roles a lo largo del proceso). Este proceso tiene como características fundamentales que está dirigido por casos de uso, es iterativo e incremental y centrado en la arquitectura. Está constituido por 5 flujos de trabajo fundamentales: requisitos, análisis, diseño, implementación y prueba, los que tienen lugar sobre 4 fases: inicio, elaboración, construcción y transición.

Sus principales características son:

 Guiado por los casos de uso: Esto quiere decir que el proceso de desarrollo lleva un hilo, avanza a través de una serie de flujos de trabajo que parten de los casos de uso. Los casos de uso se especifican, se diseñan y los casos de uso finales son la fuente a partir de la cual los ingenieros de prueba construyen sus casos de prueba. Los casos de uso guían la arquitectura del sistema.

 Centrado en la arquitectura: La arquitectura surge de las necesidades de la empresa, como las perciben los usuarios y los inversores, y se refleja en los casos de uso. Incluye los aspectos más significativos del sistema y se ve influida por muchos otros factores como la plataforma en la que tiene que funcionar el software (arquitectura hardware, sistema operativo,

 Iterativo e incremental: Es práctico dividir el trabajo en partes más pequeñas o miniproyectos.

Cada mini proyecto es una iteración que resulta en un incremento. Las iteraciones hacen referencia a pasos en los flujos de trabajo, y los incrementos, al crecimiento del producto. Cada iteración se realiza de forma planificada es por eso que se dice que son miniproyectos.

(38)

Capítulo I

27

RUP se divide en 4 fases el desarrollo del software:

 Inicio: El objetivo en esta etapa es determinar la visión del proyecto. Se describe el negocio y se delimita el proyecto describiendo sus alcances con la identificación de los casos de uso del sistema. El principal esfuerzo está radicado en el “Modelamiento del Negocio” y el “Análisis de Requerimientos ”.La fase de inicio tiene entre sus objetivos decidir si se procede con el proyecto o no, identificar riesgos y crear estrategias para mitigarlos.

 Elaboración: En esta etapa el objetivo es determinar la arquitectura óptima del sistem a a desarrollar. Tiene como principal finalidad completar el análisis de los Casos de Uso y definir la arquitectura del sistema. Durante el flujo de trabajo de análisis y diseño se construyen el modelo de análisis, el modelo de diseño, el modelo de despliegue y el refinamiento de la descripción de la arquitectura. A pesar de que se desarrolla a profundidad una parte del sistema, las decisiones sobre la arquitectura se hacen sobre la base de la comprensión del sistema completo y los requerimientos (funcionales y no funcionales) identificados de acuerdo al alcance definido.

 Construcción: En esta etapa el objetivo es llegar a obtener la capacidad operacional inicial. Está compuesta por un ciclo de varias iteraciones, en las cuales se van incorporando sucesivamente los casos de uso, de acuerdo a los factores de riesgo del proyecto. Los cambios en los requerimientos no se incorporan hasta el inicio de la próxima iteración. Se obtiene un producto listo para su utilización que está documentado y tiene un manual de usuario. Se obtiene 1 o varios release del producto que han pasado las pruebas. Se ponen estos release a consideración de un subconjunto de usuarios.

 Transición: El objetivo es llegar a obtener el release del proyecto o producto final. Se inicia con una versión “beta” del sistema y culmina con el sistema en fase de producción. El release ya está listo para su instalación en las condiciones reales. Puede implicar reparación de errores.

1.7.2 UML (Lenguaje Unificado para Modelado)

Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; aún cuando todavía no es un estándar oficial, está respaldado por el OMG (Object Management Group).

(39)

Capítulo I

28

Es el lenguaje gráfico para el modelado de sistemas con tecnología orientada a objeto que permite especificar, visualizar, construir y documentar. Soporta todo el ciclo de vida de desarrollo de software:

especificaciones de analistas, arquitectura, diseño, implementación e implantación. Soporta además distintas áreas de aplicación: sistemas distribuidos, tiempo real, aplicaciones monoproceso, sistemas de información corporativos, Banca/Finanzas, Telecomunicaciones, Defensa/Espacio, Transporte, Distribución, Electromedicina, Ciencia, entre otros. Es un lenguaje de modelado visual fácil de aprender pero rico en significado, es estándar, estable y configurable.

UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes de software reutilizables.

Es importante resaltar que UML es un "lenguaje" para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado de Rational) -pero no especifica en sí mismo qué metodología o proceso usar.

1.7.3 Bases de Dato (BD)

Colección o depósito de datos integrados con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real; los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de éstas, y su definición y descripción, únicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualización y recuperación comunes y bien determinadas, tendrán que ser capaces de conservar la integridad, seguridad y confidencialidad de los datos.

1.7.4 Sistema de Gestión de Bases de Dato (SGBD)

Un Sistema de Gestión de Bases de Datos es aquel que se encarga de controlar el acceso concurrente, evitar redundancia, que se cumplan las restricciones y reglas de integridad, usar elementos que aceleren el acceso físico a los datos (índices, agrupamientos, funciones de dispersión),

Referencias

Documento similar