Anteproyecto Liliana cujar

42
GUÍA DE BUENAS PRÁCTICAS PARA EL DESARROLLO DE APLICACIONES WEB SEGURAS, ORIENTADAS A LA FORMACIÓN DE PROGRAMADORES LILIANA CÚJAR BAHAMÓN CÓDIGO 21404870 UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA ESPECIALIZACIÓN EN SEGURIDAD INFORMÁTICA MEDELLÍN 2015

Transcript of Anteproyecto Liliana cujar

GUÍA DE BUENAS PRÁCTICAS PARA EL DESARROLLO DE APLICACIONES

WEB SEGURAS, ORIENTADAS A LA FORMACIÓN DE PROGRAMADORES

LILIANA CÚJAR BAHAMÓN

CÓDIGO 21404870

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA

ESPECIALIZACIÓN EN SEGURIDAD INFORMÁTICA

MEDELLÍN

2015

GUÍA DE BUENAS PRÁCTICAS PARA EL DESARROLLO DE APLICACIONES

WEB SEGURAS, ORIENTADAS A LA FORMACIÓN DE PROGRAMADORES

LILIANA CÚJAR BAHAMÓN

CÓDIGO 21404870

Proyecto de Grado para optar al título de Especialista en Seguridad Informática

Director de Cuso: Ing. Ramses Ríos Lampriello

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA

ESPECIALIZACIÓN EN SEGURIDAD INFORMÁTICA

MEDELLÍN

2015

TABLA DE CONTENIDO

Pag.

1. PLANTEAMIENTO DEL PROBLEMA 6

1.1. DESCRIPCIÓN DEL PROBLEMA 6

1.2. FORMULACIÓN DEL PROBLEMA 8

1.3. ALCANCE DEL PROYECTO 8

1.4. JUSTIFICACIÓN 8

1.5. OBJETIVOS 9

1.5.1 OBJETIVO GENERAL 9

1.5.2. OBJETIVOS ESPECÍFICOS 9

2. MARCO REFERENCIAL 10

ANTECEDENTES 10

3. MARCO TEÓRICO CONCEPTUAL 12

3.1. BUENAS PRÁCTICAS PARA EL DESARROLLO DE UN

PROYECTO INFORMÁTICO 13

3.1.1. ¿Qué son buenas prácticas? 13

3.1.2. ¿Por qué se les llaman buenas prácticas? 13

3.1.3. ¿Qué hace que una práctica sea mal desarrollada? 13

3.1.4. Qué es un proyecto informático 14

3.1.5. Tips de buenas prácticas para el desarrollo de un proyecto 14

informático

3.2. LA SEGURIDAD INFORMÁTICA 16

3.2.1. Riesgos que pueden afectar la WEB 17

3.3. QUE ES UNA APLICACIÓN WEB 18

3.3.1. Ciclo de vida en el desarrollo de aplicaciones web 19

3.3.2. Arquitecturas para el desarrollo de aplicaciones web 21

3.4. SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIÓN

WEB 22

3.4.1. Que es Criptografía 23

3.4.2. Que uso tiene la Criptografía 25

3.4.3. Que clases de tecnologías existen 25

3.4.4. Servicios criptográficos disponibles 26

3.5. BUENAS PRÁCTICAS DE CODIFICACIÓN – ARQUITECTURA

PARA EL DESARROLLO DE APLICACIONES WEB. 28

3.5.1. Seguridad en la construcción de aplicaciones 29

3.6. TECNOLOGÍA A IMPLEMENTAR - ACUNETIX WEB

VULNERABILITY SCANNER 33

5.61 Que es y para qué sirve ACUNETIX WEB VULNERABILITY

SCANNER 33

3.6.2 ¿Qué detecciones realiza? 34

3.7. CREACION DE UNA PÁGINA WEB PARA EL DESARROLLO

DEL PROYECTO 34

4 DISEÑO METODOLÓGICO 35

4.1. TIPO DE INVESTIGACIÓN 36

4.2. MÉTODO 36

4.3. PRODUCTO O RESULTADO QUE DEBE GENERAR EL

PROYECTO PROPUESTO 36

4.4 ETAPAS DE LA INVESTIGACIÓN 37

5. RECURSOS DISPONIBLES 38

6. CRONOGRAMA 40

7. BIBLIOGRAFÍA 41

LISTA DE TABLAS

Pag.

Tabla 1: Recursos indispensables para el desarrollo del proyecto 21

Tabla 2: Cronograma de actividades 23

7

1. PLANTEAMIENTO DEL PROBLEMA

1.1. DESCRIPCIÓN DEL PROBLEMA

El origen de las vulnerabilidades de una aplicación web puede estar en cualquier

componente de una aplicación web en producción: la base de datos, la

configuración de los servicios, el sistema operativo, los accesos a sistemas o

módulos relacionados, entre otras. Sin embargo, muchas de ellas pueden

prevenirse escribiendo código fuente seguro y protegido contra amenazas

potenciales.

Estudios de seguridad plantean que el 70% de las aplicaciones web tienen

vulnerabilidades, los problemas de seguridad en los sitios web se encuentran a

nivel de la aplicación como resultado de malas prácticas en la construcción del

software, los desarrolladores requieren comprender que al programar aplicaciones

WEB deben considerar requerimientos de seguridad y que se requiere no solo

cumplir con el objetivo funcional básico de la aplicación, sino una concepción

general de los riesgos que puede correr la información contenida, y gestionada por

el sistema.

El concepto de la seguridad en las aplicaciones web es un área de investigación

que ha pasado a ser vital dentro de la Ingeniería de Software, como resultado del

crecimiento de las aplicaciones sobre Internet. Los ataques han ido en aumento

dadas las posibilidades de éxito que han tenido y se puede decir que sin

consecuencia laguna.

Como consecuencia, el desarrollador de software no solo debe concentrarse en

los requerimientos de los usuarios y en la autenticación para el acceso a las

aplicaciones sino en prevenir desde el desarrollo posibles ataques. Esto implica

que en el proceso de diseño y construcción del software se incorporen prácticas

de seguridad como requerimientos críticos del sistema.

Para el proyecto, The Open Web Application Security Project, OWASP (“la

comunidad libre y abierta sobre seguridad en aplicaciones”) es muy importante por

la información alberga acerca del desarrollo de las aplicaciones Web, contiene

información desde el momento de la creación de la página Web, como las

vulnerabilidades, las formas de contrarrestarlas, escaneo, ejemplos y soluciones.

8

1.2. FORMULACIÓN DEL PROBLEMA

¿Cómo introducir buenas prácticas de software seguro en la formación de

programadores de aplicaciones web?

1.3. ALCANCE DEL PROYECTO

Creación de una guía de buenas prácticas de seguridad en Aplicaciones WEB

desde la elaboración de software en su etapa incipiente para que sean adoptadas

por los estudiantes de Media Técnica en Desarrollo del software de las

instituciones educativas del Municipio de Medellín.

1.4. JUSTIFICACIÓN.

En la actualidad, existen publicaciones que permiten formar un criterio sobre el

tema, no existen acuerdos sobre mejores prácticas básicas sobre lo que se debe

considerar en el proceso de desarrollo, la seguridad se centra en la defensa y no

en la prevención por lo que se propone la definición de mejores prácticas como los

primeros pasos durante la formación de programadores para crear hábitos de

construcción de software seguro.

El Vivero del Software es un lugar ubicado en la ciudad de Medellín en donde

germina, se incentiva y se fortalece el talento de los jóvenes estudiantes de Media

Técnica en Desarrollo del software de las instituciones educativas del Municipio de

Medellín. Es aquí donde se revela la necesidad de incluir las buenas prácticas

desde el momento mismo de la concepción de la idea de la creación de una

9

página Web por los estudiantes que comienzan en el mundo del desarrollo del

software.

1.5. OBJETIVOS

1.5.1. Objetivo General

Diseñar una guía de mejores prácticas de seguridad para el desarrollo de

aplicaciones WEB y su incorporación en los procesos de formación de

programadores.

1.6. OBJETIVOS ESPECÍFICOS

Identificar las principales vulnerabilidades en cada fase del ciclo de

desarrollo de software y los posibles ataques mediante la revisión de

literatura y de estándares

Identificar las mejores prácticas con las herramientas de prueba asociadas,

para la construcción de aplicaciones Web seguras mediante la consulta de

estándares de la industria.

10

2. MARCO REFERENCIAL

2.1. ANTECEDENTES

Son muchos los documentos que se ha encontrado en cuanto al desarrollo de

sitios WEB, pero muy pocos los que se dediquen a la seguridad, aunque dentro

de sus contenidos siempre hay información que tiene que ver con la seguridad.

Traigo a colación estas páginas que me parecen interesantes en cuanto a que

trata los temas relacionados con este trabajo.

Guía para el desarrollo de sitios WEB, documento escrito por la Secretaría

técnica el gobierno digital de Costa Rica, (Digital, 2009)

Es un documento continuación o siguiente edición de otro documento

publicado en el 2007 realizado e impulsado por la Secretaría Técnica del

Gobierno digital del país de Costa Rica con el propósito de crear documentos

de consulta para las personas que se encargan de crear páginas WEB en las

instituciones públicas de ese país.

Si bien es cierto que las normas que rigen el país de Costa Rica no son las

mismas que rigen a Colombia, éste es un texto guía que nos permite utilizar el

modelo para la construcción de una guía con características similares; en

cuanto a la creación de las páginas web, son modelos estandarizados

mundialmente por tanto este documento nos presta una gran ayuda al

momento de crear nuestro documento guía.

Guía para el desarrollo de sitios WEB, patrocinado por el gobierno de Chile

(Chile, 2008) , en esta página puedes consultar cualquier ítem que tenga que

ver con el tema que ocupa en este trabajo. Como parte de la investigación, se

ha realizado un barrido de los temas de interés tales como: Requerimientos

se seguridad para la creación de páginas web y esta consulta arrojó los

siguientes resultados:

Normativas, leyes, decretos

Diseño de interfaces e interacción

Estándares Web

11

Definición de un sitio Web

Puesta en marcha de un sitio Web

Checklist

Medición de resultados en redes sociales

Manejo de DNS

Protección de la Estructura Interna del Sitio Web

Protección Contra Robots

Manejo de Privacidad

Canales Seguros

Mecanismos de Control de Acceso

Protección de Programas

Hosting Externo vs. Sitio Propio

Roles Mínimos a Asegurar

Son documentos con respaldo muy serio y que tocan el tema universal de los

sistemas de información y la comunicación TIC en todos sus ámbitos.

La Guía para el desarrollo de sitios WEB fue consultada el 15 de mayo de

2015, es una versión de descarga libre con el fin de que los usuarios que

trabajen con páginas web puedan tener acceso a ella y les sirva de norte en

el desarrollo de sus prácticas; esta guía ha sido publicada por el Ministerio de

Secretaría General de Gobierno de Chile en el 2007 y es la continuidad de la

guía inicial publicada en el 2004

12

3. MARCO TEÓRICO CONCEPTUAL

Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnología que

existe, la comunicación, los juegos, la televisión, la telefonía, en fin, cada

negocio, cada casa y particularmente cada persona cuenta con un aparato que le

permite comunicarse y estar informado de manera inmediata. Nuestro activo

principal, tanto personal como de empresas es la información que genera ante

cualquier uso de la tecnología, y todo esto generalmente queda guardado en

nuestros aparatos electrónicos.

Es importante saber que cuando se utiliza un computador, un teléfono o

enviamos un correo, necesitamos de programas o aplicaciones que ayuden a

obtener y desarrollar la actividad que se requiere, los desarrolladores de estas

aplicaciones, los programadores que manejan páginas WEB son los actores más

importantes de este intercambio tecnológico y por supuesto están las amenazas,

los riegos y las vulnerabilidades latentes en cada uno de estos programas y

aplicaciones.

Un aporte fundamental que se pretende con este trabajo es ofrecer a los

estudiantes de media técnica de las instituciones educativas del municipio de

Medellín una guía que permita minimizar los riesgos a que están expuestos

desde el momento de la realización del programa, que los estudiantes desde su

aprendizaje tengan en cuenta esta guía y la incorporen al momento del desarrollo

de su actividad.

Lo primero que se debe tener en cuenta son algunos tips que existen para

proporcionar buenas prácticas en cualquier proyecto informático.

13

3.1. BUENAS PRÁCTICAS PARA EL DESARROLLO DE UN PROYECTO

INFORMÁTICO

3.1.1. ¿Qué son buenas prácticas?

Son un conjunto de acciones ordenadas, ciertas, coherente y seguras, con

objetivos claros y procedimientos adecuados, realizadas por personas que ponen

en práctica sus conocimientos en pro de satisfacer una necesidad identificada,

obviamente, cumpliendo con normas, políticas, reglas y estándares que la

certifiquen como apta para ponerla en funcionamiento y que se convierta en un

referente para mejorar otros procesos. (FEAPS, 2007)

3.1.2. ¿Porque se les llaman buenas prácticas?

Porque cumplen con normas, políticas, estándares y reglas que la hacen

válida y conforme a la Ley para que cumpla con su perfecto su

funcionamiento.

Porque atacan de raíz una necesidad convirtiéndola en una fortaleza.

Porque el personal encargado son personas calificadas y especializados para

desarrollar la labor.

Porque las propuestas son innovadoras y creativas.

3.1.3. ¿Que hace que una práctica sea mal desarrollada?

El tiempo reducido en su ejecución

Personal con conocimientos escasos del tema

Que la necesidad no sea tan evidente.

Desarrollo por investigaciones equivocadas

Etapas de inicio poco sólidas.1

1 Feaps.( 2007) Buenas prácticas FEAPS , pag. 6,7, 9 y 10

14

3.1.4. ¿Qué es un proyecto informático?

Es el cubrimiento de una necesidad identificada por alguien y realizado por un

grupo de personas conocedoras de las tecnologías de la información y la

comunicación, que construyen un producto de software que satisfaga esa

necesidad.2

3.1.5. Tips de buenas prácticas para el desarrollo de un proyecto

informático

Existe tanta literatura como medios para obtener los diferentes tips que hacen

que un proyecto informático sea reconocido como “buen proyecto”, porque

cumplen con los lineamientos específicos que lo hacen sobresalir de los demás

proyectos y porque culminan satisfaciendo las necesidades por los que fueron

creados. Aquí nombro algunos de ellos:

Lo primero que se debe hacer es un acercamiento con el cliente para saber

sus necesidades, expectativas, requerimientos y viabilidad de su petición.

Una vez se tenga reconocido el proyecto y lo que se va a hacer, se debe

empezar con la planificación del trabajo en general, hacer un bosquejo de los

resultados y hacérselo saber al cliente para poner en marcha el proyecto; de

ahí en adelante se debe tener en cuenta lo que sigue:

Involucrar al cliente en el desarrollo del proyecto. Hacer partícipe al cliente de

la evolución del proyecto y sobretodo en la fase de requerimientos, con esto

se garantiza que lo que se hace es lo que quiere el cliente.

Valorar la importancia del sistema a implementar. El cliente debe tener claro

que lo que se está haciendo será para beneficio de su empresa por tanto

debe instruir a sus empleados acerca de la importancia de poner en

funcionamiento el proyecto finalizado.

Concientizar al cliente y sobre todo a los empleados de que el proyecto en

mención es un apoyo a la gestión de los empleados y que en ningún

momento sustituirá al empleado quien es el responsable y decide qué, cuándo

y cómo realizar el trabajo.

2 M. Astudillo. (2009) El Proyecto informático. Documento disponible en: http://www.monografias.com/trabajos-pdf2/proyecto-informatico/proyecto-informatico.pdf

15

Tener siempre presente los objetivos del negocio.

Tener siempre una comunicación directa con el cliente, evitar los

intermediarios.

Elaborar un mapa de riesgos.

Flexibilidad en los requerimientos. El cliente hace la solicitud de un proyecto

producto de una necesidad manifiesta, sabe lo que necesita pero no sabe

cómo se desarrollará, por tanto a medida que se realicen los requerimientos,

el cliente puede ir modificando sus exigencias de acuerdo a la complejidad del

proyecto.

Evaluar de manera efectiva la complejidad de los requerimientos. Explicar al

cliente lo que significa en tiempo y plata sus requerimientos permitiendo al

cliente reformar sus exigencias y al realizador del proyecto cumplir con los

tiempos estipulados.

Reconocer delante del cliente la importancia de la realización del proyecto y

los beneficios que traerá a su empresa.

Cuando se dirija al cliente hacerlo en lenguaje ordinario, evitar las palabras

técnicas que confundan al cliente, los tecnicismos generan desconfianza, las

palabras comunes, hacen que el cliente entienda y confíe.

Averiguar quiénes serán los beneficiados con el proyecto, que hacen y que

necesitan y definir las posibles soluciones acordes con los procesos

implementados en la empresa.

Definir el alcance del proyecto, identificar los requerimientos y organizarlos de

acuerdo con su urgencia.

Una vez se está ejecutando el proyecto, se debe estar preparado para

posibles pequeñas variaciones en el alcance del proyecto, lo cual implica

reprocesar; esto solo es posible si redunda en mejor calidad en el proyecto y

excelente satisfacción para el cliente.

Se debe tener en cuenta de documentar constantemente, levantar actas de

las reuniones y documentar los procesos realizados.

Tener clara la trazabilidad del producto, conocer los requerimientos y todos

los métodos que se aplican para su solución desde el levantamiento de

requerimientos, pasando por los modelos arquitectónicos, el diseño, el

programa que se utilizará, el código fuente aplicado y los casos de prueba.

Utilizar diseños ágiles que le permitan hacer modificaciones a medida que el

proyecto avance, igualmente hacer modificaciones al modelo de acuerdo con

la exigencia del proyecto.

Realizar las pruebas de código y comprobar su funcionamiento.

Las herramientas que generan código facilitan en gran medida el trabajo.

El diseño es una parte esencial para el desarrollo del proyecto, con ello se

tiene identificado su inicio, avance y culminación.

16

Tener claro que en la etapa de requerimientos se debe hacer además de la

recolección y análisis de los requerimientos, un estudio de factibilidad que

integra la disponibilidad de recursos que se utilizarán para llevar a cabo el

proyecto, objetivos, alcance, limitaciones, costos aproximados, tiempo de

ejecución, etc.

Existen numerosas herramientas para desarrollo de software, tener en cuenta

las convenciones necesarias de acuerdo con el lenguaje de programación que

escoja.3

3.2. LA SEGURIDAD EN INFORMÁTICA

La seguridad informática no es más que la acción de proteger mediante

mecanismos técnicos y legales, los activos ante cualquier amenaza, riesgo o

daño que lo pueda atacar, empezando por los activos físicos con los cuales se

crea y adelantan las labores diarias, y siguiendo con la información generada que

finalmente se convierte en el reflejo del buen nombre de la empresa.

El Riesgo es la identificación de las vulnerabilidades medidas mediante la

probabilidad de que ocurra un suceso y los posibles daños que ocasionaría en el

desarrollo de la empresa, es allí donde toma parte la seguridad informática

buscando mecanismos de defensa y protección.

Es de vital importancia dirigir la protección de los activos hacia los objetivos

fundamentales de la seguridad como son la integridad, la disponibilidad y la

confidencialidad.

La Integridad, garantiza que los datos permanezcan exactos y que no puedan

ser borrados o modificados por personas no autorizadas, La firma digital es uno

de los mecanismos fundamentales para conservar la integridad en la información.

3 J.C. Herazo (2010) ¿Preparado para presentar tu proyecto de seguridad informática ante gerencia? Disponible en: http://liacolombia.com/2011/02/%C2%BFpreparado-para-presentar-tu-proyecto-de-seguridad-informatica-ante-gerencia/

17

La Disponibilidad asegura que la información se encuentre al alcance de los

que la necesiten y que estén autorizadas, para ello existen los permisos que se

otorgan a los usuarios, de lectura, de escritura y de ejecución.

La Confidencialidad asegura que la información esté resguardada y que solo

sea accesible para las personas que cuentan con la autorización necesaria para

utilizarla, para la confidencialidad es importante el cifrado de la información

relevante.

Estos tres objetivos podrían ser más eficaces si a cada usuario que haga uso de

la información de la empresa se le diera permiso y tuviera que autenticarse al

momento de ingreso, esto como parte de la seguridad y para que se pueda

identificar el tipo de operaciones que realiza y la clase de información pueda

manipular en un caso dado. Igualmente se debe tener el control de los

movimientos que se presenten con el sistema realizando registros y auditorías,

esto garantiza el no repudio (verificación que una transacción cualquiera que

sea su naturaleza haya sido entregada y recibida)4

Todo caso de seguridad en la empresa es de orden primordial toda vez que no

solamente existe ataques desde el exterior, sino que dentro de las mismas

compañías existen empleados que pueden afectar la información ya sea de

forma involuntaria o voluntaria y que pueden poner en riesgo la estabilidad de la

compañía.

3.2.1. Riesgos que pueden afectar la WEB

Cada día el uso de aplicaciones WEB en las compañías se hace más frecuente

dado el avance tecnológico en cuanto a comercio electrónico y a la necesidad de

prontitud y facilidad de las transacciones o negocios, las compañías cada día se

ven obligadas a manejar su información a través de la red lo que las hacen

vulnerables ante los ataques informáticos.

La empresa Gartnet Inc. Situada en Stamford, Connecticut, Estados Unidos, Está

dedicada a la consultoría e investigación de las Tecnologías de la información,

4 Infosegur (2013). Objetivos de la Seguridad informática. Disponible en: https://infosegur.wordpress.com/tag/no-repudio/

18

estima que el 75% de los ataques informáticos están direccionados hacia las

aplicaciones web y que generalmente éstos son producidos con fines de

ganancias económicas, por tan razón, la seguridad en las aplicaciones debe ser

tenida en cuenta desde el momento del diseño hasta el momento de su

ejecución.

Muchas de las aplicaciones que tienen que ver con transacciones comerciales

son objetivos de los delincuentes informáticos que tratan de violar la seguridad

para obtener claves, contraseñas, números de tarjetas de crédito etc.; Estas

aplicaciones generalmente presentan vulnerabilidades porque no son

desarrolladas con el tiempo necesario para tener en cuenta la seguridad dadas

las presiones ejercidas por el cliente para la entrega y porque no se tiene la

conciencia de la importancia que la seguridad representa.

Otro de los objetivos son las debilidades de HTTP que existen cuando se utilizan

puertos TCP conocidos como el puerto 80 y/o 443 para la comunicación y

aunque la función del Firewall es filtrar el tráfico de información que entra y sale

de dos redes o de computadores que trabajan dentro de una misma red y que

deben cumplir con unas reglas específicas (que en caso de no cumplirse, la

información es bloqueada), si utiliza estos puertos para permitir la comunicación,

de nada sirve.

3.3. QUE ES UNA APLICACIÓN WEB

Primero que nada debemos saber que la palabra WEB (Acrónimo de World Wide

Web), es una palabra inglesa que tiene como significado red, telaraña o malla y

es utilizada en los medios informáticos para referirnos a internet5

Una aplicación web, es una herramienta que ha sido creada mediante código con

el único propósito de interactuar con el usuario y cumplir con un propósito

específico de realizar una orden que le ha solicitado un usuario. Es también una

herramienta que se ejecuta en internet y por tanto todos los datos archivos, o

historial de navegación, quedan guardados en la web. Generalmente son 15 Consulta realizada el 24 de octubre de 2015, disponible en: http://definicion.de/web/

19

accedidas directamente (online) y no necesitan instalarse en el computador para

realizar su trabajo, un ejemplo de ello son Yahoo, Gmail o Microsoft Outlook, que

son programas que guardan la información en la nube y pueden ser accedidos

desde cualquier computador o dispositivo móvil en cualquier parte del mundo

Las aplicaciones web nos ofrecen muchas ventajas como su gratuidad o sea que

se puede obtener una aplicación que sirva para un fin específico de manera

gratuita y no necesita descargarse en el computador para poder ejecutarla.

Otras de sus bondades es la accesibilidad ya que como su información queda

guardada en la nube, se puede ingresar a ella en cualquier momento y lugar,

igualmente se puede trabajar en ellas de manera simultánea entre varios

usuarios.

3.3.1. Ciclo de vida en el desarrollo de aplicaciones web.

El auge que han tenido en los últimos años las TIC (Tecnologías de la

Información y la Comunicación) ha hecho que no solamente las empresas se

beneficien de ellas por la necesidad en sus transacciones casi que inmediatas y

la urgencia en las comunicaciones ágiles y efectivas, sino que ha ingresado a los

hogares obligando a las personas a hacer uso de ellas no solamente utilizando la

parte transaccional sino utilizándolas como método de investigación y hasta de

diversión y esparcimiento.

Es así como cada día se inventan nuevos plataformas, sistemas operativos,

programas, aplicaciones etc. que son el resultado de grandes investigaciones

que permiten suplir en gran parte las necesidades de los usuarios y que hacen al

mundo entero partícipe del uso de las tecnologías.

Las aplicaciones web son programas informáticos que se realizan a través de un

computador y que son accedidas por la web por medio de una red como internet

o intranet o sea que no necesitan ser descargadas y se puede acceder a ellas

desde cualquier lugar y en múltiples plataformas.

20

Existen muchísimas metodologías para el desarrollo de aplicaciones web, la

variedad de estas metodologías depende de los requerimientos. Existen técnicas

de modelado conceptual tradicional, métodos de diseño orientadas a objetos y

también existen mejoras del modelo conceptual implantando modelos de

navegación y presentación. (Silva, 2001), (Marcos, 2002).

Las aplicaciones web tienen un proceso de desarrollo o de vida que puede

dividirse en etapas; este proceso permite visualizar el trabajo de manera

ordenada, haciendo que cualquier persona sepa observarlo y entenderlo. Estas

etapas están divididas así:

Etapa de levantamiento de necesidades u oportunidades o de requisitos

Etapa de análisis

Etapa de diseño

Etapa de codificación,

Etapa de Pruebas

Etapa de instalación

Etapa de mantenimiento.6

ETAPA DE LEVANTAMIENTO DE NECESIDADES U OPORTUNIDADES O DE

REQUISITOS: En esta fase se identifican los usuarios y sus necesidades, las

formas de las necesidades de información, necesidades de navegación,

necesidades de adaptación y necesidades de interfaz de usuario. También

requisitos específicos de información, terminando con un prototipo de interfaz del

usuario.

ETAPA DE ANALISIS: Luego de que el cliente ha expresado sus necesidades, se

realiza entonces el análisis, se determinan los requisitos que debe tener la

aplicación, como público objetivo, hardware y software a utilizar, módulos,

requisitos técnicos, alcance, responsabilidades, plazos, costos etc.

ETAPA DE DISEÑO: Propuesta firmada como aceptada, adelanto en dinero,

material, esquemas de diseño o planos del programador, es la manifestación de

la estructura de la aplicación.

6 Consulta realizada el 28 de octubre de 2015, disponible en: http://elvex.ugr.es/idbis/db/docs/lifecycle.pdf

21

ETAPA DE CODIFICACIÓN: Desarrollo del código de acuerdo a la estructura

anterior, los desarrolladores deben conocer la interfaz y el código a desarrollar de

acuerdo con el lenguaje de programación es la traducción de la estructura en

código que ofrezcan como resultado una interfaz amigable al cliente.

ETAPA DE PRUEBAS: Las aplicaciones web necesitan pruebas de integración,

de tensión, de escalabilidad, de carga, de resolución y de compatibilidad, con ello

se comprueba que la aplicación se desarrolla en forma adecuada conforme a las

exigencias del cliente.

ETAPA DE INSTALACIÓN: Luego de haber terminado con la codificación y

realizado las pruebas pertinentes, llega esta etapa que es la entrega oficial del

proyecto al cliente, en donde se deja instalado el programa y funcionando, se

debe tener en cuenta que durante todo el proceso ha habido acompañamiento

directo con el cliente, por tanto en esta etapa ya se entrega el programa

funcionando a satisfacción del cliente

ETAPA DE MANTENIMIENTO: Generalmente las aplicaciones WEB necesitan

actualizaciones porque las correcciones de errores se van haciendo a medida

que se va desarrollando la codificación.

3.3.2. Arquitecturas para el desarrollo de aplicaciones web.

Una aplicación Web es un sitio dentro de internet que ha sido creada para

contener información a la que puede acceder desde un motor de búsqueda con

un tema específico, permitiendo a los usuarios obtener información rápidamente

con una gama amplia de alternativas de uso.

22

Figura 1: Arquitectura de una aplicación WEB

Fuente: http://www.n4designlab.com.mx/blog/index.php/119-aspectos-basicos-

de-las-aplicaciones-web

Tiene 3 componentes principales: Servidor web, conexión a la red y los clientes.

Un cliente realiza una petición desde un buscador, esta petición viaja usando una

conexión de red usando el protocolo HTTP y llega hasta un servidor web que se

encarga de buscar entre su sistema de archivos la solicitud y entrega la respuesta

correspondiente, una vez entregada la solicitud, se rompe el proceso.7

3.4. SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIÓN WEB.

La seguridad que se debe aplicar al crear una aplicación web es un tema muy

amplio dados los puntos de vulnerabilidades que lo contienen y las amenazas

constantes a las que se está expuesta, es importante tener un conocimiento muy

amplio de la manera de prevenirlos, lo importante en la creación de una

aplicación web dinámica es que se puede actualizar constantemente.

7 Consulta realizada en 28.10-2015 disponible en: https://programacionwebisc.wordpress.com/2-1-arquitectura-de-las-aplicaciones-web/

23

Aunque las amenazas que rodean las aplicaciones web están latentes, es

importante tener en cuenta algunas recomendaciones para minimizar el riesgo,

algunas de ellas serían:

El servidor debe mantenerse en un lugar seguro donde no tenga acceso

de personas no autorizadas.

Realizar copias de seguridad frecuentemente y guardarlas en lugares

seguros.

Cierre los puertos que no utiliza y cancele los servicios no utilizados.

Mantenga un programa antivirus potente que vigile y reporte la información

que entra y sale.

Asegúrese de que se cumpla la orden de utilizar contraseñas fuertes y

ocultas.

Utilice firewall potentes.

Utilice la criptografía para proteger la información sensible.

Para descargas utilice solamente fuentes y páginas confiables.

Desconfíe de correos de remitentes desconocidos.

Verifique que la dirección comience por https, es una conexión segura y no

utilice computadores públicos para realizar transacciones.

Controle las entradas y salidas, contactos, información, contraseñas etc.

de las redes sociales.8

Existen variedad de herramientas que permiten detectar las vulnerabilidades de

las páginas web, sin embargo, existen métodos que ayudan a proteger la

información y a mantenerla oculta en caso de ataques cibernéticos. Para esto se

ha desarrollado una técnica importante en el ocultamiento de la información, LA

CRIPTOGRAFÍA.

3.4.1. ¿Qué es Criptografía?

Es la aplicación de una técnica, código o conjunto de códigos que han utilizado

para ocultar información importante. Desde tiempos antiguos como en la época

8 J. López.(2010) Monográfico: Seguridad en Internet – Consejos para minimizar los riesgos en la navegación por internet, disponible en: http://recursostic.educacion.es/observatorio/web/en/listado-monograficos?start=4

24

de los romanos, por necesidad de que no fueran descubiertas sus estrategias de

guerra enviaban códigos que solo ellos conocían y que nadie podía descifrarlos.

Igualmente se utilizó la máquina Enigma usada en la segunda Guerra mundial

para enviar mensajes cifrados y se han utilizado otros como el cifrado César, el

diseño Feistel, etc. (H. Corrales, C. Cilleruelo, A. Cuevas, 2014, p. 4)9

En nuestra época, con la llegada de las computadoras, el envío constante de

información a través de los correos electrónicos, las transacciones que se

realizan a través de la red, se hizo necesario encontrar una manera de esconder

de manera óptima la información de manera que se haga inteligible ante

cualquier ojo normal. Guardar información importante en los discos duros o en

cualquier otro dispositivo, hace que la información allí almacenada sea apetecida

por cualquier invasor dañino, es por esto que esta información, en ocasiones

primordial y puede llegar a ser muy valiosa para la empresa, por tanto esta

técnica que es utilizada para ocultar información importante que no pueda ser

accedida por nadie excepto por el creador y por el receptor de la información

quien conoce de antemano la clave; con ello se garantiza la integridad, la

confidencialidad y la disponibilidad de la información en tiempo real.

Figura 2: proceso de cifrado y descifrado de la información

Fuente: propia

Algunos ejemplos de algoritmos de criptografía clásica se pueden consultar en la

página https://genomorro.files.wordpress.com/2007/09/trabajo.pdf

3.4.2. ¿Qué uso tiene la Criptografía?

9 Consultado el 26 de octubre de 2015, disponible en: http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pdf

25

La criptografía se creó con el propósito de esconder información de manera que

cualquier persona que acceda a ella no pueda descifrarla fácilmente.

La Criptografía se ha utilizado para:

Permitir que la información solo sea accedida por las personas autorizadas.

Solo pueda ser modificada por las personas que tengan los permisos para hacerlo.

Que la información se pueda consultar en cualquier momento que se requiera.

Hace más seguras las comunicaciones y permite que mediante el cifrado simétrica se pueda tener privacidad y velocidad de transferencia al mismo tiempo.

Con el uso de firmas digitales, se asegura que el acceso a la información sea más controlado.

Facilitan el comercio electrónico reduciendo los riesgos de robo.

La criptografía no solo es utilizada con fines benévolos, también ha sido utilizada

para robos al interior de las compañías

Fuga de información.

Encriptación de información con fines ilegales (pornografía, espionaje, música,

videos etc)

3.4.3. ¿Qué clases de tecnologías existen?

Existen muchas maneras de encriptar la información, algunas de ellas pueden ser:

Criptografía Simétrica: Técnica utilizada en ocultar información mediante una

única clave (números, letras, palabras o cadenas de letras o palabras

aleatorias con o sin sentido) que se utiliza para enmascarar y desenmascarar

un texto. Esta clave es conocida por el emisor y el recetor del mensaje.10

10 ANGEL, José de Jesús. Criptografía para principiantes. P. 13 Disponible en: http://spi1.nisu.org/recop/www.seguridata.com/pdf/cbasica.pdf

26

Criptografía Asimétrica: Técnica utilizada para el envío y recepción de

información mediante 2 claves, una pública (conocida por todos) y una privada

(conocida por una sola persona), la seguridad que ofrece la criptografía

asimétrica es que solo las dos claves son utilizadas para el descifrado de la

información. La clave pública la conoce el emisor para encriptar la información

y la clave privada es conocida solamente por el receptor para descifrarla.11

La Firma digital: Técnica que permite demostrar ante auditores, que los

documentos son propios, se realiza mediante un Hash generado al documento

original, mediante la clave pública se realiza el hash del descifrado y se

comparan, si coincide, la información es veraz y la firma es auténtica. Es

importante comprobar las fechas de caducidad o revoque.12

Certificados digitales: Técnica que consiste en utilizar un certificado o

paquete de información que identifica al usuario que contiene información

acerca de éste, como dirección de correo electrónico, clave pública, país de

origen, periodo de validez y firma digital del certificado. Generalmente es utilizada

para identificar al titular del emisor de la información; es una técnica utilizada

como refuerzo de las técnicas anteriores13

3.4.4. Servicios criptográficos disponibles

A continuación se enumeran algunas herramientas que ofrecen servicios de

encriptación, generadores de claves públicas y privadas y firmas digitales de

documentos:

EncryptOnClick: Aplicación que sirve para encriptar ficheros protegiéndolos con una contraseña a la que puede acceder solo las personas interesadas, su interfaz se compone de cuatro botones por los que se puede acceder a todas acciones del programa.

11 Ibid., p. 21 12 Ibid., p. 24 13 Ibid., p. 37

27

Folder encripter: Aplicación que permite encriptar y desencriptar mediante una contraseña, archivos o carpetas.

Softavir-strict: Herramienta que permite ejecutar solamente los programas que

hayan sido añadidos a la lista (Lista blanca), así asegura que no dejara que

ningún software intruso ingrese al sistema.

Secryptor: Herramienta que permite encriptar los archivos guardados en la

nube.

Cryptext: Herramienta que encripta y desencripta el menú contextual de

Windows.

Hide it Pro: Es una aplicación gratuita que sirve para encriptar archivos y

desencriptarlo mediante contraseña o pin.

Paragon Encrypted Disk SE: Es una herramienta que encripta archivos

mediante imágenes codificadas en diferentes tipos de codificación.

PGP ENCRYPTER: Programa que permite el cifrado de la información,

genera claves públicas y privadas y realiza firmas digitales.

GnuPG: Herramienta de seguridad que permite generar un nuevo par de

claves, intercambia claves. Cifra y descifra documentos y firma y verifica

firmas.

BCArchive : Herramienta para encriptar y desencriptar información.

SecureZIP Express: Herramienta disponible para el cifrado de información, expedición de certificados digitales mediante X.509 y entrega de claves.

3.5. BUENAS PRÁCTICAS DE CODIFICACIÓN – ARQUITECTURA PARA EL

DESARROLLO DE APLICACIONES WEB.

28

Antes de iniciar con la seguridad en aplicaciones, todos los que de alguna manera

deben trabajar con la parte de la seguridad informática, deben conocer acerca de

lo que significa OWASP (“Open Web, Application Security Proyect” o en español

“Proyecto abierto de seguridad de aplicaciones Web), ya que es una organización

de personas voluntarias que trabajan en pro de la comunidad, proporcionando

recursos gratuitos, apoyo a empresas para utilizar documentos, herramientas

confiables y gratuitas, recursos, foros y capacitaciones, con el fin de que cualquier

persona o empresa pueda acceder a ellas y obtener la mayor seguridad en todo lo

que respecta a la tecnología, cualquier información al respecto se puede encontrar

en página www.owasp.org

No es el propósito de este trabajo, reescribir los datos encontrados allí, pero es

una invitación para los que requieren del tema de seguridad en las empresas y

hasta en la utilización de aplicaciones a nivel personal, por lo menos se informen

acerca de estos temas.

Qué se puede encontrar en esta página:

Herramientas y estándares de seguridad en aplicaciones.

Libros completos de revisiones de seguridad en aplicaciones, desarrollo de

código fuente seguro, y revisiones de seguridad en código fuente.

Controles de seguridad estándar y librerías.

Capítulos locales en todo el mundo.

Investigaciones de vanguardia.

Extensas conferencias alrededor del mundo.

Listas de correo14

3.5.1. Seguridad en la Construcciones de aplicaciones

14 Consulta realizada el 13-11-2015 disponible en https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf

29

Para evitar problemas de seguridad en una aplicación, es buena práctica construir

la seguridad dentro del Ciclo de Vida de Desarrollo del Software igualmente

probar en todas las etapas y con frecuencia para detectar vulnerabilidades

tempranas dentro del ciclo, que se traducen en correcciones a menor costo. Las

pruebas se deben hacer con entradas no convencionales, es decir, no los datos

esperados por la aplicación sino las excepciones. Es buena práctica La revisión

permanente del código, proceso de comprobar manualmente el código fuente de

una aplicación web en busca de vulnerabilidades15

Si bien es cierto que existen innumerables de fallas que se pueden producir para

mantener protegido los sistemas de información, también es cierto que la mayoría

de ellos ocurren desde el momento mismo de la creación de código ya que

generalmente no se tiene en cuenta la cantidad de riesgos a que se está expuesto

dada la complejidad de la infraestructura digital que maneja todo o que respecta

las información y la comunicaciones que viaja a través de internet.

La Fundación OWASP es una entidad sin ánimo de lucro está tomada como

referente dado que es un proyecto abierto, creado por personas que tienen un

vasto conocimiento en los sistemas y más en lo que se refiere al tema de

seguridad informática, dedicado a la búsqueda y lucha contra las causas de

software inseguro, tiene como fin crear conciencia acerca de la seguridad en la

información, es libre, por tanto cualquier persona se puede afiliar y aportar

conocimientos en pro del beneficio de los usuarios; podría tomarse como una guía

de consulta casi que obligatoria para los desarrolladores de software16

Los documentos originales están creados en el idioma Inglés, pero ya han sido

traducido algunos documentos a varios idiomas incluyendo el español, Podemos

utilizar los documentos y herramientas que ofrecen, OWASP tiene catalogado sus

proyectos en categorías, los proyectos de desarrollo y los de documentación.

Algunos de ellos son:

15 (https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project) https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf 16 Página disponible en https://www.owasp.org

30

Una guía para construir aplicaciones y servicios Web seguros. Documento en español en donde se detalla la seguridad en aplicaciones Web, utilizando diferentes programas como J2EE, ASP, .NE, PHP., disponible en: https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.pdf

Application Security Guide For CISOs. Documento en inglés que trata sobre ayudar a los jefes de los servicios informáticos, a gestionar los programas de seguridad de las aplicaciones. Disponible en: https://www.owasp.org/images/d/d6/Owasp-ciso-guide.pdf

OWASP Cheat Sheet: Trucos para identificar las vulnerabilidades y su defensa

Disponible en: https://translate.google.com.co/translate?hl=es-

419&sl=en&u=https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sh

eet&prev=search

OWASP Categoría de las Vulnerabilidades: Lista de las vulnerabilidades, que

son, como se utilizan y como combatirlas. Disponible en:

https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=sear

ch&rurl=translate.google.com.co&sl=en&u=https://www.owasp.org/index.php/C

ategory:Vulnerability&usg=ALkJrhiPJIJCJW34BetOpiykG70P5dMKVw

Guía de pruebas OWASP: Muestra los procedimientos y herramientas para

probar la seguridad de las aplicaciones y está dedicada para desarrolladores

de software, Testers de software y especialista de seguridad especialmente.

Disponible en:

https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_

ver_3.0.pdf

Guía de revisión de código OWASPO: ofrece verificación de código de las

aplicaciones, aún no está publicado en español, solo en inglés. Disponible en:

https://www.owasp.org/images/2/2e/OWASP_Code_Review_Guide-V1_1.pdf

Lista de preguntas frecuentes con sus respuestas (en Inglés), disponible en:

https://www.owasp.org/index.php/OWASP_AppSec_FAQ

OWASP Top 10-213 – Los diez riesgos o vulnerabilidades más críticas en Aplicaciones Web, Es un documento en donde se relacionan los riesgos y

31

vulnerabilidades más críticas de las aplicaciones Web, explicando que son, como prevenirlas, ejemplos y referencias bibliográficas para documentarse. Disponible en: https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf

La última actualización de los diez riesgos más críticos en aplicaciones Web es

del 2013 tomando como base la actualización de 2010; de acuerdo con un

estudio realizado por la página de OWASP17, catalogaron las 10 principales

vulnerabilidades o riesgos en la seguridad informáticas más críticos de las

aplicaciones Web, en ella está contenido las explicaciones de qué es, el

impacto, y cómo prevenirlos, algunos ejemplos de ataques realizados y

referencias o bibliografías en donde encuentra mayor información. Estos están

catalogados de la siguiente manera:

1. “A1 Inyección: Las fallas de inyección, tales como SQL, OS, y LDAP,

ocurren cuando datos no confiables son enviados a un intérprete como

parte de un comando o consulta. Los datos hostiles del atacante pueden

engañar al intérprete en ejecutar comandos no intencionados o acceder

datos no autorizados”.18

2. “A2 Pérdida de Autenticación y Gestión de Sesiones: Las funciones de

la aplicación relacionadas a autenticación y gestión de sesiones son

frecuentemente implementadas incorrectamente, permitiendo a los

atacantes comprometer contraseñas, claves, token de sesiones, o explotar

otras fallas de implementación para asumir la identidad de otros

usuarios.”19

3. “A3 Secuencia de Comandos en Sitios Cruzados (XSS): Las fallas XSS

ocurren cada vez que una aplicación toma datos no confiables y los envía

al navegador web sin una validación y codificación apropiada. XSS

permite a los atacantes ejecutar secuencia de comandos en el navegador

de la víctima los cuales pueden secuestrar las sesiones de usuario,

destruir sitios web, o dirigir al usuario hacia un sitio malicioso”.20

17 OWASP Top 10 – 2013- Los diez riesgos más críticos en Aplicaciones Web, Disponible en: https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf 18 Ibid, pag. 7 19 Ibid, pag. 8 20 Ibid, pag. 9

32

4. “A4 Referencia Directa Insegura a Objetos: Una referencia directa a

objetos ocurre cuando un desarrollador expone una referencia a un objeto

de implementación interno, tal como un fichero, directorio, o base de

datos. Sin un chequeo de control de acceso u otra protección, los

atacantes pueden manipular estas referencias para acceder datos no

autorizados.”21

5. “A5 Configuración de Seguridad Incorrecta: Una buena seguridad

requiere tener definida e implementada una configuración segura para la

aplicación, marcos de trabajo, servidor de aplicación, servidor web, base

de datos, y plataforma. Todas estas configuraciones deben ser definidas,

implementadas, y mantenidas ya que por lo general no son seguras por

defecto. Esto incluye mantener todo el software actualizado, incluidas las

librerías de código utilizadas por la aplicación.”22

6. “A6 Exposición de Datos Sensibles: Muchas aplicaciones web no

protegen adecuadamente datos sensibles tales como números de tarjetas

de crédito o credenciales de autenticación. Los atacantes pueden robar o

modificar tales datos para llevar a cabo fraudes, robos de identidad u otros

delitos. Los datos sensibles requieren de métodos de protección

adicionales tales como el cifrado de datos, así como también de

precauciones especiales en un intercambio de datos con el navegador.”23

7. “A7 Ausencia de Control de Acceso a las Funciones: La mayoría de

aplicaciones web verifican los derechos de acceso a nivel de función antes

de hacer visible en la misma interfaz de usuario. A pesar de esto, las

aplicaciones necesitan verificar el control de acceso en el servidor cuando

se accede a cada función. Si las solicitudes de acceso no se verifican, los

atacantes podrán realizar peticiones sin la autorización apropiada.”24

8. “A8 Falsificación de Peticiones en Sitios Cruzados (CSRF): Un ataque

CSRF obliga al navegador de una víctima autenticada a enviar una

petición HTTP falsificado, incluyendo la sesión del usuario y cualquier otra

información de autenticación incluida automáticamente, a una aplicación

web vulnerable. Esto permite al atacante forzar al navegador de la víctima

21 Ibid, pag. 10 22 Ibid, pag. 11 23 Ibid, pag. 12 24 Ibid, pag. 13

33

para generar pedidos que la aplicación vulnerable piensa son peticiones

legítimas provenientes de la víctima.”25

9. “A9 Uso de Componentes con Vulnerabilidades Conocidas: Algunos

componentes tales como las librerías, los frameworks y otros módulos de

software casi siempre funcionan con todos los privilegios. Si se ataca un

componente vulnerable esto podría facilitar la intrusión en el servidor o

una perdida seria de datos. Las aplicaciones que utilicen componentes

con vulnerabilidades conocidas debilitan las defensas de la aplicación y

permiten ampliar el rango de posibles ataques e impactos”26.

10. “A10 Redirecciones y reenvíos no validados: Las aplicaciones web

frecuentemente redirigen y reenvían a los usuarios hacia otras páginas o

sitios web, y utilizan datos no confiables para determinar la página de

destino. Sin una validación apropiada, los atacantes pueden redirigir a las

víctimas hacia sitios de phishing o malware, o utilizar reenvíos para

acceder páginas no autorizadas”.27

Herramientas, aplicaciones o programas que permiten aplicar diferentes ataques,

con explicación de cómo funciona un ataque en tiempo real, como:

✔ WebScarab --> ZAP (The Zed Attack Proxy)

✔ Dirbuster

✔ DotNet

✔ ESAPI

✔ WebGoat

✔ Mantra Framework

✔ OWASP Live CD

✔ OWASP AntiSamy Java Project

✔ OWASP WAF

✔ Entre muchos más

3.6. TECNOLOGÍA A IMPLEMENTAR - ACUNETIX WEB VULNERABILITY

SCANNER

25 Ibid, pag. 14 26 Ibid, pag. 15 27 Ibid, pag. 16

34

Con la importancia que tiene la tecnología y la implementación de las diferentes

herramientas que nos proporciona la WEB, los delincuentes informáticos están al

acecho buscando en los sistemas quien tiene más descuidada la información, en

términos de seguridad, para ingresar y robar datos sensibles como claves,

información de tarjetas de crédito o bases de datos de clientes, todo con fines

lucrativos.28

La web, igualmente ofrece diferentes herramientas que permiten si no tener a

salvo la información, por lo menos minimizar los riesgos a que se está expuesto,

para escanear las vulnerabilidades de las aplicaciones en la WEB, se tendrá en

cuenta la herramienta ACUNETIX WEB VULNERABILITY SCANNER

3.6.1. Que es y para qué sirve ACUNETIX WEB VULNERABILITY SCANNER

Creada en 1997 con el fin de realizar análisis de sitios WEB y detección de

vulnerabilidades, es una herramienta que opera como un vigilante de seguridad

virtual que realiza escaneo de las aplicaciones web incluyendo las integradas,

servidores web y servidores perimetrales, su eficacia permite detectar

vulnerabilidades que aparentemente no son detectadas por otras herramientas

mediante el motor de análisis inteligente, demás entrega informes de auditoría

muy confiables.

3.6.2. ¿Qué detecciones realiza?

Son muchas las vulnerabilidades que detecta, entre otras tenemos:

Associada con OpenVAS (Open Vulnerability Assessment System) El escáner de seguridad, es una suite de software que integra servicios y

28 Consulta realizada el 25 de octubre de 2015, ADM TOOLS. Acunetix Web Vulnerability Scaner. Disponible en: http://www.adm-tools.com/portfolio/acunetixwebvulnerabilityscanner/

35

herramientas utilizadas para el escaneo y gestión de vulnerabilidades de seguridad de sistemas informáticos.

Escanea vulnerabilidades a nivel de red Detecta vulnerabilidades de SQL injection en la que los hacker modifican

comandos SQL para ingresar las bases de datos. Cross Site Scripting en la que los atacantes realizan scripts maliciosos en el

navegador del visitante. Ataques de CRLF Injection que se realiza cuando un delincuente

informático es capaz de inyectar datos en una petición a un servidor. Code execution: es una vulnerabilidad muy peligrosa ya que los

delincuentes ejecutan comandos del servidor remotamente. Directory traversal, se realizan cuando no hay seguridad respecto de la

validación de un usuario y acceden al directorio padre. Remote File inclusión, Se da solamente en páginas dinámicas en PHP que

contienen la función include(), dejando enlazar archivos remotos de otros servidores.

Autenticación, consiste en interceptar una sesión de la víctima y esperar a que se identifique para robar su datos

3.7. CREACION DE UNA PÁGINA WEB PARA EL DESARROLLO DEL

PROYECTO.

Dado que para los estudiantes es más cómodo ver una página Web, se ha creado

una página en la que puedan consultar la guía

http://liliseguridadinformatica.webnode.es/

36

4. DISEÑO METODOLÓGICO

4.1. TIPO DE INVESTIGACIÓN:

El tipo de investigación que se ajusta es la proyectiva, debido a que se está

investigando el ciclo de desarrollo de las aplicaciones web seguras, las mejores

prácticas de desarrollo seguro, comparando cada uno de las prácticas y

herramientas de seguridad que se manejan en la actualidad y con base en el

resultado del análisis de la informaciones construye una guía didáctica que sirve

para incluir en la formación de programadores actitudes de desarrollo de software

seguro.

4.2. MÉTODO:

El método de desarrollo del proyecto es sistémico, con base en la integración de

ciclo de vida del desarrollo, de las mejores prácticas de desarrollo de software

seguro produce una guía didáctica para aplicarla en la formación de

programadores.

4.3. PRODUCTO O RESULTADO QUE DEBE GENERAR EL PROYECTO

PROPUESTO

Con este trabajo se pretende realizar una guía de buenas prácticas para el

desarrollo de aplicaciones WEB seguras, para que los estudiantes de las

Instituciones Educativas del Municipio de Medellín que apenas inician en la

construcción de software las adopten convirtiéndolas en hábitos de programación.

De acuerdo con estudios realizados, se ha encontrado que muchos de los

problemas de seguridad en la WEB, se encuentran desde la construcción del

software.

37

4.4. ETAPAS DE LA INVESTIGACIÓN.

Etapa 1: Describir las características de las aplicaciones WEB en cada una de las

etapas del ciclo de desarrollo de software mediante la revisión de literatura y de

estándares, con el fin de identificar las principales vulnerabilidades de cada fase y

los posibles ataques.

Exploración de las características de las aplicaciones web.

Identificación de las vulnerabilidades en cada una de las fases de

desarrollo.

Identificación de los posibles ataques en cada una de las fases

Comparación de características, las vulnerabilidades y los posibles ataques

Validación de las características, las vulnerabilidades y los posibles

ataques identificados.

Etapa 2: Identificar las mejores prácticas con las herramientas de prueba

asociadas, para la construcción de aplicaciones seguras mediante la consulta de

estándares de la industria.

Exploración de herramientas de prueba de seguridad y caracterización

Selección de las herramientas a tener en cuenta en la guía.

Etapa 3: Proponer una Guía de buenas prácticas para el desarrollo de

aplicaciones WEB seguras, orientada a la formación de programadores.

Formulación de las buenas prácticas en cada etapa del ciclo de vida

Validación de la guía con pares académicos de Institución Educativos de la

AFDM

Validación de la guía con una muestra de estudiantes de la AFDM

38

5. RECURSOS DISPONIBLES:

Fuentes: Primarias asesor experto en seguridad

Secundarias Revistas, sitios web de proyectos de seguridad, estándares de

seguridad.

Tabla 1. Recursos indispensables para el desarrollo del proyecto.

Cantidad Artículo Valor

1 Equipo de cómputo portátil para ejecución del trabajo $1.700.000

1 Licencia de Windows $20.000

1 Impresora Láser para la impresión de informes $180.000

1 Conexión a internet para consulta de información $35.000

1 Papelería, tinta de impresora, otros $200.000

TOTAL $2.135.000

39

6. CRONOGRAMA

El plan de trabajo se encuentra organizado a partir de 4 tareas básicas que se

exponen a continuación con las actividades que incluyen:

a. Introducción

Búsqueda de material bibliográfico

Primer acercamiento al campo

Redacción y acoplamiento de la construcción proyecto de investigación.

Primera entrega.

b. Trabajo de campo

Investigación de los temas a tratar.

Realización de las actividades.

Registro de la experiencia de campo

c. Análisis de resultados

Composición de los puntos de la investigación.

Segunda entrega para sugerencias por parte del asesor.

Correcciones y última revisión.

d. Redacción final y presentación de la tesis

40

Tabla 2. Cronograma de actividades.

41

7. BIBLIOGRAFÍA

Chile, G. d. (2008). Guía Digital. Obtenido de Guía Web:

http://www.guiadigital.gob.cl/guia-web

Digital, G. (febrero de 2009). Gobierno de Costa Rica. Obtenido de Guia para el desarrollo

de sitios Web 2.0:

http://www.academia.edu/5852253/Gobierno_de_Gu%C3%ADa_para_el_Desarrol

lo_de_Sitios_Web_2.0_SI_IT_TI_IO_OS_S_W_WE_EB_B_2_2._.0_0_Tabla_de_Cont

enidos

FEAPS, C. (octubre de 2007). Calidad FEAPS. Obtenido de Buenas Prácticas FEAPS:

http://www.feapsmurcia.org/feaps/FeapsDocumentos.NSF/08db27d07184be50c1

25746400284778/84163cd187586d72c1256ffd003e699f/$FILE/queesBBPP.pdf

Lujan, Erika. Programación de aplicaciones WEB: Historia, principios básicos y clientes

WEB. [En línea]. https://books.google.es/books?hlties&lrti&idtir9CqDYh2-

loC&oitifnd&pgtiPR3&dqtiCARACTERISTICAS+DE+LAS+APLICACIONES+WEB&otstiM

izOSh4QCX&sigtig4-zTPoCphwq3Wtdp-

_gGgxfZ5o#vtionepage&qtiCARACTERISTICAS%20DE%20LAS%20APLICACIONES%20

WEB&ftifalse [Citado en 27 de abril de 2015]

Cáceres, P., Marcos, E. Procesos ágiles para el desarrollo de aplicaciones web. [En línea].

https://scholar.google.es/scholar?hlties&qtiCARACTERISTICAS+DE+LAS+APLICACIO

NES+WEB&btnGti&lrti [Citado en 27 de abril de 2015]

De Benito, B. Herramientas para la creación, distribución y gestión de cursos a través de

Internet [Citado en 27 de abril de 2015]. [En línea].

http://edutec.rediris.es/Revelec2/Revelec12/deBenito.html

42

López, Y., Ampuero, M., Infante, A. Formación de roles y buenas prácticas en el trabajo

por la calidad de un ingeniero informático. [En línea].

http://www.scielo.cl/scielo.php?pidtiS0718-

33052011000300008&scripttisci_arttext&tlngtien [Citado en 27 de abril de 2015]

Guía para el desarrollo de sitios Web – Gobierno de Chile. (2007) Recuperado de:

http://www.guiadigital.gob.cl/guiaweb_old/guia-v2/

Guía para el desarrollo de sitios Web – Gobierno de Costa Rica. Recuperado de internet:

http://www.gobiernofacil.go.cr/e-

gob/gobiernodigital/documentos/Guia%20para%20el%20Desarrollo%20de%20Siti

os%20Web%202.0%20-%20Gobierno%20de%20Costa%20Rica.pdf

Hispasec. (2013) OWASP: Los diez riesgos más críticos en aplicaciones WEB Recuperado

de: http://unaaldia.hispasec.com/2013/11/owasp-los-diez-riesgos-mas-criticos-

en.html

Cisco (2014) Autenticación Web en el controlador Wlan. Recuperado de:

http://www.cisco.com/cisco/web/support/LA/111/1118/1118157_web-auth-wlc-guide-

00.html

S. López (2006) Seguridad en desarrollo de aplicaciones Web. Disponible en:

http://www.monografias.com/trabajos75/seguridad-desarrollo-aplicaciones-

web/seguridad-desarrollo-aplicaciones-web2.shtml