Sunteți pe pagina 1din 102

GUA DE BUENAS PRCTICAS PARA EL DESARROLLO DE APLICACIONES

WEB SEGURAS, ORIENTADA A LA FORMACIN DE PROGRAMADORES

LILIANA CJAR BAHAMN

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
ESPECIALIZACIN EN SEGURIDAD INFORMTICA
MEDELLN
2016

GUA DE BUENAS PRCTICAS PARA EL DESARROLLO DE APLICACIONES


WEB SEGURAS, ORIENTADAS A LA FORMACIN DE PROGRAMADORES

LILIANA CJAR BAHAMN

Proyecto de Grado para optar al ttulo de


Especialista en Seguridad Informtica

Director de Cuso: Ing. Ramses Ros Lampriello

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGA E INGENIERA
ESPECIALIZACIN EN SEGURIDAD INFORMTICA
MEDELLN
2016

Nota de aceptacin
Aprobado por el Comit de Grado en
cumplimiento con los requisitos
exigidos por la Universidad Nacional
Abierta y a Distancia UNAD para
optar el ttulo de Especialista en
Seguridad Informtica.

______________________________
Jurado

______________________________
Jurado

Medelln, Abril 16 de 2016

AGRADECIMIENTOS
Dedicado a Dios quien es mi gua y protector, a mi esposo, a mis hijas con todo
mi amor por su apoyo y por haber soportado mi ausencia durante este tiempo y a
mis compaeros de trabajo quienes me alentaron a seguir adelante.

TABLA DE CONTENIDO
Pg.

INTRODUCCIN
RESUMEN

12
14

1.
1.1.
1.2.
1.3.
1.4.
1.5.
1.5.1.
1.5.2.

15
16
16
16
16
17
17
17

PLANTEAMIENTO DEL PROBLEMA


DESCRIPCIN DEL PROBLEMA
FORMULACIN DEL PROBLEMA
ALCANCE DEL PROYECTO
JUSTIFICACIN
OBJETIVOS
Objetivo General
Objetivos Especficos

2.
2.1.

MARCO TERICO Y ESTADO DEL ARTE


BUENAS PRCTICAS PARA EL DESARROLLO DE UN
PROYECTO INFORMTICO
2.1.2. Buenas prcticas
2.1.3. Porque se les llaman buenas prcticas?
2.1.4. Que hace que una prctica sea mal desarrollado?
2.2.
METODOLOGAS GILES
2.3.
METODOLOGIA CMMI
2.4.
PROYECTO INFORMTICO
2.5.
TIPS DE BUENAS PRCTICAS PARA EL DESARROLLO DE
UN PROYECTO INFORMTICO
2.6.
LA SEGURIDAD EN INFORMTICA
2.7.
RIESGOS QUE PUEDEN AFECTAR LA WEB
2.8.
CRIPTOGRAFA
2.8.1. Uso de la Criptografa
2.8.2. Clases de tecnologas criptogrficas
2.8.3. Servicios criptogrficos disponibles
2.9.
IMPORTANCIA DE LAS COMPAAS ESPECIALIZADAS EN
LA SEGURIDAD DE LAS APLICACIONES WEB
2.10.
ARQUITECTURA PARA EL DESARROLLO DE APLICACIONES
WEB
2.11.
WEB HOSTING O ALOJAMIENTO WEB
2.11.1. Consideraciones para escoger un buen Hosting
2.12.
SERVIDOR WEB
2.12.1. Clase de servidores Web
2.12.2. Diferencia existe entre los gratuitos y los que tienen costo
2.13.
DOMINIO
7

18
18
19
19
20
20
22
23
24
26
28
29
30
31
31
33
34
36
36
37
37
38
38

LISTA DE FIGURAS
Pag.
Figura 1-

Estadstica acceso a internet

18

Figura 2-

Etapa de los proyectos giles

21

Figura 3-

Nivel de madurez modelo CMMI

23

Figura 4Figura 5Figura 6-

Proceso de cifrado y descifrado de la informacin


Arquitectura de una aplicacin WEB
Arquitectura de una pgina web esttica

29
34
35

Figura 7-

Arquitectura de una aplicacin web dinmica

35

Figura 8Figura 9-

Web, Hosting y Dominio


Partes del dominio

36
39

Figura 10-

Aplicacin de la herramienta ACUNETX a una pgina

81

Figura 11-

Nivel de vulnerabilidades encontradas

82

Figura 12-

Explicacin de las vulnerabilidades encontradas

83

ANEXOS
Pag.
ANEXO A-

ANEXO B:

Lista de chequeos: DESARROLLO DE UNA APLICACIN


WEB SEGURA

94

Diagrama de flujo: PASOS PARA INGRESAR A LA


GUA DE BUENAS PRCTICAS

98

10

GLOSARIO
APLICACIN WEB: informacin o herramientas a las que un cliente puede
acceder utilizando un servidor web y una conexin a internet, todo esto por
intermedio de un navegador.
DOMINIO: Es el nombre de fcil recordacin que se le da a una pgina web, en
lugar de memorizar el nmero de la direccin IP.
FRAMEWORK: Entorno o ambiente de trabajo para desarrolladores que de
acuerdo con el lenguaje, integra componentes que proporcionan el fcil desarrollo
de las aplicaciones.
HIPERTEXTO: Documento interactivo de lectura que contiene hipervnculos a
otras partes del mismo documento.
HOSTING: Espacio que sirve de hospedaje el sitio web.
HTML (Hyper Text Markup Language o Lenguaje de marcas de hipertexto),
lenguaje empleado para el desarrollo de pginas de Internet. Est compuesto por
una serie de etiquetas que definen el contenido y la apariencia de una pgina web
HTTP (Hyper Text Tranfer Protocol), protocolo que emplean los computadores
para conectarse con el servidor web y hacer su peticin, cuando el servidor
responde, la conexin termina.
INTERFAZ: Es la parte visual de una aplicacin web interactiva o dinmica; es la
comunicacin entre el usuario y la mquina.
PGINA WEB: Informacin como texto, sonido, videos, enlaces, y que est
disponible y a la que se accede a travs de la www.

11

SERVIDOR: Computador en el que se ejecutan los programas que cumplen con


una tarea especfica y que est al servicio de otros computadores.
TCP/IP: (Transmission Control Protocol/Internet Protocol), protocolo que gobierna
las comunicaciones en Internet permitiendo conectar diferentes redes
independientes entre s.
URL (Uniform Resource Locator o localizador uniforme de recursos) secuencia de
caracteres que sirven como medio de localizacin de los recursos que forman la
web en Internet.
WWW: World Wide Web: conocida como la red, es el sistema mundial de
servidores web conectados a Internet

12

INTRODUCCIN
Es innegable la arremetida de las tecnologas de la informacin y la
comunicaciones en todos los entornos tanto empresariales como personales;
identificar lo que tenemos, como protegerlos y prepararnos para defendernos, es
tarea que se debe planificar desde el momento que se adquieren aparatos
electrnicos y se utilizan para agilizar nuestro vertiginoso estado de vida.
El activo ms importante que poseen tanto las organizaciones como las personas
a ttulo personal, es la informacin, es por esto que diariamente se gastan millones
de pesos invirtindole a la seguridad de estos activos y en general a los Sistemas
de Informacin, adems de investigacin acerca de las mejores tcnicas que
existen y que aseguren, ms all de la seguridad fsica, la informacin que hoy en
da se almacena en la nube.
Innumerables empresas se han dedicado a la investigacin de las diferentes
formas de ataque a los sistemas de informacin, la manera de defenderse,
atacarlos o simplemente a evitarlos, unas con infraestructura fsica, otras virtuales,
gratuitas o con algn costo, el todo es que hay una amplia gama para escoger
cul es la que ofrece mejores beneficios para la proteccin de los usuarios como
lo es mejorar la competitividad y por ende su imagen corporativa, optimizacin de
los recursos e inversin tecnolgica, reduccin de costos en daos, proteccin y
continuidad en el negocio entre otros.
Desde el primer momento en que se decide crear una aplicacin web, se debe
tener presente la proteccin y para ello se hace necesaria la documentacin
acerca de los ltimos ataques producidos, la manera como fueron creados y la
forma de prevenirlos; estos pueden atacar desde una base de datos, como la
configuracin de los servicios, el sistema operativo, los accesos a sistemas o
mdulos relacionados, entre otras. Sin embargo, muchas de ellas pueden
prevenirse escribiendo cdigo fuente seguro y protegido contra amenazas
potenciales
El Vivero del Software es un lugar ubicado en la ciudad de Medelln en donde
germina, se incentiva y se fortalece el talento de los jvenes estudiantes de Media
Tcnica en Desarrollo del software de las instituciones educativas del Municipio de
Medelln. Es aqu donde se revela la necesidad de incluir las buenas prcticas
desde el momento mismo de la concepcin de la idea de la creacin de una

13

pgina Web por los estudiantes que comienzan en el mundo del desarrollo del
software.
Observando la poca informacin que tienen los estudiantes acerca de la seguridad
en el momento de la enseanza aprendizaje de las aplicaciones Web, se pens
en la creacin de una gua de buenas prcticas de seguridad en Aplicaciones
WEB desde la elaboracin de software en su etapa incipiente para que sean
adoptadas por los estudiantes de Media Tcnica en Desarrollo del software de las
instituciones educativas del Municipio de Medelln con el propsito de que a futuro
se vea reflejado el trabajo responsable de un desarrollador de aplicaciones web y
que finalmente se traduzca en buenos resultados y personal calificado.
En la actualidad, existen publicaciones que permiten formar un criterio amplio
sobre el tema, algunas que indican cules seran las mejores prcticas bsicas
sobre lo que se debe considerar en el proceso de desarrollo, se propone la
definicin de mejores prcticas como los primeros pasos durante la formacin de
programadores para crear hbitos de construccin de software seguro.
Para el proyecto, The Open Web Application Security Project (OWASP, 2014),
OWASP (la comunidad libre y abierta sobre seguridad en aplicaciones) es muy
importante la informacin que alberga acerca del desarrollo de las aplicaciones
Web, contiene informacin desde el momento de la creacin de la pgina Web,
muestra informacin de cmo se crean las vulnerabilidades desde el momento
mismo de la programacin, las formas de contrarrestarlas, escaneo, ejemplos,
prevenciones y soluciones en caso de dao por intrusin. Se mencionan
igualmente otras pginas que ofrecen informacin gratuita y que son igualmente
pginas serias y bien respaldadas.

14

RESUMEN
El siguiente trabajo recopila informacin acerca de lo que significa la seguridad en
el desarrollo de aplicaciones Web, y pretende crear una gua en la que los
estudiantes de la media tcnica de las instituciones educativas puedan apoyarse
con documentacin seria y responsable ofrecida por personas especializadas,
dedicadas al estudio de las vulnerabilidades, ataques, y las diferentes formas que
existen para prevenirlos o para defenderse en caso de ataque.
Se dan a conocer las vulnerabilidades ms conocidas de acuerdo con estudios
especializados en el tema por empresas con dedicacin exclusiva, con cdigo
abierto y gratuita para las personas que quieran acceder a sus pginas; se
muestran adems, algunas herramientas de escaneo que pueden ayudar a
solucionar algunos problemas relacionados con la seguridad, como tambin
pginas de internet y algunas direcciones que pueden dar solucin o esclarecer en
algunos casos, errores o temas en los que no se posee mucho conocimiento y
ejemplos de casos conocidos.
Esta gua solo pretende encaminar al estudiante hacia soluciones que puedan
ayudarle a desarrollar una aplicacin web segura, no es el caso de copiar o
mostrar como propio lo que ya ha sido escrito y resuelto por otros, es
precisamente llevarlos hacia las pginas que han sido escritas con anterioridad y a
las que se puede acceder confiadamente con la informacin adecuada.
PALABRAS CLAVE: Seguridad. Aplicaciones WEB. Gua. Media Tcnica.
Vulnerabilidades. Ataques. Herramientas. Internet. Cdigo abierto. Escaneo.

15

1. PLANTEAMIENTO DEL PROBLEMA


1.1.

DESCRIPCIN DEL PROBLEMA

El origen de las vulnerabilidades de una aplicacin web puede estar en cualquier


componente de una aplicacin web en construccin, la base de datos, la
configuracin de los servicios, el sistema operativo, los accesos a sistemas o
mdulos relacionados, entre otras. Sin embargo, muchas de ellas pueden
prevenirse escribiendo cdigo fuente seguro y protegido contra amenazas
potenciales.
Estudios de seguridad realizados por Symantec de Norton Secured (Symantec
Norton Secured, 2014), plantean que en promedio el 70% de las aplicaciones web
poseen vulnerabilidades de todo tipo, los problemas de seguridad en los sitios web
se encuentran a nivel de la aplicacin como resultado de malas prcticas en la
construccin 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 bsico de la aplicacin, sino
una concepcin general de los riesgos que puede correr la informacin contenida,
y gestionada por el sistema.
El concepto de la seguridad en las aplicaciones web es un rea de investigacin
que ha pasado a ser vital dentro de la Ingeniera de Software, como resultado del
crecimiento de las aplicaciones en Internet. Los ataques han ido en aumento
dadas las posibilidades de xito que han tenido y se puede decir que sin
consecuencia alguna (Cisco, 2013).
En respuesta, el desarrollador de software no solo debe concentrarse en los
requerimientos de los usuarios y en la autenticacin para el acceso a las
aplicaciones sino en prevenir desde el desarrollo posibles ataques. Esto implica
que en el proceso de diseo y construccin del software se incorporen prcticas
de seguridad como requerimientos crticos del sistema.
Esta gua solo pretende encaminar al estudiante hacia soluciones que puedan
ayudarle a desarrollar una aplicacin web segura, no es el caso de copiar o
mostrar como propio lo que ya ha sido escrito y resuelto por otros, es
precisamente llevarlos hacia las pginas que han sido escritas con anterioridad y a
las que se puede acceder confiadamente con la informacin adecuada.

16

Se ha tomado como modelo el proyecto, The Open Web Application Security


Project, OWASP (la comunidad libre y abierta sobre seguridad en aplicaciones)
Dado que varias de las pginas dedicadas a la seguridad informtica, lo toman de
referente en la investigacin de sus trabajos por su trayectoria, porque es abierto
a todo pblico, porque la informacin que brinda es avalada por comits de
investigacin con personal capacitado e idneo para tal fin.

1.2.

FORMULACIN DEL PROBLEMA

Cmo introducir buenas prcticas de software seguro en la formacin de


programadores de aplicaciones web?
1.3.

ALCANCE DEL PROYECTO

Creacin de una gua de buenas prcticas de seguridad en Aplicaciones WEB


desde la elaboracin de software en su etapa incipiente para que sean adoptadas
por los estudiantes de Media Tcnica en Desarrollo del software de las
instituciones educativas del Municipio de Medelln.
1.4.

JUSTIFICACIN.

En la actualidad, existen publicaciones que permiten formar un criterio amplio


sobre el tema, algunas que indican cules seran las mejores prcticas bsicas
sobre lo que se debe considerar en el proceso de desarrollo, y es muy comn
encontrar informacin de seguridad dirigida a la defensa pero muy poca dedicada
a la prevencin por lo que se propone la definicin de mejores prcticas como los
primeros pasos durante la formacin de programadores para crear hbitos de
construccin de software seguro (UNAM-CERT Coordinacion de seguridad de la
Informacin, 2013)
El Vivero del Software es un lugar ubicado en la ciudad de Medelln en donde
germina, se incentiva y se fortalece el talento de los jvenes estudiantes de Media
Tcnica en Desarrollo del software de las instituciones educativas del Municipio de
Medelln. Es aqu donde se revela la necesidad de incluir las buenas prcticas
desde el momento mismo de la concepcin de la idea de la creacin de una

17

pgina Web por los estudiantes que comienzan en el mundo del desarrollo del
software.

1.5.

OBJETIVOS

1.5.1. Objetivo General


Disear una gua de mejores prcticas de seguridad en desarrollo de
aplicaciones WEB para la incorporacin en los procesos de formacin de los
estudiantes de media tcnica de las Instituciones educativas del Municipio de
Medelln.
1.5.2. Objetivos Especficos
Describir el estado del arte de construcciones de aplicaciones web seguras,
vulnerabilidades y prevenciones para el modelamiento de su ciclo de vida.
Identificar las vulnerabilidades crticas en las fases del ciclo de desarrollo de
aplicaciones web y los ataques, mediante la revisin de literatura y de
estndares
Identificar las mejores prcticas con las herramientas de prueba asociadas,
para la construccin de aplicaciones Web seguras mediante la consulta de
estndares de la industria para disear una gua de mejores prcticas.
Construir una gua didctica par la incorporacin de las mejores prcticas de
seguridad informtica en el proceso de formacin de los estudiantes de
media tcnica.
Disear un espacio web que albergue las guas y los recursos que apoyen el
desarrollo web buscando incorporar prcticas seguras

18

2. MARCO TERICO Y ESTADO DEL ARTE


2.1.

BUENAS PRCTICAS PARA EL DESARROLLO DE UN PROYECTO


INFORMTICO

Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnologa que
existe, en la comunicacin, los juegos, la televisin, la telefona, en fin, cada
negocio, cada casa y particularmente cada persona cuenta con un dispositivo que
le permite comunicarse y estar informado de manera inmediata. Nuestro activo
principal, tanto personal como de empresas es la informacin que se genera ante
cualquier uso de la tecnologa, y todo esto generalmente queda guardado en
nuestros aparatos electrnicos.
El Ministerio de las Tic e Ipsos Napolen Franco presentaron un estudio de
consumo digital en donde revela que en una muestra realizada en octubre de
2012, de 1005 encuestas realizadas:
el 80% de los encuestados usa Internet y que el mayor incremento del uso
de la red se dio en los estratos 1 y 2, con un crecimiento del 17% en
comparacin al uso que le daban en 2010. Tambin se observa que el 54%
de los colombianos que usan Internet, lo hacen todos los das y pasan en
promedio 2,6 horas navegando (MINTIC, 2012)
Figura 1: Estadstica Acceso a Internet

Fuente: Ipsos Napolen Franco. Informe disponible en la pag.


http://www.mintic.gov.co/portal/604/w3-article-1629.html

19

Igualmente, el peridico EL TIEMPO en su edicin del 20 de enero de 2015,


informa que un de acuerdo con estudios realizados por la firma PayU Latam, el
comercio electrnico aumento en un 41,35 en el 2014.
Es importante saber que cuando se utiliza un computador, un Smartphone para
cualquier transaccin comercial o se enva un correo, se necesitan de programas
o aplicaciones que ayuden a obtener y desarrollar la actividad que se requiere, los
desarrolladores de estas aplicaciones, los programadores que manejan pginas
WEB son los actores ms importantes de este intercambio tecnolgico y por
supuesto estn las amenazas, los riesgos y las vulnerabilidades latentes en cada
uno de estos programas y aplicaciones.
Lo primero que se debe tener en cuenta son algunos tips que existen para
proporcionar buenas prcticas en cualquier proyecto informtico.
2.1.2. Buenas prcticas
Son un conjunto de acciones ordenadas, ciertas, coherentes y seguras, con
objetivos claros y procedimientos adecuados, realizadas por personas que ponen
en prctica sus conocimientos en pro de satisfacer una necesidad identificada,
obviamente, cumpliendo con normas, polticas, reglas y estndares que la
certifiquen como apta para ponerla en funcionamiento y que se convierta en un
referente para mejorar otros procesos (FEAPS, 2007).
.
2.1.3. Porque se les llaman buenas prcticas?
Porque cumplen con normas, polticas, estndares y reglas que la hacen
vlida y conforme a la Ley para que cumpla con su perfecto su
funcionamiento.
Porque atacan de raz una necesidad convirtindola en una fortaleza.
Porque el personal encargado son personas calificadas y especializados para
desarrollar la labor.

20

Porque las propuestas son innovadoras y creativas.


2.1.4. Que hace que una prctica sea mal desarrollada?
El tiempo reducido en su ejecucin.
Personal con conocimientos escasos del tema.
Que la necesidad no sea tan evidente.
Desarrollo por investigaciones equivocadas.
Etapas de inicio poco slidas.

2.2.

METODOLOGAS GILES (Canos , Letelier, & Penads, 2003)

No est nada dicho en cuestiones de desarrollo de software, todos los das


aparecen nuevas metodologas y continan en vigencia muchas otras antiguas;
las metodologas giles para el desarrollo del software, tienen como filosofa el
valor hacia el individuo, la colaboracin con el cliente, el desarrollo incremental
con iteraciones cortas que hace de los proyectos efectivos, reduciendo los tiempos
y maximizando la calidad.
Las metodologas giles son un conjunto de mtodos y tcnicas para la gestin de
proyectos de manera que permita entregas. Aunque surgieron en el mbito del
desarrollo de software, tambin tempranas a los clientes, cambiar los requisitos
del usuario y tener un proceso de gestin ligero que permita optimizar el tiempo de
entrega.

21

Figura 2: Etapas de los proyectos giles

Grfico tomado de https://proyectosagiles.org/

De acuerdo con lo que expresan Canos y Penads en su trabajo Metodologas


giles en el desarrollo de software, los valores de las metodologas giles se
basan en los siguientes principios:

La prioridad es satisfacer al cliente mediante tempranas y continuas entregas


de software que le aporte un valor.

Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente
tenga una ventaja competitiva.

Entregar frecuentemente software que funcione desde un par de semanas a un


par de meses, con el menor intervalo de tiempo posible entre entregas.

22

La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del
proyecto.

Construir el proyecto en torno a individuos motivados. Darles el entorno y el


apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.

El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar


informacin dentro de un equipo de desarrollo.

El software que funciona es la medida principal de progreso.

Los procesos giles promueven un desarrollo sostenible. Los promotores,


desarrolladores y usuarios deberan ser capaces de mantener una paz
constante.

La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad.

La simplicidad es esencial. XI. Las mejores arquitecturas, requisitos y diseos


surgen de los equipos organizados por s mismos.

En intervalos regulares, el equipo reflexiona respecto a cmo llegar a ser ms


efectivo, y segn esto ajusta su comportamiento.

2.3.

METODOLOGA CMMI (Capability Maturity Model Integration) (Garzs,


2010)

CMMI es un modelo orientado a la organizacin que permite evaluar la calidad del


proceso de software asociado a una compaa, el fin es evaluar la calidad de una
compaa en el proceso de desarrollo de software, Surge como una iniciativa del
departamento de defensa y es desarrollado y mantenido por la universidad de
Carnegie-Mellon, en el SEI, Software Engineering Institute.

23

CMMI define un esquema evolutivo de mejoramiento de la organizacin,


distribuido en 5 niveles de madurez, en cada nivel se evala la organizacin luego
de lo cual se puede calificar su nivel de madurez, la grfica muestra los niveles

Figura 3: Nivel de madurez modelo CMMI

Grafica Tomada del SEI Grafico Tomado del SEI http://www.sei.cmu.edu/about/

Para los estudiantes de Media tcnica de las instituciones educativas del Municipio
de Medelln, sta tecnologa puede ser adoptada una vez se involucren de lleno
con desarrollo de software robustos

2.4.

PROYECTO INFORMTICO

Un proyecto informtico es el cubrimiento de una necesidad identificada por


alguien y realizado por un grupo de personas conocedoras de las tecnologas de
la informacin y la comunicacin, que construyen un producto de software que
satisfaga esa necesidad. (Astudillo, 2009)
24

2.5.

TIPS DE BUENAS PRCTICAS PARA EL DESARROLLO DE UN


PROYECTO INFORMTICO

Existe tanta literatura como medios para obtener los diferentes tips que hacen
que un proyecto informtico sea reconocido como buen proyecto, porque
cumplen con los lineamientos especficos que lo hacen sobresalir de los dems
proyectos y porque culminan satisfaciendo las necesidades por los que fueron
creados (Castro, 2009). 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 peticin.
Una vez se tenga reconocido el proyecto y lo que se va a hacer, se debe
empezar con la planificacin del trabajo en general, hacer un bosquejo de los
resultados y hacrselo 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 partcipe al cliente de
la evolucin 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
mencin es un apoyo a la gestin de los empleados y que en ningn
momento sustituir al empleado quien es el responsable y decide qu, cundo
y cmo realizar el trabajo.
Tener siempre presente los objetivos del negocio.

25

Tener siempre una comunicacin 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
cmo 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 realizacin del proyecto y
los beneficios que traer a su empresa.
Cuando se dirija al cliente hacerlo en lenguaje ordinario, evitar las palabras
tcnicas que confundan al cliente, los tecnicismos generan desconfianza, las
palabras comunes, hacen que el cliente entienda y confe.
Averiguar quines sern 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 pequeas variaciones en el alcance del proyecto, lo cual implica
reprocesar; esto solo es posible si redunda en mejor calidad en el proyecto y
excelente satisfaccin para el cliente.
26

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
mtodos que se aplican para su solucin desde el levantamiento de
requerimientos, pasando por los modelos arquitectnicos, el diseo, el
programa que se utilizar, el cdigo fuente aplicada y los casos de prueba.
Utilizar diseos 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 cdigo y comprobar su funcionamiento.
Las herramientas que generan cdigo facilitan en gran medida el trabajo.
El diseo es una parte esencial para el desarrollo del proyecto, con ello se
tiene identificado su inicio, avance y culminacin.
Tener claro que en la etapa de requerimientos se debe hacer adems de la
recoleccin y anlisis de los requerimientos, un estudio de factibilidad que
integra la disponibilidad de recursos que se utilizarn para llevar a cabo el
proyecto, objetivos, alcance, limitaciones, costos aproximados, tiempo de
ejecucin, etc.
Existen numerosas herramientas para desarrollo de software, tener en cuenta
las convenciones necesarias de acuerdo con el lenguaje de programacin que
escoja.
2.6.

LA SEGURIDAD EN INFORMTICA

La seguridad informtica no es ms que la accin de proteger mediante


mecanismos tcnicos y legales, los activos ante cualquier amenaza, riesgo o dao
27

que lo pueda atacar, empezando por los activos fsicos con los cuales se crea y
adelantan las labores diarias, y siguiendo con la informacin generada que
finalmente se convierte en el reflejo del buen nombre de la empresa (Ascencio
Mendoza & Moreno Patio, 2011).
El Riesgo es la identificacin de las vulnerabilidades medidas mediante la
probabilidad de que ocurra un suceso y los posibles daos que ocasionara en el
desarrollo de la empresa, es all donde toma parte la seguridad informtica
buscando mecanismos de defensa y proteccin.
Es de vital importancia dirigir la proteccin 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 informacin 1.
La Disponibilidad asegura que la informacin se encuentre al alcance de los que
la necesiten y que estn autorizadas, para ello existen los permisos que se
otorgan a los usuarios, de lectura, de escritura y de ejecucin 2..
La Confidencialidad asegura que la informacin est resguardada y que solo sea
accesible para las personas que cuentan con la autorizacin necesaria para
utilizarla, para la confidencialidad es importante el cifrado de la informacin
relevante3.
Estos tres objetivos podran ser ms eficaces si a cada usuario que haga uso de la
informacin 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 informacin pueda
manipular en un caso dado. Igualmente se debe tener el control de los
movimientos que se presenten con el sistema realizando registros y auditoras,
1 Ibid, Pag 18
2 Ibid, Pag 18
3 Ibid, Pag 17
28

esto garantiza el no repudio (verificacin que una transaccin cualquiera que sea
su naturaleza haya sido entregada y recibida) (Seguridad Informtica, 2013)
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
compaas existen empleados que pueden afectar la informacin ya sea de forma
involuntaria o voluntaria y que pueden poner en riesgo la estabilidad de la
compaa.
2.7.

RIESGOS QUE PUEDEN AFECTAR LA WEB

Cada da el uso de aplicaciones WEB en las compaas se hace ms frecuente


dado el avance tecnolgico en cuanto a comercio electrnico y a la necesidad de
prontitud y facilidad de las transacciones o negocios, las compaas cada da se
ven obligadas a manejar su informacin a travs de la red lo que las hacen
vulnerables ante los ataques informticos.
ESET comenta que la empresa Gartnet Inc. Situada en Stamford, Connecticut,
Estados Unidos, dedicada a la consultora e investigacin de las Tecnologas de la
informacin, estima que el 79% de los ataques informticos estn direccionados
hacia las aplicaciones web y que generalmente stos son producidos con fines de
ganancias econmicas, por tan razn, la seguridad en las aplicaciones debe ser
tenida en cuenta desde el momento del diseo hasta el momento de su ejecucin
(ESET LATINOAMRICA, 2014, pag 15).
Muchas de las aplicaciones que tienen que ver con transacciones comerciales son
objetivos de los delincuentes informticos que tratan de violar la seguridad para
obtener claves, contraseas, nmeros de tarjetas de crdito 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 comunicacin y aunque
la funcin del Firewall es filtrar el trfico de informacin que entra y sale de dos
redes o de computadores que trabajan dentro de una misma red y que deben
cumplir con unas reglas especficas (que en caso de no cumplirse, la informacin

29

es bloqueada), si utiliza estos puertos para permitir la comunicacin, de nada sirve


(UNAM-CERT, sf).
Una de las formas de prevenir estos riegos es a travs de la Criptografa. Existen
variedad de herramientas que permiten detectar las vulnerabilidades de las
pginas web, sin embargo, existen mtodos que ayudan a proteger la informacin
y a mantenerla oculta en caso de ataques cibernticos. Para esto se ha
desarrollado una tcnica importante en el ocultamiento de la informacin, LA
CRIPTOGRAFA.
2.8.

CRIPTOGRAFA

Es la aplicacin de una tcnica, cdigo o conjunto de cdigos que han utilizado


para ocultar informacin importante. Desde tiempos antiguos como en la poca de
los romanos, por necesidad de que no fueran descubiertas sus estrategias de
guerra enviaban cdigos que solo ellos conocan y que nadie poda descifrarlos.
Igualmente se utiliz la mquina Enigma usada en la segunda Guerra mundial
para enviar mensajes cifrados y se han utilizado otros como el cifrado Csar, el
diseo Feistel, etc. (Corrales Snchez, Cilleruelo Rodrguez, & Cuevas Notario, sf)
En nuestra poca, con la llegada de las computadoras, el envo constante de
informacin a travs de los correos electrnicos, las transacciones que se realizan
a travs de la red, se hizo necesario encontrar una manera de esconder de
manera ptima la informacin de manera que se haga inteligible ante cualquier ojo
normal. Guardar informacin importante en los discos duros o en cualquier otro
dispositivo, hace que la informacin all almacenada sea apetecida por cualquier
invasor daino, es por esto que esta informacin, en ocasiones primordial y puede
llegar a ser muy valiosa para la empresa, por tanto esta tcnica que es utilizada
para ocultar informacin importante que no pueda ser accedida por nadie excepto
por el creador y por el receptor de la informacin quien conoce de antemano la
clave; con ello se garantiza la integridad, la confidencialidad y la disponibilidad de
la informacin en tiempo real.
Figura 4: Proceso de cifrado y descifrado de la informacin

Fuente: Construccin propia

30

Algunos ejemplos de algoritmos bsicos de criptografa se pueden consultar en la


pgina de Segu.Info, expertos dedicados en la seguridad informtica, Disponible
en: http://www.segu-info.com.ar/proyectos/p1_algoritmos-basicos.htm
2.8.1. Usos de la Criptografa: La criptografa se cre con el propsito de
esconder informacin de manera que cualquier persona que acceda a ella no
pueda descifrarla fcilmente (Universidad de Valencia, sf).
La Criptografa se ha utilizado para:

Permitir que la informacin solo sea accedida por las personas autorizadas.

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

Que la informacin se pueda consultar en cualquier momento que se requiera.

Hace ms seguras las comunicaciones y permite que mediante el cifrado


simtrica se pueda tener privacidad y velocidad de transferencia al mismo
tiempo.

Con el uso de firmas digitales, se asegura que el acceso a la informacin sea


ms controlado.

Facilitan el comercio electrnico reduciendo los riesgos de robo.

La criptografa no solo es utilizada con fines benvolos, tambin ha sido utilizada


para robos al interior de las compaas.

Fuga de informacin.

31

Encriptacin de informacin con fines ilegales (pornografa, espionaje, msica,


videos etc).

2.8.2. Clases de tecnologas criptogrficas: Existen muchas maneras de encriptar la


informacin, algunas de ellas se conocen como (ngel, sf):
Criptografa Simtrica: Tcnica utilizada en ocultar informacin mediante
una nica clave (nmeros, 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 4.
Criptografa Asimtrica: Tcnica utilizada para el envo y recepcin de
informacin mediante 2 claves, una pblica (conocida por todos) y una privada
(conocida por una sola persona), la seguridad que ofrece la criptografa
asimtrica es que solo las dos claves son utilizadas para el descifrado de la
informacin. La clave pblica la conoce el emisor para encriptar la informacin
y la clave privada es conocida solamente por el receptor para descifrarla. 5
La Firma digital: Tcnica que permite demostrar ante auditores, que los
documentos son propios, se realiza mediante un Hash generado al documento
original, mediante la clave pblica se realiza el hash del descifrado y se
comparan, si coincide, la informacin es veraz y la firma es autntica. Es
importante comprobar las fechas de caducidad o revoque. 6
Certificados digitales: Tcnica que consiste en utilizar un certificado o
paquete de informacin que identifica al usuario que contiene informacin
acerca de ste, como direccin de correo electrnico, clave pblica, pas de
origen, periodo de validez y firma digital del certificado. Generalmente es utilizada
para identificar al titular del emisor de la informacin; es una tcnica utilizada
como refuerzo de las tcnicas anteriores7
4 Ibid pag. 12
5 Ibid., p. 21
6 Ibid., p. 24
7 Ibid., p. 37
32

2.8.3. Servicios criptogrficos disponibles: A continuacin se enumeran algunas


herramientas que ofrecen servicios de encriptacin, generadores de claves
pblicas y privadas y firmas digitales de documentos (Lazalde, 2012):
EncryptOnClick: Aplicacin que sirve para encriptar ficheros protegindolos
con una contrasea 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.
Folder encripter: Aplicacin que permite encriptar y desencriptar mediante
una contrasea, archivos o carpetas.
Softavir-strict: Herramienta que permite ejecutar solamente los programas
que hayan sido aadidos a la lista (Lista blanca), as asegura que no dejara
que ningn 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 aplicacin gratuita que sirve para encriptar archivos y
desencriptarlo mediante contrasea o pin.
Paragon Encrypted Disk SE: Es una herramienta que encripta archivos
mediante imgenes codificadas en diferentes tipos de codificacin.
PGP ENCRYPTER: Programa que permite el cifrado de la informacin,
genera claves pblicas 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.
33

BCArchive : Herramienta para encriptar y desencriptar informacin.


SecureZIP Express: Herramienta disponible para el cifrado de informacin,
expedicin de certificados digitales mediante X.509 y entrega de claves.
2.9.

IMPORTANCIA DE LAS COMPAAS ESPECIALIZADAS


SEGURIDAD DE LAS APLICACIONES WEB

EN

LA

Son muchas las compaas que ofrecen informacin gratuita para los
desarrolladores de aplicaciones WEB, son especializadas en estos temas y llevan
mucho tiempo dedicadas a la investigacin y a la forma de combatir los diferentes
ataques producidos a las aplicaciones web. Su nico propsito es hacer de la
informtica un medio seguro y libre de ataques, aunque esto sea una tarea casi
que imposible dada la creciente proliferacin de delincuentes informticos.
La UNAM-CERT (http://www.cert.org.mx/index.html) es tambin un equipo serio
que da respuesta a incidentes de seguridad informtica liderado por la Universidad
Nacional Autnoma de Mxico, que se encarga de proveer el servicio de respuesta
a incidentes de seguridad a sitios que han sido vctimas, a la alerta mediante la
publicacin de las vulnerabilidades encontradas y a la investigacin en pro de la
mejora respecto de la seguridad de los sitios web. En su pgina
(http://www.seguridad.unam.mx/vulnerabilidadesDB/) ofrece un estudio detallado
de las vulnerabilidades encontradas en el desarrollo de las pginas web desde el
2005 a marzo de 2016, los ataques realizados y la manera de combatirlos.
El OBSERVATORIO TECNOLGICO, liderado por el Ministerio de Educacin,
Cultura y Deporte del Gobierno de Espaa, es un espacio colaborativo para el
profesorado basado en la observacin de la tecnologa informtica y que ofrece
informacin tecnolgica a nivel de software y hardware, adems de la seguridad
informtica, mecanismos de seguridad, vulnerabilidades, polticas etc.
http://recursostic.educacion.es/observatorio/web/es/component/content/article/104
0-introduccion-a-la-seguridad-informatica?start=3
IBM Bluemix es un entorno de plataforma como servicio desarrollado por IBM que
soporta varios lenguajes de programacin y servicios con metodologa
colaborativa en donde se puede crear, aportar y utilizar entre otras, aplicaciones

34

en
la
nube.
En
su
pgina
http://www.ibm.com/developerworks/ssa/rational/library/desktop-mobileapplication-security-design/ ofrece informacin acerca de la seguridad en las
aplicaciones Web y toma como referencia el proyecto OWASP para informar
acerca de las vulnerabilidades, algunos ejemplos de ellas y la forma de prevenir
los ataques y de combatirlos.
OWASP es un proyecto abierto de seguridad en aplicaciones Web, dedicado a
ofrecer alternativas para la confiabilidad desde su desarrollo hasta el
mantenimiento. Ofrece herramientas, documentos, foros etc. de forma gratuita y
abierto para personas que deseen aportar conocimientos en estas reas y de igual
manera
alimentarse
de
la
informacin
especializada.
https://www.owasp.org/index.php/Main_Page
2.10. ARQUITECTURA PARA EL DESARROLLO DE APLICACIONES WEB.
Web es un sitio dentro de internet que ha sido creada para contener informacin a
la que puede acceder desde un motor de bsqueda con un tema especfico,
permitiendo a los usuarios obtener informacin rpidamente con una gama amplia
de alternativas de uso.
Figura 5: Arquitectura de una aplicacin WEB

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

Una aplicacin WEB tiene 3 componentes principales: Servidor web, conexin a la


red y los clientes.

35

Las aplicaciones web en sus inicios solo eran pginas estticas y tenan la
siguiente arquitectura:

Figura 6: Arquitectura de una pgina web esttica

Fuente: Tahuiton J.(2011) Arquitectura de software para aplicaciones Web. Pag. 69,
disponible en: http://delta.cs.cinvestav.mx/~pmalvarez/tesis-tahuiton.pdf

En la actualidad la arquitectura de las pginas Web dinmicas tiene la siguiente


estructura:
Figura 7: Arquitectura de una aplicacin Web dinmica

36

Fuente: Tahuiton J.(2011) Arquitectura de software para aplicaciones Web. Pag. 70,
disponible en: http://delta.cs.cinvestav.mx/~pmalvarez/tesis-tahuiton.pdf

Un cliente realiza una peticin desde un buscador, esta peticin viaja usando una
conexin 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.

2.11. WEB HOSTING O ALOJAMIENTO WEB


Es un computador con una gran capacidad (Servidor) que ofrece a un cliente,
servicios de hospedaje de pginas web (por un tiempo limitado), imgenes,
videos, correo electrnico etc. para que pueda ser accedido por otros
computadores conectados a internet.
Figura 8: Web, Hosting y Dominio

Tomado de http://blog.norihost.com/

2.11.1. Consideraciones para escoger un buen Hosting (Lpez, 2015)

Tener claro para que necesitas registrar un hosting (Para mostrar un blog
personal, para publicar la imagen de una empresa y sus productos o para
manejar un nicho de mercado).

Tener en cuenta el tamao y el uso que queramos darle a nuestra pgina web.

37

El espacio que ofrece.

La gestin de archivos va FTP.

Soporte para scripts perl y Python, php, ASP etc.

Tasa de transferencia de archivos mensuales.

Anlisis de servicios y rendimiento VS costo.

Analizar la plataforma (Linux o Windows) de acuerdo a nuestras necesidades


(pginas estticas o dinmicas).

Verificaciones de los contratos en lo que se refiere al ofrecimiento, multas por


incumplimiento, deberes y derechos suyos y del proveedor (Letra menuda).

Velocidades de acceso ofrecidas, lmites de ancho de banda, impuestos, topes


y costo en caso de sobrepasarlos.

Garantas y soporte, ubicacin, direccin y telfono del proveedor.

Asegurarse de tener COMO MNIMO 256 MB de memoria para el buen


funcionamiento de los procesos de PHP

2.12. SERVIDOR WEB:


Es un equipo o computador que posee una enorme capacidad de almacenamiento
adems de una memoria RAM de proporciones gigantes y una velocidad de
conexin muy superior a los computadores comunes y que se encuentra
conectado a internet sin interrupcin.

38

2.10.1. Clase de servidores Web: Existen varias clases de servidores Web, los que son
gratuitos, y los de costo (compartidos, revendedor, virtuales, dedicados y de
colocacin) (SuperHosting, 2015)
Gratuitos: son los que ofrecen servicio de alojamiento sin ningn costo o
privacidad pero que se sostiene a partir de la publicidad contratada por
terceros para que se ofrece en las pginas alojadas, es muy limitado en
espacio, trfico y calidad del servicio.
Compartido: Es un servicio econmico que permite alojar clientes de varios
sitios diferentes, su rendimiento es bueno para pginas sencillas de pequeas
y medianas empresas.
Revendedor: Espacio usado por grandes usuarios que venden este servicio a
pequeos usuarios.
Virtuales: Usado por empresas de diseo y programacin web por el control
de un computador no compartido mediante el uso de una mquina virtual.
Dedicados: Servicio en el cual un cliente compra o alquila toda la mquina y
as obtiene el control total y su administracin mediante un webmaster que
vigile el buen funcionamiento; su costo es considerablemente alto.
Colocacin: Alquiler o venta de un espacio fsico en un centro de datos, solo
se le suministra la corriente elctrica y la conexin a internet, lo dems lo pone
el cliente.
2.10.2. Diferencia entre servidores gratuitos y los que tienen costo: Los servidores
Web gratuitos son los que ofrecen servicio de alojamiento sin ningn costo pero
que se sostiene a partir de la publicidad que se ofrece en las pginas alojadas,
mientras que los Servidores Web con costo ofrecen mayores niveles de seguridad,
mayores utilidades, mayor capacidad de memoria, mayor amplitud de almacenaje
y soporte.

39

2.13. DOMINIO:
El dominio es el nombre alfanumrico que se le dar a la pgina, (es aconsejable
que el nombre que se escoja sea de fcil recordacin y que tenga alguna relacin
con la actividad o sector econmico de la empresa), adems de la identificacin o
direccin del equipo que est conectado a internet (Web-Gdl.com, 2014).
El Sistema de nombres de dominio o DNS sirve para encontrar una pgina
mediante trminos fciles (http://elcorazon.com) de identificar pues en caso
contrario nos tocara introducir una direccin IP muy larga y complicada para ser
memorizada como (http://209.85.195.104), que en algunos casos son utilizados
por varios dominios.
Figura 9: Partes del dominio

Fuente: Construccin propia

2.14. BUENAS PRCTICAS DE CODIFICACIN ARQUITECTURA PARA EL


DESARROLLO DE APLICACIONES WEB.
Antes de iniciar con la seguridad en aplicaciones, todos los que de alguna manera
deben trabajar con la parte de la seguridad informtica, deben conocer acerca de
lo que significa OWASP (Open Web, Application Security Proyect o en espaol
Proyecto abierto de seguridad de aplicaciones Web), ya que es una organizacin
de personas voluntarias que trabajan en pro de la comunidad, proporcionando
40

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 tecnologa, cualquier informacin al respecto se puede encontrar
en pgina www.owasp.org
Al referirnos a esta pgina en especial no se pretende ignorar los estudios
realizados por otras empresas, pero en su gran mayora, estos se refieren a esta
pgina catalogndola como una de las principales pginas que aborda temas
relacionados con la seguridad en aplicaciones WEB por su trayectoria y seriedad.
No es el propsito de este trabajo, reescribir los datos encontrados all, pero es
una invitacin para los que requieren del tema de seguridad en las empresas y
hasta en la utilizacin de aplicaciones a nivel personal, por lo menos se informen
acerca de estos temas.
En este proyecto (OWASP), www.owasp.org se mencionan algunos temas
importantes relacionados con el desarrollo de aplicaciones Web y la seguridad
aplicada a las mismas, algunas de ellas son temas tratados por su importancia
como:

Herramientas y estndares de seguridad en aplicaciones.

Libros completos de revisiones de seguridad en aplicaciones, desarrollo de


cdigo fuente seguro, y revisiones de seguridad en cdigo fuente.

Controles de seguridad estndar y libreras.

Captulos locales en todo el mundo.

Investigaciones de vanguardia.

Extensas conferencias alrededor del mundo.

41

Listas de correo

2.14.1. Recomendaciones que se debe tener en cuenta para la seguridad en


el diseo de una aplicacin web (Microsoft - Developer Network, 2007).
Asegurarse de que el visitante obtenga la informacin solicitada de manera
gil.
Nombre el dominio llamativo y acorde a los objetivos y al contenido.
Eleccin adecuada del hosting.
Asegurar la navegabilidad.
Utilizar estrategias de SEO para mayor comprensin, optimizacin y
posicionamiento en los motores de bsqueda.
Mantener copias de seguridad constantemente y guardadas en sitios seguros
lejos de la empresa, en caso de emergencias.
El servidor debe estar en un sitio con seguridad lejos de la manipulacin de
extraos.
Vigilancia constante.
2.15. HARDWARE, SOFTWARE Y HERRRAMIENTAS QUE PODRA SER
TILES EN LA CREACIN DE UNA APLICACIN WEB
Una vez que se conozca el objetivo para el cual se va a desarrollar la aplicacin
web, se necesitaran los siguientes implementos para desarrollarla (Belloch, 2013):
Computador con un editor de texto (para personas que tengan conocimientos
amplios de generacin de cdigos) o en su defecto editores online que
permiten crear una aplicacin web sin necesidad de escribir etiquetas de
42

cdigo, hay varias herramientas que ofrecen este servicio en internet en forma
gratuita (las gratuitas son muy limitadas) en tal caso se podra optar por
opciones con algn costo que ofrecen ms variedad (Hipertextual, 2013). Se
mencionan algunas como:
Mockflow: Herramienta que permite crear borradores de pginas web hacer
un prototipo en varias plataformas como Android, iPhone, WordPress, Joomla,
es fcil de manejar con elementos que arrastran y pegan de acuerdo con el
diseo de pgina conveniente.
GuideGuide: Es una extensin de Photoshop, es una herramienta que facilita
el diseo web de una manera fcil e intuitiva.
Lyervault: Herramienta para la gestin de un proyecto de manera colaborativa
ya que guarda y sincroniza cualquier cambio que se haga desde cualquier
dispositivo.
Invision: Herramienta que convierte los diseos en prototipos interactivos y
permite el trabajo colaborativo con el que se puede visualizar el proyecto antes
de comenzar con el desarrollo.
Proto.io: Es una plataforma de creacin de prototipos de aplicaciones en
dispositivos mviles de fcil manejo con solo arrastrar y soltar y no requiere de
codificacin.
Sublime text: Editor de texto y de cdigo fuente multiplataforma, escrito en C+
+ y Python para os plugins, fue creado para facilitar la programacin con una
interfaz oscura y una amplia gama de colores para la sintaxis.
Conocimientos de Lenguaje de programacin HTML (o Leguaje de etiquetas)
HTML es un lenguaje en donde se crean estructuras de documentos
escribiendo mediante cdigo, lo que se quiere que se muestre en pantalla y se
emplea para desarrollar pginas web. Se compone de etiquetas que permiten
al navegador interpretarla y entregarlas de manera amigable al usuario
(Alvarez, 2012).

43

Un ejemplo de ello es el famoso Hola mundo en el lenguaje de Java


1. public class HolaMundo {
2. public static void main(String[] args) {
3.
System.out.println("Hola Mundo");
4.
}
5. }

En el caso de entregar esta informacin en HTML sera:


<html>
<body>
<p> Hola mundo </p>
</body>
</html> (Gonzalez, sf)
Protocolo HTTP (Hipertex Transfer protocol) con el que se intercambia
informacin a travs de internet, permitiendo la transferencia de una pgina o
servicio web desde un servidor hacia el cliente.
Servidor local (No es necesario).
Editor de pgina web (opcional), ofrecen alternativas (Alarcn, 2014). Algunos
editores entre los cuales podemos mencionar algunos como:

coffeCup Free editor (Gratuito y con costo) ayuda contextual a la escritura


de cdigo con vista previa del resultado a medida que se escriba el cdigo.

TextWrangler (Gratuito) Editor para Mac, especializado en cdigo html,


CSS y JavaSrip.

Kompozer (Gratuito) multiplataforma Windows, Mac y Linux, igualmente


ofrece vista previa mientras se escribe el cdigo.

44

Aptana Studio(Gratuito) multiplataforma Windows, Mac y Linux. Ofrece


ayuda contextual cuando se escribe el cdigo HTML, soporta lenguajes
como PHP, Python y Ruby on Rails.

Editor de imgenes Para editar, crear y optimizar imgenes (Nashelil, 2014).


Se mencionan entre otros algunos como:

Pixlr.com (Gratuito), herramienta con variedad de opciones, se puede


trabajar online sin necesidad de registrarse.

Photoshop Express Con controles simples, ofrece muy pocas opciones


comparado con el Photoshop con costo.

Splashup (Gratuito) para trabajo online no necesita registro, tiene una


variedad amplia para los retoques a travs de capas.

PicMagick (Gratuito )Editor de imagen de fcil manejo, no requiere registro

Lenguaje de programacin que permita al cliente la visualizacin de la


informacin, algunos lenguajes como html, CSS, JavaScrip, VBScrip, Flash
entre otros como los ms utilizados actualmente. Otros por el lado del servidor
como Java, Phyton, Ruby, Php, Asp, destacando Java y Phyton como los ms
usados en el mercado actual por sus caractersticas de portabilidad y mejoras
frecuentes.
Frameworks que brinden la estructura tecnolgica y conceptual de la parte
grfica de un sistema informtico y que adems permiten agilidad y
funcionalidad en la aplicacin. Algunos de ellos como SmartGWT de google,
Ext-Gwt, IceFaces, ZK, Symfony etc.
Sistema operativo, programas, aplicaciones, bases de datos <Oracle,
PosgtreSQL, MySQL) etc., los datos (la informacin que se produce mediante
el uso del software y del hardware) y los otros que son los que se necesitan
para el desarrollo de una aplicacin web como el recurso humano, la
infraestructura, papelera etc.

45

2.16. SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIN WEB.


La seguridad que se debe aplicar al crear una aplicacin 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 creacin de una aplicacin
web dinmica es que se puede actualizar constantemente.
Aunque las amenazas que rodean las aplicaciones web estn latentes, es
importante tener en cuenta algunas recomendaciones para minimizar el riesgo,
algunas de ellas seran (Werner, 2010):

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 informacin que


entra y sale.

Asegrese de que se cumpla la orden de utilizar contraseas fuertes y ocultas.

Utilice firewall potentes.

Utilice la criptografa para proteger la informacin sensible.

Para descargas utilice solamente fuentes y pginas confiables.

Desconfe de correos de remitentes desconocidos.

46

Verifique que la direccin comience por https, es una conexin segura y no


utilice computadores pblicos para realizar transacciones.

Controle las entradas y salidas, contactos, informacin, contraseas etc. de las


redes sociales.

47

3.
3.1.

METODOLOGA

TIPO DE INVESTIGACIN

El tipo de investigacin que se ajusta es la proyectiva, debido a que se est


investigando el ciclo de desarrollo de las aplicaciones web seguras, las mejores
prcticas de desarrollo seguro, comparando cada uno de las prcticas y
herramientas de seguridad que se manejan en la actualidad y con base en el
resultado del anlisis de la informaciones construye una gua didctica que sirve
para incluir en la formacin de programadores actitudes de desarrollo de software
seguro.
3.2.

MTODO:

El mtodo de desarrollo del proyecto es sistmico, con base en la integracin de


ciclo de vida del desarrollo, de las mejores prcticas de desarrollo de software
seguro produce una gua didctica para aplicarla en la formacin de
programadores.
3.3.

PRODUCTO O RESULTADO QUE DEBE GENERAR EL PROYECTO


PROPUESTO

Se presenta una gua de buenas prcticas para el desarrollo de aplicaciones WEB


seguras, para que los estudiantes de las Instituciones Educativas del Municipio de
Medelln que apenas inician en la construccin de software las adopten
convirtindolas en hbitos de programacin.
Para ello se dise un sitio web, en donde se encuentra plasmada la gua de
buenas prcticas para que los estudiantes ingresen ms fcil.
(http://liliseguridadinformatica.webnode.es/)
3.4.

ETAPAS DE LA INVESTIGACIN.

Etapa 1: Se hace la descripcin de las caractersticas de las aplicaciones WEB en


cada una de las etapas del ciclo de desarrollo de software mediante la revisin de
48

literatura y de estndares, con el fin de identificar las principales vulnerabilidades


de cada fase y los posibles ataques.

Exploracin de las caractersticas de las aplicaciones web.

Identificacin de las vulnerabilidades en cada una de las fases de desarrollo.

Identificacin de los posibles ataques en cada una de las fases

Comparacin de caractersticas, las vulnerabilidades y los posibles ataques.

Validacin de las caractersticas, las vulnerabilidades y los posibles ataques


identificados.

Etapa 2: Se identifican las mejores prcticas con las herramientas de prueba


asociadas, para la construccin de aplicaciones seguras mediante la consulta de
estndares de la industria.

Exploracin de herramientas de prueba de seguridad y caracterizacin.

Seleccin de las herramientas a tener en cuenta en la gua.

Etapa 3: Proponer una Gua de buenas prcticas para el desarrollo de


aplicaciones WEB seguras, orientada a la formacin de programadores.

Formulacin de las buenas prcticas en cada etapa del ciclo de vida.

Validacin de la gua con pares acadmicos de Institucin Educativos de la


AFDM.

Validacin de la gua con una muestra de estudiantes de la AFDM

49

4. RESULTADOS
Como resultado del trabajo se presenta la siguiente gua de buenas prcticas para
el desarrollo de aplicaciones web seguras, orientada a la formacin de
programadores, la cual ser utilizada por los estudiantes de la media tcnica en
desarrollo de software de las instituciones educativas de la ciudad de Medelln.
4.1 GUA DE BUENAS PRCTICAS
APLICACIONES WEB SEGURAS

PARA LA CONSTRUCCIN DE

Para evitar problemas de seguridad en una aplicacin, es buena prctica 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 aplicacin sino las excepciones. Es buena prctica La revisin
permanente del cdigo, proceso de comprobar manualmente el cdigo fuente de
una aplicacin web en busca de vulnerabilidades (Diz, sf)
Si bien es cierto que existen innumerables de fallas que se pueden producir para
mantener protegido los sistemas de informacin, tambin es cierto que la mayora
de ellos ocurren desde el momento mismo del levantamiento de requerimientos ya
que generalmente no se tiene en cuenta la cantidad de riesgos a que se est
expuesto dada la complejidad de la infraestructura de TI que maneja todo lo
relacionado con la informacin la comunicaciones que viaja a travs de internet.

4.2. APLICACIONES WEB Y SEGURIDAD


Primero que nada debemos saber que la palabra WEB (Acrnimo de World Wide
Web), es una palabra inglesa que tiene como significado red, telaraa o malla y es
utilizada en los medios informticos para referirnos a internet.
Una aplicacin web, es una herramienta que ha sido creada mediante cdigo con
el nico propsito de interactuar con el usuario y cumplir con un propsito
especfico de realizar una orden que le ha solicitado un usuario. Es tambin una
50

herramienta que se ejecuta en internet y por tanto todos los datos archivos, o
historial de navegacin, quedan guardados en la web. Generalmente son
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 informacin en la nube y pueden ser accedidos
desde cualquier computador o dispositivo mvil en cualquier parte del mundo
(Ecured, 2016).
Las aplicaciones web nos ofrecen muchas ventajas como su gratuidad o sea que
se puede obtener una aplicacin que sirva para un fin especfico de manera
gratuita y no necesita descargarse en el computador para poder ejecutarla.
Otras de sus bondades es la accesibilidad ya que como su informacin queda
guardada en la nube, se puede ingresar a ella en cualquier momento y lugar,
igualmente se puede trabajar en ellas de manera simultnea entre varios usuarios.

4.3.

CICLO DE VIDA EN EL DESARROLLO DE APLICACIONES WEB.

El auge que han tenido en los ltimos aos las TIC (Tecnologas de la Informacin
y la Comunicacin) 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 utilizndolas como mtodo de investigacin y hasta de diversin
y esparcimiento.
Es as como cada da 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 partcipe del uso de las tecnologas.
Las aplicaciones web son programas informticos que se realizan a travs 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 mltiples plataformas (Martnez, sf).
Existen muchsimas metodologas para el desarrollo de aplicaciones web, la
variedad de estas metodologas depende de los requerimientos. Igualmente
existen tcnicas de modelado conceptual tradicional, mtodos de diseo

51

orientadas a objetos y tambin existen mejoras del modelo conceptual


implantando modelos de navegacin y presentacin (Silva & Mercerat, sf).
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 (Pereyra,
2008). Estas etapas estn divididas as:

Etapa de levantamiento de necesidades u oportunidades o de requisitos

Etapa de anlisis

Etapa de diseo

Etapa de codificacin,

Etapa de Pruebas

Etapa de instalacin

Etapa de mantenimiento. (Berzal, sf)

4.3.1. 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 informacin, necesidades de navegacin, necesidades de
adaptacin y necesidades de interfaz de usuario. Tambin requisitos especficos
de informacin, terminando con un prototipo de interfaz del usuario.
Esta etapa es el comienzo del proyecto, en donde se deben identificar las
necesidades, los objetivos, e importancia, visualizando el futuro, para el desarrollo
seguro de la aplicacin web, se analizan y se concretan las necesidades del
usuario y los requerimientos para el desarrollo del mismo. Para ello se deben
tener en cuenta los siguientes pasos (Tapiero, 2013)
Pasos a seguir

52

identificar los objetivos del proyecto.


Identificar el pblico objetivo y sus necesidades.
Tener clara la finalidad del sitio web.
identificar los requerimientos y funcionalidades de la aplicacin web.
Detallar el contenido o temas que se quiere mostrar.
Nombre estratgico para el sitio.
Registro de dominio.
Investigar el mercado existente e innovar en diseo, estilo y contenido.
Custodia de la informacin.8
Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los pasos a
seguir se deben tener en cuenta las siguientes temas para minimizar los riesgos:
Permisos para los usuarios.
Inserciones inadecuadas como Virus etc.
Falta de polticas institucionales y procedimentales.
Exposicin de la informacin sensible e importante.
8 Ibid. Pag. 29
53

contraseas impropias.
Medidas insuficientes de proteccin en las redes.

Hosting inseguro, poco confiable y que no concuerden con las necesidades.


Prevencin: En esta etapa es importante tener en cuenta estos pasos para evitar
malos entendidos en el futuro de la aplicacin.
Vigilar (permisos) que las personas que accedan a la pgina, no puedan
vulnerarla.
Establecer polticas de seguridad fsica (sistemas anti-incendios, protecciones
elctricas, vigilancias.
Establecer polticas procedimentales (manuales
obligaciones, responsabilidades, sanciones etc.)

de

procedimientos,

Codificacin de la informacin sensible mediante la criptografa, esteganografa


entre otras.
Concientizacin e implantacin de contraseas fuertes y obligatoriedad de
cambios peridicos.
Vigilancia de las redes y su circulacin (correos electrnicos, voz IP,
navegacin Internet, mensajera, bases de datos etc.).
MZ (zona militarizada) o redes perimetrales de seguridad.
Proteccin como cortafuegos, antispyware, antivirus etc.).

54

Actualizaciones peridicas.
Monitoreo constantes e improvisados en hardware y software.
Usar tecnologas protectoras (Antivirus, Firewall, antispyware, llaves de
proteccin de software, eliminador de huellas de internet, monitoreador de
puertos, etc.)
Escoger un buen hosting con costo porque ofrecen mayor seguridad, soporte,
capacidad, garantas, rendimiento velocidad etc.

4.3.2. Etapa de anlisis: Luego de que el cliente ha expresado sus necesidades, se


realiza entonces el anlisis, se determinan los requisitos que debe tener la
aplicacin, como pblico objetivo, hardware y software a utilizar, mdulos,
requisitos tcnicos, alcance, responsabilidades, plazos, costos, los implementos,
las instalaciones, roles, las contingencias y cubrimientos. (Instituto Mar de Cortes,
sf)
Pasos a seguir
Listar la infraestructura computacional, los implementos a necesitar para el
desarrollo de la pgina, instalaciones locativas, software, hardware.
Determinar los costos y presupuesto.
Asignar roles y responsables.
Determinar fechas de entregas.

Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los pasos a


seguir se deben tener en cuenta las siguientes temas para minimizar los riesgos:
55

Siniestros naturales (Incendio, inundacin etc) o intencionados (robos,


prdidas, fallas en el suministro elctrico, etc.).
Manipulacin inadecuada de la informacin que alimenta la pgina web.
cubrimiento de seguros, fechas, letra pequea.
Prevencin: En esta etapa es importante tener en cuenta estos pasos para evitar
malos entendidos en el futuro de la aplicacin.
Convenios con aseguradoras de bienes muebles.
Copias de seguridad - Backups continuos, seguro (cifrado), remoto (lejos de la
empresa), recuperaciones anteriores.
Reglamentos con penalizaciones y sanciones para los intrusos responsables.
Revisin peridica de seguros.
Creacin y puesta en prctica de manuales y procedimientos claros y
apropiados de acuerdo al nivel de seguridad necesario.
Establecer programas de formacin en seguridad para el personal interno y
para los usuarios.
Mantener informado al personal acerca de las nuevas estrategias de los
atacantes y la forma de evitarlos o combatirlos. (Microsoft TechNet, sf)

56

4.3.3. Etapa de diseo: Propuesta firmada como aceptada, adelanto en dinero, material,
esquemas de diseo o planos del programador, es la manifestacin de la
estructura de la aplicacin.
En esta etapa se elaboran los modelos de interaccin con el usuario, en donde se
expone la solucin a las necesidades expuestas del cliente. En esta etapa se
define que la aplicacin sea comprensible, fcil de usar, clara, accesible, amigable
y que el usuario finalmente logre los objetivos por el cul fue creada la aplicacin;
es la parte primordial en donde se materializan y plasman, la creacin de la
aplicacin web. (Arencibia Cobas, y otros, 2012)
Pasos a seguir
Asegurar la usabilidad, cerciorndose que el usuario obtenga el mnimo de
errores cometidos durante la realizacin de una tarea.
Elaboracin del esquema conceptual: objetos de dominio, relaciones e
interacciones (clases, relaciones y subsistemas).
Elaboracin de diagramas de flujo de cada proceso.
Asegurar la accesibilidad, garantizando el mnimo de posibilidades de fracaso
en el acceso, ofreciendo entre otros el ancho de banda ptimo para la
conexin.
Construir una interfaz
armnicamente creados.

amigable

grata

visualmente,

con

espacios

Asegurar que el diseo debe estar evaluado constantemente por usuarios con
el fin de corregir errores en la marcha.
Determinar un balance entre lo que puede ofrecer el cliente y lo que quiere el
usuario.

57

Definir la estructura del sitio, la topologa de red, la navegacin, las opciones


de desplazamiento entre pginas.
Definicin de requerimientos funcionales.
Definicin de casos de uso
Documentar la estructuracin para tener un modelo de referencia sustentable,
elaborar ndices, mapas del sitio, aplicar metadatos a cada pgina, clasificar
contenidos
Respecto de los contenidos se aconseja seguir el diseo piramidal situando la
parte importante del documento al principio (Cristopher, 2013).

Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los pasos a


seguir se deben tener en cuenta los siguientes temas para minimizar los riesgos:
Cliente o usuario insatisfecho, no encuentra la informacin, no est acorde con
los requerimientos.
Estructura no est acorde con la jerarqua.
Pgina con informacin innecesaria.
Programas, aplicaciones o software gratuito con deficiencias en seguridad.
Prevencin: En esta etapa es importante tener en cuenta estos pasos para evitar
malos entendidos en el futuro de la aplicacin.
Interfaz amigable.

58

El cliente no debe dar ms de 4 clic para encontrar la informacin.


Pgina con la informacin necesaria.
Compra de software garantizado y recomendable por su trayectoria.
Validaciones y monitoreo por parte del cliente y de los usuarios durante la
ejecucin del proyecto.

4.3.4. Etapa de codificacin: Desarrollo del cdigo de acuerdo a la estructura anterior,


los desarrolladores deben conocer la interfaz y el cdigo a desarrollar de acuerdo
con el lenguaje de programacin es la traduccin de la estructura en cdigo que
ofrezcan como resultado una interfaz amigable al cliente.
Dado que es la etapa en la que se presentan mayores vulnerabilidades, es la
requiere mayor profundidad y mayor cuidado en el desarrollo de un proyecto
web. En ella se debe tener claro el tipo de aplicacin (nativa, bajo ambiente web o
hbrida) y el lenguaje de programacin en el que el programador realizar el
proyecto.
Para esta etapa, y luego de un anlisis de las fuentes de informacin citadas, se
tom como base el proyecto abierto de seguridad en aplicaciones Web
(OWASP, Open Web Aplication Security Proyect), liderado por la fundacin
OWASP. La Fundacin OWASP es una entidad sin nimo de lucro est tomada
como referente dado que es un proyecto abierto y por su amplia aceptacin por la
comunidad de desarrolladores web, la fundacin est integrada por personas con
un vasto conocimiento en los sistemas y ms en lo que se refiere al tema de
seguridad informtica, dedicado a la bsqueda y lucha contra las causas de
software inseguro; tiene como fin crear conciencia acerca de la seguridad en la
informacin, es libre, por tanto cualquier persona se puede afiliar y aportar
conocimientos en pro del beneficio de los usuarios; Es una gua de consulta
obligatoria para los desarrolladores de software (OWASP, sf)
Los documentos originales estn creados en el idioma Ingls, pero ya han sido
traducido algunos de ellos a varios idiomas incluyendo el espaol, Podemos
utilizar los documentos y herramientas que ofrecen, OWASP tiene catalogado los

59

proyectos en categoras, los proyectos de desarrollo y los de documentacin. En la


ejecucin de proyectos de aplicaciones web, OWASP ofrece una gua para la
construccin de aplicaciones y servicios Web seguros. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin). Esta pgina, est escrita en idioma espaol, para la fcil
comprensin de los hispanohablantes.
La pgina de OWASP Top 10-213 Contiene los pasos a seguir para la
programacin de una aplicacin Web segura; en esta pgina se ofrece un estudio
detallado de los diez riesgos o vulnerabilidades ms crticas en Aplicaciones Web,
explicando que son, cmo prevenirlas, ejemplos y referencias bibliogrficas como
documentos de apoyo para los programadores documentarse. (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin).
El documento producido por el profesional en seguridad Mario Robles Tencio,
experto en seguridad en Redes, ofrece la descripcin de cada una de las
vulnerabilidades de OWASP con ejemplos de la manera como se presentan
penetraciones de cdigo y las formas de prevenirlos. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin).
El documento de SEGURIDAD EN APLICACIONES WEB de OWASP, escrito por
el Ingeniero de sistemas Carlos Alberto Amaya Tarazona, expone, analiza y
explica vulnerabilidades que afectan el ciclo de vida del desarrollo del software.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Etapa de codificacin).
4.3.4.1. Principales vulnerabilidades:
Son muchos los libros y pgina de internet con informacin respecto de las
vulnerabilidades ms importantes que existen, y la mayora de ellas concuerdan
con la posicin que tiene el proyecto OWASP (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/pasos a
seguir). Para tener una idea de lo que ofrece OWASP de acuerdo con estudios
realizados, citaremos algunas de las vulnerabilidades ms conocidas, frecuentes y
peligrosas (OWASP, 2013):

60

A1: inyeccin: Es un ataque producido mediante insercin de cdigo malicioso


dentro de una consulta en SQL, OS y LDAP, aprovechando la vulnerabilidad en el
nivel de validacin de entradas de operaciones generalmente en una base de
datos9.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Etapa de codificacin/Vulnerabilidades/A1
Inyeccin), all, se explica claramente cmo se produce un ataque por inyeccin y
algunos consejos de cmo evitarlos

Como identificar si una aplicacin es vulnerable.

Verificando que se separe la informacin no confiable del comando o


consulta, usando variables parametrizadas en todas las sentencias
preparadas y procedimientos almacenados, evitando las consultas
dinmicas.

Utilizar herramientas de anlisis de cdigos.

Anlisis dinmico automatizado en donde se detecta el ataque mediante


manejo de errores.

Cmo prevenirlos.

Utilizar una API (Application Programming Interface o reglas que las


aplicaciones siguen para comunicarse entre ellas) segura que evite el uso
de intrpretes o provea una interface parametrizada.

Si la API no est disponible se deben codificar los caracteres especiales


usando sintaxis de escape; (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A1 Inyeccin), all, se encuentra una prctica que ofrece
informacin acerca de la validacin de datos de entrada de las aplicaciones
y la forma de sanearlos adecuadamente; en esta misma direccin, en la

9 Ibid, Pag. 7
61

pgina 4, se encuentra las vulnerabilidades de desbordamiento de memoria


(buffer overlow) y la pgina 5 ofrece pruebas con la biblioteca criptogrfica
de Java y su correcto uso.

Validacin de entradas positivas o lista blanca, estas ESAPI OWASP, ofrece


libreras de rutinas de validacin positiva.

Ejemplos de ataques: muestra algunos ejemplos de cdigos en los que se


presentan los ataques por inyeccin.
Ofrece pginas de referencias en donde se entregan las diferentes formas de
ataques y la manera de prevenirlos como los que se muestran en las
siguientes pginas:

En esta pgina, explican de que se trata esta vulnerabilidad, cmo se


realiza, actividades y ejemplos, factores de riesgos, formas de combatirlos
etc.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A1 Inyeccin)

Trucos para la prevencin del ataque de Inyeccin, disponible en la pgina:


(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A1 Inyeccin)

Trucos de parametrizacin de consultas SQL, en esta direccin se


muestran algunos ejemplos de cmo construir consultas con parmetros
con el fin de evitar la inyeccin de SQL en la construccin de consultas de
base:
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A1 Inyeccin)

Otros factores de riesgo como ataques a entidades externas XML contra


una aplicacin con entrada XML, algunos ejemplos (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A1 Inyeccin)

62

Ofrece igualmente algunas pginas externas confiables en donde se


muestran algunos ejemplos de inyeccin de comandos como: (Ver la Gua
de buenas prcticas disponible en liliseguridadinformtica.webnode.es
Etapa de codificacin/ Vulnerabilidades/ A1 Inyeccin)

A2: Prdida de autenticacin y gestin de sesiones: Cuando las claves o


informacin sensible no es protegida adecuadamente, el atacante aprovecha estas
vulnerabilidades que generalmente son ofrecidas en el cierre de sesin, en la
gestin de las contraseas, en el tiempo de desconexin, en la funcin de recordar
contrasea, para robar la informacin sensible, incluyendo un script en una pgina
web que se ejecuta cuando el usuario la utiliza. Generalmente se presentan
cuando se gestionan las contraseas, cuando expiran las sesiones, cuando se
recuperan valores automticamente, cuando el usuario solicita recordar
contrasea etc.10
En la pgina de OWASP tambin se encuentra informacin como:
Identifica la vulnerabilidad si:

Falta de proteccin en el almacenamiento de las credenciales de los


usuarios cuando se utiliza hash o cifrado.

Adivinacin cuando las ID son dbiles.

Falta de expiracin de credenciales, de sesiones o de tokens de


autenticacin.

Informacin sensible enviada por canales no cifrados.

Forma de prevenirlos;

Cumplir con los requisitos de autenticacin y gestin de sesiones, para ello


nos dirige hacia las pginas de OWASP que ofrecen este servicio.

10 Ibid, pag. 8
63

Tener una interfaz para desarrolladores y ofrece pginas con ejemplos de


muestra.

Recomienda la necesidad de evitar vulnerabilidades de XSS.

Se recomienda cerrar sesin (No cerrar ventanas).

Eliminar las opciones de recordar contraseas, pregunta secreta.

Ingreso de identificadores no vlidos.

Ejemplos de escenarios de ataques y formas de prevenirlos.

Las referencias ofrecidas en OWASP como la gua de autenticacin


ofrecida en la pgina (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A2- Prdida de autenticacin y Gestin de sesiones)

Trucos para la prevencin de este ataque (Ver la Gua de buenas prcticas


disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A2- Prdida de autenticacin y Gestin de sesiones)

Algunos pasos a seguir en la obtencin de la clave segura en caso de


olvido.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A2- Prdida de autenticacin y Gestin de sesiones)

Trucos en el manejo de sesin. (Ver la Gua de buenas prcticas disponible


en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A2- Prdida de autenticacin y Gestin de sesiones)

64

Diferentes pruebas para la autenticacin verificando la identidad digital con


sus ejemplos correspondientes. (Ver la Gua de buenas prcticas disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A2- Prdida de autenticacin y Gestin de sesiones)

Y algunas pginas externas que tambin ofrecen ejemplos y manera de


corregirlos adems de la prevencin de este ataque, disponible en: (Ver la
Gua de buenas prcticas disponible en liliseguridadinformtica.webnode.es
Etapa de codificacin/ Vulnerabilidades/ A2- Prdida de autenticacin y
Gestin de sesiones)

A3: secuencia de comandos en sitios cruzados (xss) o cross site scripting


(XSS): Generalmente utilizada mediante correos engaosos en los que los
atacantes utilizan un buscador insertando un mensaje de alerta en JavaScript o
mensaje en HTML, que hace que la vctima ejecute un comando dentro de su
direccin web para luego robar las cookies y por consiguiente la identidad. 11
Identifica la vulnerabilidad si:

No se verifica de forma adecuada en el momento de ingreso, la entrada de


datos por los usuarios.

Las aplicaciones ofrecen pginas de salida utilizando intrpretes como


JavaScript, ActiveX, Flash o Silverlight, dificultando la deteccin automtica
de las vulnerabilidades de XSS, sin embargo se podran obviar aplicando
tcnicas de revisin de cdigo y pruebas de penetracin en forma manual.

Forma de prevenirlos

Separar los datos no confiables basados en HTML del contenido activo del
navegador, para ello OWASP ofrece algunos de trucos o cheat Sheets
para aplicar las tcnicas en las rutinas de programacin de una aplicacin
WEB. En la siguiente pgina encontraremos las tcnicas de prevencin:
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A3-Secuencia de comandos en sitios cruzados XSS) .

11 Ibid, pag. 9
65

Igualmente, se deben validar las entradas positivas o de lista blanca, o sea


validar el largo, los caracteres, el formato y las reglas antes de aceptarlo
como entrada.

Recomienda utilizar bibliotecas de sanitizacin como AntiSamy para


contenido en formato enriquecido (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-3 Secuencia de comandos en sitios cruzados XSS) .

Ejemplos de ataques y maneras de prevenirlos se puede encontrar en la


pgina
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Etapa de codificacin/ Vulnerabilidades/
A-3 Secuencia de comandos en sitios cruzados XSS) .
Referencias o pginas web en donde se puede encontrar informacin al
respecto.

Autenticacin cheat Sheets(Ver la Gua de buenas prcticas disponible en


liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-3 Secuencia de comandos en sitios cruzados XSS) .

Prevencin de trucos Cross-Site Request Forgery (CSRF) (Ver la Gua de


buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa
de codificacin/ Vulnerabilidades/ A-3 Secuencia de comandos en sitios
cruzados XSS).

Trucos de almacenamiento criptogrfico (Ver la Gua de buenas prcticas


disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-3 Secuencia de comandos en sitios cruzados XSS) .

Trucos de proteccin de la Capa de transporte (Ver la Gua de buenas


prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-3 Secuencia de comandos en sitios
cruzados XSS).

66

Trucos de prevencin de XSS (Cross Site Scripting) (Ver la Gua de buenas


prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-3 Secuencia de comandos en sitios
cruzados XSS).

Utilizar polticas de seguridad de contenido (CSP) para defender contra


XSS, en: (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-3 Secuencia de comandos en sitios cruzados XSS) .

A4 Referencia directa insegura a objetos: Esta vulnerabilidad se da cuando


los accesos a recursos no cuentan con el debido control y cualquier usuario puede
manipular la informacin. Un desarrollador expone una referencia un objeto de
implementacin interno (fichero, base de datos o directorio) sin la debida
proteccin.12
Identifica la vulnerabilidad si: se verifica que todas las referencias a objetos
tienen las protecciones apropiadas, entre ellas verificar que el usuario tiene el
permiso para acceder a un recurso especfico, esto para referencias directas a
recursos restringidos. En el caso de una referencia indirecta, se debe limitar
los valores autorizados a un usuario.
Cmo prevenirlos: Utilizando referencias indirectas por usuario o sesin,
ESAPI de OWASP incluye relaciones secuenciales y aleatorias de referencias
de acceso con el fin de que se eliminen las referencias directas a objetos. Otra
manera de prevenirlo es comprobando el acceso mediante comprobacin de
control de acceso.
Ejemplos de ataques y maneras de prevenirlos se puede encontrar en la
pgina:
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Etapa de codificacin/ Vulnerabilidades/
A-4 Referencia directa insegura a objetos).
Referencias o pginas web en donde se puede encontrar informacin al
respecto.

12 Ibid, pag 10
67

Una pgina que entrega informacin acerca de esta vulnerabilidad, las


debilidades, la seguridad aplicada, escenarios de ataques con ejemplos,
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-4 Referencia directa insegura a objetos).

ESAPI DE OWASP, coleccin gratuita y abierta de los mtodos de


seguridad que un desarrollador debe saber para construir una aplicacin
web segura. Es una pgina en construccin, por ello, ofrece respuestas en
el foro: (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-4 Referencia directa insegura a objetos).

Algunas referencias de pginas externas (CWE Common Wwakness


Enumeration), que ofrecen un ejemplo de ataque de referencia a un objeto
directo.
(Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-4 Referencia directa insegura a objetos).

A5 Configuracin de seguridad incorrecta: Este ataque se presenta cuando


se ha realizado mal la configuracin en las aplicaciones, en los servidores, en las
bases de datos o en el sistema operativo. Generalmente se producen cuando
existen pginas sin uso, fallas sin el parche correspondiente, archivos y directorios
sin proteccin.13
Identificar la vulnerabilidad: verificar que las aplicaciones cuenten con
actualizaciones, vigilar que no estn habilitados caractersticas innecesarias
como puertos, servicios, pginas, cuentas etc., vigilara el cambio de
contrasea peridico, configurar las libreras a valores seguros.
Como prevenirlos:

Proceso de fortalecimiento para un entorno asegurado. Los entornos de


desarrollo, QA y Produccin deben ser igualmente configurados con
diferentes claves en cada entorno.

13 Ibid, pag 11
68

Mantener actualizaciones y parches, incluyendo las libreras de cdigo.

Fuerte arquitectura de aplicacin para una separacin segura entre los


componentes.

Ayudarse con aplicaciones que realicen escaneos y auditorias peridicas


que detecten los fallos.

Ejemplos de escenarios de este ataque.


Referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.

Gua de configuracin de seguridad OWASP en donde se evidencian los


errores y las soluciones para evitar errores de configuracin. (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-5 Configuracin de Seguridad Incorrecta).

Gua para la revisin de cdigo para ciertas vulnerabilidades y entrega


informacin sobre el riesgo asociado con el cdigo inseguro. (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-5 Configuracin de Seguridad Incorrecta).

Informacin acerca de las pentesting aplicado a los cdigos y los errores


producidos y su correspondiente explicacin. (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-5 Configuracin de Seguridad Incorrecta).

Definicin de cuatro niveles de verificacin de seguridad a nivel de aplicacin


con sus requisitos de verificacin. (Ver la Gua de buenas prcticas disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-5 Configuracin de Seguridad Incorrecta).

Algunas pginas externas como una Gua de configuracin de seguridad CIS,


Ver
la
Gua
de
buenas
prcticas
disponible
en

69

liliseguridadinformtica.webnode.es Etapa de codificacin/ Vulnerabilidades/


A-5 Configuracin de Seguridad Incorrecta).
A6 Exposicin de datos sensibles: Ocurre cuando el atacante puede acceder
fcilmente a los datos sensibles almacenados en la aplicacin o cuando se envan
datos a travs del correo. Esto generalmente ocurre con fraude en tarjetas de
crdito o robos de identidad.14
Identificar la vulnerabilidad: Una vez se tienen identificados los datos sensibles
como contraseas, nmeros de tarjetas de crdito informacin personal, se
identifica la vulnerabilidad si estos datos se almacenan en texto claro, o son
trasmitidos por internet textualmente, o se generan claves dbiles.
Como prevenirlos:

Estar atento ante las posibles amenazas tanto al interior de la compaa


como en la parte externa de ella.

No almacenar datos sensibles innecesariamente.

En caso de almacenar informacin sensible, asegurarse de cifrarlos.

Asegurarse de aplicar claves fuertes con todas las especificaciones.

Deshabilitar el autocompletado y el almacenamiento en cache de las


pginas que contengan datos sensibles.

Ejemplos de escenarios de este ataque.


Referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.
14 Ibid, pag 12
70

Este documento ofrece verificacin estndar de seguridad en las


aplicaciones y las diferentes maneras de comprobar si se cumplen con los
requisitos de resguardo de informacin sensible. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-6 Exposicin de datos sensibles).

Trucos para almacenamiento criptogrfico. (Ver la Gua de buenas prcticas


disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-6 Exposicin de datos sensibles).

Trucos para almacenamiento de contraseas: (Ver la Gua de buenas


prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-6 Exposicin de datos sensibles).

Truco para la proteccin en la capa de transporte. (Ver la Gua de buenas


prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-6 Exposicin de datos sensibles).

Pruebas para SSL dbil, TLS sistemas de cifrado y proteccin en a capa de


transporte. (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-6 Exposicin de datos sensibles).

Algunas referencias externas como: CWE Common Weakness


Enumeration: cuestiones de cifrado, problemas criptogrficos. (Ver la Gua
de buenas prcticas disponible en liliseguridadinformtica.webnode.es
Etapa de codificacin/ Vulnerabilidades/ A-6 Exposicin de datos
sensibles).

A7 Ausencia de control de acceso a funciones: Esta vulnerabilidad se da por


la falta de validacin en el procesamiento de URLs con las que se puede invocar
recursos sin los derechos apropiados o pginas ocultas. 15
Identificar la vulnerabilidad: Verificar cada funcionalidad de la aplicacin.
15 Ibid, pag 13
71

Verifique que el usuario muestre la navegacin en lugares autorizados

Vigile la autenticacin del servidor.

Realice pruebas de proxies con un rol privilegiado y luego con un rol menos
privilegiado.

Revise el control de acceso en el cdigo.

Como prevenirlos:

Tener un mdulo de autorizacin invocado desde las funciones del negocio


que tengan varios componentes externos al cdigo de la aplicacin.

Permisos con auditorias y actualizaciones frecuentes e implementarlos


directamente en el cdigo sin utilizar parametrizaciones.

El acceso debe ser restringido y negar el acceso por defecto con permisos
especfico a cada funcionalidad.

Ejemplos de escenarios de este ataque.


Referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.

Esta pgina entregada por OWASP, da cuenta de esta vulnerabilidad,


explicando los motivos por el cual se da, la forma de protegerse y algunos
ejemplos (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-7 Ausencia de control de acceso a las funciones).

72

La interfaz AccessController ofrecida por ESAPI, define un conjunto de


mtodos que se pueden utilizar en aplicaciones para hacer cumplir el
control de acceso, adems de algunos ejemplos. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-7 Ausencia de control de acceso a las
funciones).

En esta pgina se ofrece una gua con la que se asegura que el usuario
autenticado tiene los privilegios adecuados para acceder a los recursos de
acuerdo con el rol correspondiente. (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-7 Ausencia de control de acceso a las funciones).

Algunas referencias externas como: CWE Common Weakness


Enumeration: respecto de autorizaciones incorrectas o inadecuadas,
ejemplos, formas de correccin, (Ver la Gua de buenas prcticas disponible
en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-7 Ausencia de control de acceso a las funciones).

A8 - Falsificacin de peticiones en sitios cruzados (CSRF) Un ataque CSRF


obliga al navegador de una vctima autenticada a enviar una peticin HTTP
falsificado, incluyendo la sesin del usuario y cualquier otra informacin de
autenticacin incluida automticamente, a una aplicacin web vulnerable. Esto
permite al atacante forzar al navegador de la vctima para generar pedidos que la
aplicacin vulnerable piensa son peticiones legtimas provenientes de la vctima. 16
Identificar la vulnerabilidad: Verificar cada funcionalidad de la aplicacin.

Verificar la ausencia de token impredecible en cada enlace y formulario


solicitando al usuario que demuestre su intencin de enviar la solicitud
mediante pruebas como un capcha.

Verificar los enlaces y formularios que invoquen funciones que permitan


cambios de estados.

16 Ibid, pag. 14
73

Verificar operaciones de mltiples pasos, estos se pueden falsificar


mediante uso de etiquetas o cdigo Javascript.

Se ofrece la herramienta CSRF Tester de OWASP que ayudan a demostrar


los daos y peligros de fallos de este tipo.

Como prevenirlos:

Incluir un token no predecible en cada solicitud HTTP nicos por cada


sesin del usuario.

Incluir el token en un campo oculto para que el valor se enve en el cuerpo


de la solicitud HTTP.

El token puede ser incluido en la propia URL o un parmetro de la misma


(esta opcin ofrece riesgo).

Requerir la autenticacin doble mediante CAPCHA.

Ejemplos de escenarios de este ataque.


Algunas referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.

Trucos para la prevencin de falsificacin de peticiones en sitios cruzados


(csrf) y su explicacin de porqu es importante prevenirlo o atacarlo, las
tcnicas de uso, recomendaciones y algunos ejemplos etc, (Ver la Gua
de buenas prcticas disponible en liliseguridadinformtica.webnode.es
Etapa de codificacin/ Vulnerabilidades/ A-8 Falsificacin de peticiones en
sitios cruzados (CSRF).

Biblioteca que implementa una variante de patrn de contadores que


mitigan el riesgo de Cross-Site, (Ver la Gua de buenas prcticas disponible

74

en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-8 Falsificacin de peticiones en sitios cruzados (CSRF).

Interfaz HTTPUtilities es una coleccin de mtodos que dan seguridad a las


solicitudes HTTP, las respuestas, las sesiones, las cookies, los
encabezados etc. (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-8 Falsificacin de peticiones en sitios cruzados (CSRF).

StackExchange es una comunidad de programadores que se ayudan unos


a otros con el fin de encontrar soluciones a ataques a aplicaciones web, y
se encuentra informacin acerca de CSRF (Cross-Site solicitud de
falsificacin) preguntas y respuestas. (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-8 Falsificacin de peticiones en sitios cruzados (CSRF).

Algunas referencias externas como CWE Common Weakness Enumeration


en donde se explica cmo se realiza el ataque, las consecuencias, los
mtodos de deteccin y algunos ejemplos demostrativos. (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa
de codificacin/ Vulnerabilidades/ A-8 Falsificacin de peticiones en sitios
cruzados (CSRF).

A9 - Utilizacin de componentes con vulnerabilidades conocida: Es una


vulnerabilidad a travs de la cual el atacante identifica o conoce mediante
escaneos o anlisis manuales, los componentes dbiles de una aplicacin web
como los frameworks y ejecuta el ataque.17
Identificar la vulnerabilidad: Esta vulnerabilidad es difcil de identificar dadas las
versiones de los componentes, solo se puede verificar buscando en las bases
de datos de sitios con CVE (Common Vulnerabilities and Exposures ) y NVD
(National Vulnerability Database), si existe ya que cada referencia de
vulnerabilidad tiene un nmero de identificacin nico que detalla en que
consiste la vulnerabilidad, qu versiones de software estn afectadas y la
posible solucin, adems de la configuracin de los equipos para prevenirlo 18.

17 Ibid Pag. 15
75

Como prevenirlos:

Identificar las versiones que estn usando los componentes, incluyendo


dependencias, en este caso podra no usar componentes sin codificar.

Revisar la seguridad del componente en bases de datos pblicas CVE y


NVD, lista de corros del proyecto y lista de correo de seguridad.

Mantener actualizados los componentes.

Establecer polticas de seguridad, pasar test de seguridad, licencias


aceptables etc.

Agregar capas de seguridad alrededor del componente para deshabilitar


funcionalidades sin utilizar.

Ejemplos de escenarios de este ataque.


Algunas referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.

La pgina Redes@Zone, ofrece algunos manuales para proteger los


sistemas y realizar auditoras, adems de ejemplos y en algunos casos
videos. (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-9 Uso de componentes con vulnerabilidades
conocidas).

Dependency-Check es una utilidad que identifica las dependencias y los


controles del proyecto, soportan los proyectos de Java, .NET, Ruby,
Node.js, y Python; Adems, el soporte limitado para proyectos de C / C ++
est disponible para proyectos usando CMake o autoconf. (Ver la Gua de

18 Pgina consultadas el 5 de diciembre de 2015, disponible en:


http://www.redeszone.net/2015/06/20/la-base-de-datos-nacional-devulnerabilidades-de-estados-unidos-es-vulnerable-a-un-cross-site-scripting/
76

buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa


de codificacin/ Vulnerabilidades/ A-9 Uso de componentes con
vulnerabilidades conocidas).

OWASP Good Component Practices Project, es un proyecto con las


mejores prcticas para la gestin de la vulnerabilidad Componente, dentro
de las aplicaciones empresariales como las puertas de enlace, procedencia,
integracin dentro del entorno del desarrollo etc. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-9 Uso de componentes con
vulnerabilidades conocidas).

Reportajes e investigaciones acerca del uso de cdigo abierto: (Ver la Gua


de buenas prcticas disponible en liliseguridadinformtica.webnode.es
Etapa de codificacin/ Vulnerabilidades/ A-9 Uso de componentes con
vulnerabilidades conocidas).

Referencias externas como CVE (Common Vulnerabilities and Exposures)


diccionario de vulnerabilidades conocidas de la seguridad de la informacin
y la comunicacin. (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es
Etapa
de
codificacin/
Vulnerabilidades/ A-9 Uso de componentes con vulnerabilidades
conocidas).

Lista de vulnerabilidades corregidas de Ruby on Rails con la


recomendaciones de las versiones a actualizar, (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-9 Uso de componentes con
vulnerabilidades conocidas).

A10 Redirecciones y reenvos no validados: Vulnerabilidad producida por la


necesidad propia de la aplicacin de re-direccionar al usuario a una pgina no
segura, el atacante crea enlaces para que la vctima haga clic que luego son
llevados a una aplicacin de confianza y all los atacantes instalan el cdigo
malicioso.19
Identificar la vulnerabilidad:
19 Ibid Pag. 16
77

Revisar el cdigo para detectar redirecciones o reenvos (llamados


transferencias en .NET), identificar si la URL se incluye en el valor de un
parmetro y si est validada con una lista blanca.

Modificar la URL de destino en caso de redireccin de cdigos de respuesta


DTTP 300-307, tpicamente 302, observando los parmetros antes de la
redireccin si son una URL de destino o un recurso de la misma.

Revisar si cada parmetro forma parte de una redireccin o un reenvo de


una URL de destino y probar que hace.

Como prevenirlos:

Evitar el uso de redirecciones y reenvos

No involucrar parmetros manipulables por el usuario para definir el


destino.

Si se hace necesario utilizar parmetros de destino, asegrese de que el


valor suministrado sea vlido y autorizado para el usuario.

Se recomienda utilizar parmetros de destino con valor de mapeo, se


puede utilizar ESAPI para asegurarse que los destinos redirigidos sean
seguros

Ejemplos de escenarios de este ataque.


Referencias que nos preparan ante esta vulnerabilidad y la forma de
protegerse.

78

La pgina de Mundo Informtico, est dedicada a la informacin acerca de


las vulnerabilidades y la seguridad informtica, explica en forma clara con
ejemplos de cmo se producira este ataque. (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Etapa de
codificacin/ Vulnerabilidades/ A-10 Redirecciones y reenvos no vlidos).

OWASP ofrece algunos trucos sobre redirecciones sin validar, explicando


en que consiste, con ejemplos de cmo se puede redirigir un usuario a otra
pgina sin la opcin de clic en varios lenguajes de programacin.

Paquete de informacin de OWASP ESAPI, con la forma de cmo construir


un cdigo con la respuesta de mtodos inseguros en la API de
HttpServletResponse con versiones seguras entre otras. (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Etapa
de codificacin/ Vulnerabilidades/ A-10 Redirecciones y reenvos no
vlidos).

Algunas referencias externas como CWE Common Weakness Enumeration


en donde se explica cmo enterarse si una URL de redireccin a un sitio no
es de confianza con algunos ejemplos. (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Etapa de codificacin/
Vulnerabilidades/ A-10 Redirecciones y reenvos no vlidos).

4.3.5. Etapa de pruebas: Las aplicaciones web necesitan pruebas de integracin, de


tensin, de escalabilidad, de carga, de resolucin y de compatibilidad, con ello se
comprueba que la aplicacin se desarrolla en forma adecuada conforme a las
exigencias del cliente.
4.3.6. Etapa de instalacin: Luego de haber terminado con la codificacin 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 acompaamiento directo con el
cliente, por tanto, en esta etapa se entrega el programa funcionando a satisfaccin
del cliente.

79

4.3.7. Etapa de mantenimiento: Generalmente las aplicaciones WEB necesitan


actualizaciones porque las correcciones de errores se van haciendo a medida que
se va desarrollando la codificacin.

4.4.

OTRAS PGINAS TILES PARA LA PROGRAMACIN SEGURA DE


APLICACIONES WEB

Algunos de ellos son:


Una gua para construir aplicaciones y servicios Web seguros. Documento en
espaol en donde se detalla la seguridad en aplicaciones Web, utilizando
diferentes programas como J2EE, ASP, .NE, PHP., (Ver la Gua de buenas
prcticas disponible en liliseguridadinformtica.webnode.es Otros).
Application Security Guide For CISOs. Documento en ingls que trata sobre
ayudar a los jefes de los servicios informticos, a gestionar los programas de
seguridad de las aplicaciones. (Ver la Gua de buenas prcticas disponible en
liliseguridadinformtica.webnode.es Otros).
OWASP Cheat Sheet: Trucos para identificar las vulnerabilidades y su
defensa
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Otros).
OWASP Categora de las Vulnerabilidades: Lista de las vulnerabilidades, que
son, como se utilizan y como combatirlas. (Ver la Gua de buenas prcticas
disponible en liliseguridadinformtica.webnode.es Otros).
Gua 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.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Otros).
Gua de revisin de cdigo OWASPO: ofrece verificacin de cdigo de las
aplicaciones, an no est publicado en espaol, solo en ingls. (Ver la Gua

80

de buenas prcticas disponible


Otros).

en liliseguridadinformtica.webnode.es

Lista de preguntas frecuentes con sus respuestas (en Ingls), (Ver la Gua de
buenas prcticas disponible en liliseguridadinformtica.webnode.es Otros).
OWASP Top 10-213 Los diez riesgos o vulnerabilidades ms crticas en
Aplicaciones Web, Es un documento en donde se relacionan los riesgos y
vulnerabilidades ms crticas de las aplicaciones Web, explicando que son,
como prevenirlas, ejemplos y referencias bibliogrficas para documentarse.
(Ver
la
Gua
de
buenas
prcticas
disponible
en
liliseguridadinformtica.webnode.es Otros).

4.5.

HERRAMIENTAS QUE PERMITEN ENCONTRAR VULNERABILIDADES Y


COMPROBAR CDIGO

Dada la importancia que tiene la seguridad cuando se est programando para la


realizacin de una aplicacin Web, se hace necesaria la implementacin de
herramientas que nos permiten visualizar de manera ms acertada las
vulnerabilidades a que se est expuesto.
4.5.1. HERRAMIENTAS DE ESCANEO DE VULNERABILIDADES:
Acunetix: Herramienta que permite detectar ms de 3000 tipos de
vulnerabilidades con alertas segn su gravedad. Esto hace de esta herramienta
una de las mejores de este estilo.
AppScan de IBM: Ofrece prueba de seguridad de aplicaciones estticas y
dinmicas dentro del ciclo de vida de las aplicaciones, genera informes y realiza
recomendaciones.
Burp Suite de Free Edition: Herramienta utilizada para descubrir mediante
escaneo, vulnerabilidades de manera gil y eficaz.

81

Grabber: Escner de aplicaciones web porttil, se utiliza solo para aplicaciones


pequea, no es muy rpido, es para uso simple.
N-Stalker, por N-Stalker: Escner de aplicaciones web, ofrece edicin free, su
tecnologa est orientada a componentes de patente pendiente est dirigida a un
conjunto restringido de web libre de evaluacin de seguridad, destinada a vigilar la
seguridad de servidores web.
Nessus por Tenable Network Security: Solucin usada para las evaluaciones de
vulnerabilidad, configuracin y compatibilidad, previene ataques a la red mediante
la identificacin de vulnerabilidades y problemas de configuracin que los
delincuentes informticos utilizan para ingresar a la red

4.5.2.

HERRAMIENTAS DE ANALISIS DE CDIGO:

Checkstyle: Ayuda a analizar y a escribir cdigo y encuentra problemas de diseo


de clases, cdigo duplicado y patrones de errores comunes, posee plugins que
hace que sea usado desde cualquier IDE como ECLIPSE (entre otros), resaltando
sobre el cdigo los errores encontrados por el analizador 20.
Findbugs: Herramienta sencilla de cdigo abierto que permite encontrar errores
en Java- Es una aplicacin desarrollada por la Universidad de Maryland, basada
en el concepto de patrones de error, es de cdigo abierto, utiliza anlisis esttico
para identificar tipos de errores potenciales21.
PMD: Analizador de cdigo fuente, encuentra errores de programacin como las
variables utilizadas, bloques catch vacos, creacin de objetos innecesarios. Es
compatible con Java, Java Script, PL SQL, Apache Velocity, XML, XSL etc. 22

20 Disponible en: http://checkstyle.sourceforge.net/


21 Disponible en http://findbugs.sourceforge.net/
22 Disponible en https://pmd.github.io/
82

JDepend: Analizador de cdigos que genera mtricas de calidad ara el diseo de


paquetes Java, en trminos de su extensibilidad, reutilizacin y facilidad de
mantenimiento para gestionar dependencias de paquetes 23.

4.6.

TECNOLOGA A IMPLEMENTAR - ACUNETIX WEB VULNERABILITY


SCANNER (ACUNETIX, SF)

Con la importancia que tiene la tecnologa y la implementacin de las diferentes


herramientas que nos proporciona la WEB, los delincuentes informticos estn al
acecho buscando en los sistemas quien tiene ms descuidada la informacin, en
trminos de seguridad, para ingresar y robar datos sensibles como claves,
informacin de tarjetas de crdito o bases de datos de clientes, todo con fines
lucrativos. (ADMTOOLS, 2016)
La web, igualmente ofrece diferentes herramientas que permiten si no tener a
salvo la informacin, 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
4.6.1. Servicios que ofrece acunetix web vulnerability scanner: Creada en
1997 con el fin de realizar anlisis de sitios WEB y deteccin 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
anlisis inteligente, dems entrega informes de auditora muy confiables.
4.6.2. Detecciones de la herramienta Acunetix
Son muchas las vulnerabilidades que detecta, entre otras tenemos:
Associada con OpenVAS (Open Vulnerability Assessment System) El escner
de seguridad, es una suite de software que integra servicios y herramientas
utilizadas para el escaneo y gestin de vulnerabilidades de seguridad de
sistemas informticos.
23 Disponible en http://clarkware.com/software/JDepend.html
83

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 informtico es
capaz de inyectar datos en una peticin 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
validacin de un usuario y acceden al directorio padre.
Remote File inclusin, Se da solamente en pginas dinmicas en PHP que
contienen la funcin include(), dejando enlazar archivos remotos de otros
servidores.
Autenticacin, consiste en interceptar una sesin de la vctima y esperar a que
se identifique para robar su datos
4.6.3. Aplicacin de la herramienta acunetix en una pgina web: Con el fin de
obtener una muestra real de la aplicacin de la herramienta ACUNETIX a una
pgina web real, se escogi al azar una pgina pequea que pudiera mostrar las
vulnerabilidades.
Figura 10. Aplicacin de la herramienta ACUNETX a una pgina

84

Fuente: Construccin propia


Inicialmente muestra el nivel de vulnerabilidad
Figura 11. Nivel de vulnerabilidades encontradas

Fuente: Construccin propia


ALTO: 0
MEDIO: 56
BAJO: 2
INFORMACIN: 37

85

Igualmente se encuentra la siguiente informacin.

Lista de directorios
html desde afuera proteccin CSRF
Cdigo fuente divulgacin
Credenciales de usuario se envan en texto claro
Cookie de sesin sin httponly pabelln conjunto
Enlaces rotos

Figura 12: Explicacin de las vulnerabilidades encontradas

Fuente: Construccin propia


Ofrece informacin de la vulnerabilidad. Entre otras muestra la siguiente
informacin:
Cuando se introduce un nuevo nombre y contrasea en un formulario y se enva el
formulario, el navegador le preguntar si la contrasea debe ser guardada. A partir
de entonces cuando se muestra el formulario, el nombre y la contrasea se
rellenan de forma automtica o se completan como se introduce el nombre. Un

86

atacante con acceso local podra obtener la contrasea sin cifrar de la cach del
navegador.
Esta vulnerabilidad afecta a /chat/operator/login.php.
Descubierto por: Crawler.
Detalles de ataque
Tipo de contrasea de entrada llamado contrasea del formulario denominado
smallLogin con la accin /chat/operator/login.php ha permitido autocompletado.
Cabeceras HTTP Ver
Peticin
GET /chat/operator/login.php HTTP / 1.1
Pragma: no-cache
Referer: http://www.expresopalmira.com.co/chat/operator/index.php
Acunetix-Aspecto: habilitado
Acunetix-Aspecto-Contrasea: 082119f75623eb7abd7bf357698ff66c
Acunetix-Aspecto-Consultas: filelist; aspectalerts
Cookie: PHPSESSID = bf16m8s0qvqk0oe8epd5keh4v2; WEBIM_UserID =
1447379402.425132558182; webim_locale = sp
Anfitrin: www.expresopalmira.com.co
Conexin: Keep-alive
Accept-Encoding: gzip, desinfla
User-Agent: Mozilla / 5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64;
Trident / 5.0)
Aceptar: */*
Respuesta
HTTP / 1.1 200 OK
X-Powered-By: PHP / 4.5.42
Expira: Lun, 26 de julio 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, que hay que revalidar
Pragma: no-cache
Content-Type: text / html; charset = UTF-8
Content-Length: 3137
Vary: Accept-Encoding
Fecha: viernes, 13 de noviembre 2015 01:50:14 GMT
Accept-Ranges: bytes
Servidor: LiteSpeed
Estricto-Transporte-Security: max-age = 31536000
Connection: close
Ver respuesta HTML
Lanzar el ataque con alerta de HTTP Editor Retest (s) Tomar nota de esta alerta
como un falso positivo
El impacto de esta vulnerabilidad
Posible divulgacin de informacin sensible
87

Cmo corregir esta vulnerabilidad


El autocompletado contrasea debe ser desactivada en aplicaciones sensibles.
Para desactivar la funcin de autocompletar, usted puede usar un cdigo similar al
siguiente:
<INPUT TYPE = Autocompletar "contrasea" = "off">
Tipo de contrasea de entrada con autocompletado habilitado
Descripcin de la vulnerabilidad
Cuando se introduce un nuevo nombre y contrasea en un formulario y se enva el
formulario, el navegador le preguntar si la contrasea debe ser guardado. A partir
de entonces cuando se muestra el formulario, el nombre y la contrasea se
rellenan de forma automtica o se completan como se introduce el nombre. Un
atacante con acceso local podra obtener la contrasea sin cifrar de la cach del
navegador.
Esta vulnerabilidad afecta a /chat/operator/login.php.
Descubierto por: Crawler.
Detalles de ataque
Tipo de contrasea de entrada llamado contrasea del formulario denominado
LoginForm con la accin /chat/operator/login.php ha permitido autocompletado.
Cabeceras HTTP Ver
Peticin
GET /chat/operator/login.php HTTP / 1.1
Pragma: no-cache
Referer: http://www.expresopalmira.com.co/chat/operator/index.php
Acunetix-Aspecto: habilitado
Acunetix-Aspecto-Contrasea: 082119f75623eb7abd7bf357698ff66c
Acunetix-Aspecto-Consultas: filelist; aspectalerts
Cookie: PHPSESSID = bf16m8s0qvqk0oe8epd5keh4v2; WEBIM_UserID =
1447379402.425132558182; webim_locale = sp
Anfitrin: www.expresopalmira.com.co
Conexin: Keep-alive
Accept-Encoding: gzip, desinfla
User-Agent: Mozilla / 5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64;
Trident / 5.0)
Aceptar: */*
Respuesta
HTTP / 1.1 200 OK
X-Powered-By: PHP / 4.5.42
Expira: Lun, 26 de julio 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, que hay que revalidar
Pragma: no-cache
Content-Type: text / html; charset = UTF-8
88

Content-Length: 3137
Vary: Accept-Encoding
Fecha: viernes, 13 de noviembre 2015 01:50:14 GMT
Accept-Ranges: bytes
Servidor: LiteSpeed
Estricto-Transporte-Security: max-age = 31536000
Connection: close
Ver respuesta HTML
Lanzar el ataque con alerta de HTTP Editor Retest (s) Tomar nota de esta alerta
como un falso positivo
El impacto de esta vulnerabilidad
Posible divulgacin de informacin sensible
Cmo corregir esta vulnerabilidad
El autocompletado contrasea debe ser desactivado en aplicaciones sensibles.
Para desactivar la funcin de autocompletar, usted puede usar un cdigo similar al
siguiente:
<INPUT TYPE = Autocompletar "contrasea" = "off">

89

5.

CONCLUSIONES Y RECOMENDACIONES

El desarrollo del proyecto permiti Identificar las principales vulnerabilidades en


cada fase del ciclo de desarrollo de software y los posibles ataques sistematizados
en el sitio web del proyecto y que condensa las mejores prcticas de seguridad
para el desarrollo de aplicaciones WEB.
La gua logr el objetivo de identificar las mejores prcticas con las herramientas
de prueba asociadas, para la construccin de aplicaciones Web seguras mediante
la consulta de estndares de la industria.
Mediante la utilizacin de la gua en los procesos de formacin de programadores
de la Media Tcnica se pueden crear en los estudiantes hbitos de desarrollo de
aplicaciones web seguras en cada una de las etapas del ciclo de vida del
desarrollo del software
El impacto que tiene la Tecnologa de la informacin y la comunicacin TIC en el
funcionamiento y xito de las compaas, la influencia de los mismas en la vida de
las personas de comn, y la proliferacin de aparatos tecnolgicos con
funcionalidades cada vez ms sofisticadas, ha hecho que da a da se incremente
tambin la demanda de profesionales en los sistemas y ms especficamente los
profesionales en desarrollo de software, por ello las Instituciones educativas en
general y ms especficamente las instituciones educativas oficiales del Municipio
de Medelln apuntan al crecimiento de la Media tcnica del desarrollo del software.
El desarrollo de ste proyecto est propuesto a ofrecer a los estudiantes de la
media tcnica de las instituciones educativas, una gua que les permita aplicar
desde el primer momento de su aprendizaje, las reglas para hacer aplicaciones
seguras con el mnimo de riesgo y con el mximo de seguridad.
El tema es de permanente desarrollo por lo cual en el documento se presentan
conceptos con invitaciones a mantenerse actualizado mediante la lectura de
documentos de sitios web reconocidos, (con el respaldo de universidades o
compaas reconocidas) con propsitos especficos para la creacin y desarrollo
de una aplicacin web segura.

90

6.

BIBLIOGRAFA

Lujan, Erika. Programacin de aplicaciones WEB: Historia, principios bsicos y


clientes WEB. [En lnea]. https://books.google.es/books?
hlties&lrti&idtir9CqDYh2loC&oitifnd&pgtiPR3&dqtiCARACTERISTICAS+DE+LAS+APLICACIONES+
WEB&otstiMizOSh4QCX&sigtig4-zTPoCphwq3Wtdp_gGgxfZ5o#vtionepage&qtiCARACTERISTICAS%20DE%20LAS
%20APLICACIONES%20WEB&ftifalse [Citado en 27 de abril de 2015]
Cceres, P., Marcos, E. Procesos giles para el desarrollo de aplicaciones web.
[En lnea]. https://scholar.google.es/scholar?
hlties&qtiCARACTERISTICAS+DE+LAS+APLICACIONES+WEB&btnGti&lrti
[Citado en 27 de abril de 2015]
De Benito, B. Herramientas para la creacin, distribucin y gestin de cursos a
travs de Internet [Citado en 27 de abril de 2015]. [En lnea].
http://edutec.rediris.es/Revelec2/Revelec12/deBenito.html
Lpez, Y., Ampuero, M., Infante, A. Formacin de roles y buenas prcticas en el
trabajo por la calidad de un ingeniero informtico. [En lnea].
http://www.scielo.cl/scielo.php?pidtiS071833052011000300008&scripttisci_arttext&tlngtien [Citado en 27 de abril de
2015]
Gua para el desarrollo de sitios Web Gobierno de Costa Rica. Recuperado de
internet: http://www.gobiernofacil.go.cr/egob/gobiernodigital/documentos/Guia%20para%20el%20Desarrollo%20de
%20Sitios%20Web%202.0%20-%20Gobierno%20de%20Costa%20Rica.pdf
Hispasec. (2013) OWASP: Los diez riesgos ms crticos en aplicaciones WEB
Recuperado de: http://unaaldia.hispasec.com/2013/11/owasp-los-diezriesgos-mas-criticos-en.html
Cisco (2014) Autenticacin Web en el controlador Wlan. Recuperado de:
http://www.cisco.com/cisco/web/support/LA/111/1118/1118157_web-authwlc-guide-00.html
91

Lpez S. (2006) Seguridad en desarrollo de aplicaciones Web. Disponible en:


http://www.monografias.com/trabajos75/seguridad-desarrollo-aplicacionesweb/seguridad-desarrollo-aplicaciones-web2.shtml
Junta de Andaluca. (2013) Conceptos de seguridad en aplicaciones WEB.
Disponible en:
http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/212
Castro, C., Hernndez T. (2010) Polticas y buenas prcticas de seguridad en
servidores WEB del CDMIT. Facultad de Ingeniera UNAM - Polticas y
buenas prcticas de seguridad en servidores web. Recuperado de Internet
de:
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/
915/A5.pdf?sequence=1 2-3-4-5-6-7- etc

NTC 1486 Instructivo de presentaacin de trabajos de grado. Documento


disponible en:
http://www.uao.edu.co/sites/default/files/Biblioteca/ArchivosPDF/Documento
sPDF/INSTRUCTIVO_PRESENTACION_TRABAJOS_DE_GRADO.pdf
6.1. REFERENCIAS BILBIOGRFICAS

ACUNETIX. (SF). Auditar la seguridad de su sitio web con Acunetix Web


Vulnerability Scanner. Obtenido de http://www.acunetix.com/
ADMTOOLS. (2016). Acunetix Web Vulnerability Scanner. Obtenido de
http://www.adm-tools.com/portfolio/acunetixwebvulnerabilityscanner/
Alarcn, J. M. (mayo de 2014). Loa 10 mejores editores gratuitos o casi de HTML,
CSS y JavaScript. Obtenido de
http://www.campusmvp.es/recursos/post/Los-10-mejores-editores-gratuitosde-HTML-CSS-y-JavaScript.aspx
Alvarez, M. A. (2012). Lenguaje HTML. Obtenido de
http://www.desarrolloweb.com/articulos/711.php

92

ngel, J. d. (sf). CRIPTOGRAFA PARA PRINCIPIANTES. Obtenido de


http://spi1.nisu.org/recop/www.seguridata.com/pdf/cbasica.pdf
Arencibia Cobas, J., Yuniet del carmen, T., Soto Prez, J., Tamayo Rueda, D.,
Moyares Norchales, Y., & Ril Gil, Y. (2012). Gua prctica de Arquitectura de
Informacin para aplicaciones multimedia educativas. Obtenido de
http://www.nosolousabilidad.com/articulos/guia_ai.htm
Ascencio Mendoza, M., & Moreno Patio, P. (2011). Desarrollo de una ropuest
metodolgica para determinar la Seguridad en una aplicacin Web.
Obtenido de
http://repositorio.utp.edu.co/dspace/bitstream/11059/2511/1/0058A811.pdf
Astudillo, M. (octubre de 2009). El proyecto informtico. Obtenido de
http://www.monografias.com/trabajos-pdf2/proyecto-informatico/proyectoinformatico.pdf
Belloch, C. (2013). AGENTES IMPLICADOS EN EL DESARROLLO DE
APLICACIONES MULTIMEDIA. Obtenido de
http://www.uv.es/bellochc/pwedu6.htm
Berzal, F. (sf). El ciclo de vida de un sistema. Obtenido de
http://elvex.ugr.es/idbis/db/docs/lifecycle.pdf
Castro, G. (2009). Proyectos informticos. Obtenido de
http://www.monografias.com/trabajos39/proyecto-informatico/proyectoinformatico2.shtml
Chile, G. d. (2008). Gua Digital. Obtenido de Gua Web:
http://www.guiadigital.gob.cl/guia-web
Cisco. (2013). Informe anual de seguridad de Cisco 2013. Obtenido de
http://www.cisco.com/web/ES/pdf/Cisco_ASR_2012_v2_020813.pdf
Corrales Snchez, H., Cilleruelo Rodrguez, C., & Cuevas Notario, A. (sf).
Criptografa y mtodos de cifrado. Obtenido de
http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia
%20y%20Metodos%20de%20Cifrado.pdf
Cristopher, F. (2013). Metodologa gil para el diseo de aplicaciones multimedia
de dispositivos mviles. Obtenido de
http://es.slideshare.net/cristopherf/metodologia-agil-para-el-diseo-deaplicaciones-multimedias-moviles
93

Culturacion. (sf). Cmo escoger un servidor para alojar mi sitio web? Obtenido de
http://culturacion.com/como-escoger-un-servidor-para-alojar-mi-sitio-web/
Diz, C. C. (sf). OWASP, Desarrollo Seguro Principios y Buenas Practicas.
Obtenido de
https://www.owasp.org/images/9/93/Desarrollo_Seguro_Principios_y_Buena
s_Pr%C3%A1cticas..pdf
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_Desarrollo_de_Sitios_Web_2.0_SI_IT_TI_IO_OS_S_
W_WE_EB_B_2_2._.0_0_Tabla_de_Contenidos
Ecured. (2016). Aplicacin Web. Obtenido de http://www.ecured.cu/Aplicaci
%C3%B3n_web
ESET LATINOAMRICA. (2014). Tendencias 2014: El desafo de la privacidad en
Internet. Obtenido de http://www.esetla.com/pdf/tendencias_2014_el_desafio_de_la_privacidad_en_internet.pdf
FEAPS, C. (octubre de 2007). Calidad FEAPS. Obtenido de Buenas Prcticas
FEAPS:
http://www.feapsmurcia.org/feaps/FeapsDocumentos.NSF/08db27d07184be
50c125746400284778/84163cd187586d72c1256ffd003e699f/
$FILE/queesBBPP.pdf
Gonzalez, E. (sf). HTML Un lenguaje de programacin? Ejemplo concepto
lenguaje de etiquetas vs programacin. Obtenido de
http://aprenderaprogramar.com/index.php?
option=com_content&view=article&id=439:html-iun-lenguaje-deprogramacion-ejemplo-concepto-lenguaje-de-etiquetas-vs-programacioncu00705b&catid=69:tutorial-basico-programador-web-html-desdecero&Itemid=192
Hipertextual. (2013). Los 10 mejores editores de texto para desarrolladores.
Obtenido de http://hipertextual.com/archivo/2013/10/mejores-editores-detexto-para-desarrolladores
Instituto Mar de Cortes. (sf).
http://www.institutomardecortes.edu.mx/pubs/metodologia_web.pdf.

94

Obtenido de
http://www.institutomardecortes.edu.mx/pubs/metodologia_web.pdf
Lazalde, A. (2012). Criptografa: herramientas esenciales para una informtica
privada y annima. Obtenido de http://hipertextual.com/2012/11/criptografiaherramientas
Lpez, B. (abril de 2015). Cmo elegir un buen hosting web Lo que necesitas
saber. Obtenido de http://www.hostingatope.com/como-elegir-buen-hostingweb/
Martnez, J. M. (sf). Metodologas para el desarrollo de aplicaciones Web.
Obtenido de http://es.slideshare.net/JosafatMtz/metodologias-para-eldesarrollo-de-aplicacones-web?next_slideshow=1
Microsoft - Developer Network. (2007). Procedimientos de seguridad bsicos para
aplicaciones Web. Obtenido de Procedimientos de seguridad bsicos para
aplicaciones Web
Microsoft TechNet. (sf). Respuesta a incidentes de seguridad de TI. Obtenido de
https://technet.microsoft.com/es-es/library/cc700825.aspx
MINTIC. (2012). Encuesta de consumo digital en 2012. Obtenido de
http://www.mintic.gov.co/portal/604/w3-article-1629.html
Nashelil. (2014). Los mejores editores de imgenes en linea. Obtenido de
http://hipertextual.com/archivo/2014/11/mejores-editores-imagenes-linea/
OWASP. (2013). Los diez riesgos ms crticos en aplicaciones Web. Obtenido de
https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa
%C3%B1ol.pdf
OWASP. (11 de Noviembre de 2014). SOBRE OWASP. Obtenido de
https://www.owasp.org/index.php/Sobre_OWASP
OWASP. (sf). Obtenido de https://www.owasp.org/
Pereyra. (2008). Metodologia para Creacin de Aplicaciones Web. Obtenido de
http://es.slideshare.net/Yaraher/metodologia-para-creacin-de-aplicacionesweb
Seguridad Informtica. (2013). Objetivos de la seguridad informtica. Obtenido de
https://infosegur.wordpress.com/tag/no-repudio/

95

Silva, D., & Mercerat, B. (sf). Construyendo aplicaciones web con una metodologa
de diseo. Obtenido de http://ldc.usb.ve/~abianc/electivas/OOHDM.pdf
SuperHosting. (2015). Que es un hosting o alojamiento web. Obtenido de
http://www.superhosting.cl/faqs/que-es-un-hosting-o-alojamiento-web.html
Symantec Norton Secured. (2014). Informe sobre las amenazas pa la seguridad
de los sitios web (Edicin 2014). Obtenido de
https://www.certisur.com/sites/default/files/docs/symantec-wstr-2014cala.pdf
Tapiero, L. M. (2013). PROTOTIPO DE UNA APLICACIN WEB PARA LA
GESTIN EN EL PROCESO DE TRABAJOS DE GRADO DE LA
FACULTAD DE INGENIERA DE LA UNIVERSIDAD EAN. Obtenido de
http://repository.ean.edu.co/bitstream/handle/10882/3916/GaravitoLeidy201
3.pdf?sequence=5
UNAM-CERT Coordinacion de seguridad de la Informacin. (octubre de 2013).
Mejores prcticas de seguridad en aplicaciones web. Obtenido de
http://www.seguridad.unam.mx/noticia/?noti=1405
UNAM-CERT. (sf). Vulnerabilidades en windows HTTP Services que posra
permitir la ejecucin remota de cdigo. Obtenido de
http://www.seguridad.unam.mx/vulnerabilidadesDB/?vulne=5714
Universidad de Valencia. (sf). Estudio de la criptografa. Obtenido de
http://www.uv.es/sto/cursos/seguridad.java/html/sjava-3.html
Web-Gdl.com. (2014). Qu es un dominio? Obtenido de http://webgdl.com/servicios/dominios/que-es-un-dominio/
Werner, J. L. (2010). OBSERVATORIO TECNOLGICO - GOBIERNO DE
ESPAA. Obtenido de Consejos para minimizar los riesgos en la
navegacin por Internet.:
http://recursostic.educacion.es/observatorio/web/en/listado-monograficos?
start=4

96

7.

ANEXOS

ANEXO A. LISTA DE CHEQUEOS


LISTA DE CHEQUEO - DESARROLLO DE UNA APLICACIN WEB
SEGURA
ETAPA DE LEVANTAMIENTO DE REQUISITOS
PREGUNTA
Sabe cules son los objetivos del proyecto?
Tiene identificado el pblico objetivo?
Sabe cul es el objetivo de la aplicacin Web?
Tiene claras las necesidades del cliente?
Tiene identificado el contenido o temas a
mostrar?
Tiene identificado los diferentes tipos de
clientes?
Sabe cul ser el nombre de la aplicacin
web?
Tiene el registro del dominio?
Sabe que hosting utilizar por su seguridad,
soporte, capacidad, garantas, rendimiento,
velocidad entre otros?
Ha estudiado el mercado existente?
Sabe quin o cmo se custodiar la
informacin?
Conoce la informacin acerca de las polticas
institucionales y procedimentales?
Sabe que tratamiento le dar a la informacin
sensible?
ETAPA DE ANLISIS
PREGUNTA
Tiene identificado el hardware que utilizar
para el desarrollo de la aplicacin web?
Conoce el lugar en donde realizara la
actividad?
Tiene identificado el software que utilizar en
el desarrollo del proyecto?

97

OBSERVACION
ES

SI

NO

SI

OBSERVACION
NO ES

Tiene claro los roles de cada uno de los


integrantes del equipo?
Tiene establecido el cronograma de
actividades y las fechas de entregas?
Tiene identificado cmo se respaldar la
informacin del proyecto en caso de siniestro?

Tiene asignado el costo del proyecto?


Tiene claro los procedimientos para la
realizacin de manuales?
Tiene planeadas contingencias en caso de
siniestros?
Tiene identificadas las estrategias que va a
aplicar en el anlisis para mantener la
seguridad en las aplicaciones?
ETAPA DE DISEO
PREGUNTA
Ha validado el diseo de la interfaz amigable
y grata visualmente)
Asegura la usabilidad definiendo estrategias
de control los errores cometidos por los
usuarios?
Ha elaborado el esquema conceptual con los
objetos de dominio, relaciones e
interacciones?)
Ha elaborado diagrama de flujo de cada
proceso?
Estn definidos el mnimo de posibilidades de
intentos fallidos en el acceso, asegurando la
accesibilidad?
Se ha calculado el ancho de banda necesario
frente al disponible para asegurar el fcil
acceso a la aplicacin?
Tienen claro el balance entre lo que quiere el
cliente y lo que necesita el usuario?

98

SI

OBSERVACION
NO ES

Est clara la estructura del sitio, la topologa,


la navegacin, el desplazamiento entre
pginas?
Tiene definido el tipo de diseo que realizar?
ETAPA DE CODIFICACIN
PREGUNTA
Tiene claro e lenguaje de programacin que
utilizar?
Interpreta sin ambigedades los diagramas
de clase?
Cuenta con los diagramas de secuencia orden de tareas?
Estn claramente definidos los riesgos a los
que est expuesto?
Ha hecho un barrido de las vulnerabilidades
ms conocidas y la forma de evitarlas?
Tiene identificada para cada vulnerabilidad la
referencia de consulta para conocer las ltimas
medidas de prevencin, para evitarlas y
combatirlas?
En la codificacin tuvo en cuenta cmo evitar
la vulnerabilidad de inyeccin?
Tuvo en cuenta prevenir la vulnerabilidad de
autenticacin y gestin de sesiones?
Sabe cmo se produce la vulnerabilidad de
secuencia de comandos en sitios cruzados
(XSS)?
Verific que el cdigo tenga los controles que
se deben tener para el acceso a la informacin
con el fin de evitar la vulnerabilidad de
referencias directa insegura a objetos?
Verific la configuracin de las aplicaciones
en los servidores, bases de datos o sistema
operativo para evitar la vulnerabilidad de
configuracin de seguridad incorrecta?
Utiliz el cifrado de datos sensibles y la
implementacin de contraseas seguras para
evitar la vulnerabilidad de exposicin de datos
sensibles?

99

SI

OBSERVACION
NO ES

Tuvo en cuenta cmo se produce la


vulnerabilidad de Ausencia de control de
acceso a las funciones, desde la validacin en
el procesamiento de URLs?
Revis que el software no fuera vulnerable
ante un ataque de Falsificacin de peticiones
en sitios cruzados CSRF?
Revis que los delincuentes no puedan
interceptar los componentes dbiles a travs
de escaneo o anlisis manuales?
Se tomaron medidas para prevenir el ataque
de redirecciones y reenvos no vlidos?
ETAPA DE PRUEBAS
PREGUNTA
Aplico escaneo de vulnerabilidades web y
analizo el resultado para el mejoramiento de la
aplicacin?
Utiliz las herramientas para realizar
pruebas?
Hizo pruebas de cmo realizar pruebas de
integracin?
Se aplicaron las pruebas de tensin, de
escalabilidad, de carga, de resolucin?

SI

OBSERVACION
NO ES

ETAPA DE INSTALACIN
PREGUNTA
SI
Tiene listo el programa para entregarlo
instalado y funcionando?
Tiene el documento listo para la firma de
recibido a satisfaccin?
ETAPA DE MANTENIMIENTO
PREGUNTA
Tiene estipulada las condiciones para el
mantenimiento de la aplicacin?
Tiene un documento firmado en donde conste
el tiempo de actualizaciones?
100

SI

OBSERVACION
NO ES

OBSERVACION
NO ES

101

ANEXO B: DIAGRAMA DE FLUJO PASOS PARA INGRESAR A LA GUA DE


BUEAS PRCTICAS

102

S-ar putea să vă placă și