Está en la página 1de 82

GUA DE BUENAS PRCTICAS PARA EL DESARROLLO DE APLICACIONES

WEB SEGURAS, ORIENTADA A LA FORMACIN DE PROGRAMADORES

LILIANA CJAR BAHAMN


CDIGO 21404870

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


CDIGO 21404870

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.

GLOSARIO
RESUMEN
INTRODUCCIN
1.
1.1.
1.2.
1.3.
1.4.
1.5.

9
10
11

BUENAS PRCTICAS PARA EL DESARROLLO DE UN


PROYECTO INFORMTICO
QU SON BUENAS PRCTICAS?
PORQUE SE LES LLAMAN BUENAS PRCTICAS?
QUE HACE QUE UNA PRCTICA SEA MAL
DESARROLLADA?
QU ES UN PROYECTO INFORMTICO?
TIPS DE BUENAS PRCTICAS PARA EL DESARROLLO DE
UN PROYECTO INFORMTICO

13
13
14
14
14
15

2.
2.1.
2.2.
2.2.1.
2.2.2.
2.2.3.
2.3.

LA SEGURIDAD EN INFORMTICA
RIESGOS QUE PUEDEN AFECTAR LA WEB
QUE ES CRIPTOGRAFA?
Qu uso tiene la criptografa?
Qu clases de tecnologas criptogrficas existen?
Servicios criptogrficos disponibles
IMPORTANCIA DE LAS COMPAAS ESPECIALIZADAS EN LA
SEGURIDAD DE LAS APLICACIONES WEB

18
19
20
21
22
23

3.
3.1.
3.1.1.

APLICACIONES WEB Y SEGURIDAD


CICLO DE VIDA N EL DESARROLLO DE APLICACIONES WEB
Etapa de levantamiento de necesidades u oportunidades o de
requisitos
Etapa de anlisis
Etapa de diseo
Etapa de codificacin
Etapa de pruebas

26
26
28

Etapa de instalacin
Etapa de mantenimiento
ARQUITECTURA PARA EL DESARROLLO DE APLICACIONES
WEB.

28
28

3.1.2.
3.1.3.
3.1.4.
3.1.5.
3.1.6.
3.1.7.
3.2.

24

28
28
28
28

29

3.3.
3.3.1
3.4.
3.4.1.
3.4.2.
3.5.
3.6.
3.6.1.
3.7.
3.8.

4.
4.1.
4.1.1.
4.1.2.
4.1.3.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.3.
4.3.1.
4.3.2.
4.3.3.
4.4.
4.4.1.
4.4.1.1.
4.4.1.2.
4.4.1.3.
4.4.1.4.
4.4.1.5.
4.4.1.6.
4.4.1.7.
4.4.1.8.
4.4.1.9.

QUE ES UN WEB HOSTING O ALOJAMIENTO WEB


Qu se debe tener en cuenta para escoger un buen Hosting
QUE ES UN SERVIDOR WEB
Qu clase de servidores Web existen
Qu diferencia existe entre los gratuitos y los que tienen costo?
QUE ES UN DOMINIO
BUENAS PRCTICAS DE CODIFICACIN ARQUITECTURA
PARA EL DESARROLLO DE APLICACIONES WEB
Recomendaciones que se debe tener en cuenta para la seguridad
en el diseo de una aplicacin web
ELEMENTOS Y HERRRAMIENTAS QUE PODRA SER TILES
EN LA CREACIN DE UNA APLICACIN WEB
SEGURIDAD EN EL CICLO DE VIDA DE UNA APLICACIN
WEB
BUENAS PRCTICAS PARA LA CONSTRUCCIN DE
APLICACIONES WEB SEGURAS
ETAPA DE LEVANTAMIENTO DE NECESIDADES U
OPORTUNIDADES O DE REQUISITOS
Pasos a seguir
Vulnerabilidades encontradas en esta etapa
Prevencin
ETAPA DE ANLSIS
Pasos a seguir
Vulnerabilidades encontradas en esta etapa
Prevencin
ETAPA DE DISEO
Pasos a seguir
Vulnerabilidades encontradas en esta etapa
Prevencin
ETAPA DE CODIFICACIN
VULNERABILIDADES TOP 1 OWASP
A1: inyeccin
A2: Prdida de autenticacin y gestin de sesiones
A3: secuencia de comandos en sitios cruzados (xss) o cross site
scripting (XSS)
A4 referencia directa insegura a objetos
A5 Configuracin de seguridad incorrecta
A6 Exposicin de datos sensibles
A7 Ausencia de control de acceso a funciones
A8 - Falsificacin de peticiones en sitios cruzados (CSRF)
A9 - Utilizacin de componentes con vulnerabilidades conocida

29
30
31
31
32
32
33
35
35
39

41
41
41
42
43
44
44
44
45
46
46
47
47
48
49
49
52
54
55
56
58
60
61
63

4.4.1.10. A10 Redirecciones y reenvos no validados


4.5.
OTRAS PGINAS TILES PARA PROGRAMACION SEGURA
DE APLICACIONES WEB
5.
5.1.
5.2.
6.
6.1.
6.2.
6.3.

HERRAMIENTAS QUE PERMITEN ENCONTRAR


VULNERABILIDADES Y COMPROBAR CDIGO
HERRAMIENT DE ESCANEO DE VULNERABILIDADES
HERRAMIENTAS DE ANLISIS DE CDIGO
TECNOLOGA A IMPLEMENTAR ACUNETIX WEB
VULNERABILITY SCANNER
QUE ES Y PARA QUE SIRVE ACUNETIX WEB VULNERABILITY
SCANNER
QUE DETECCIONES REALIZA
APLICACIN DE LA HERRAMIENTA ACUNETIX A UNA
PGINA WEB

65
67

69
69
70
71
71
71
72

7.

PGINA WEB DEL DESARROLLO DEL PROYECTO

78

8.

CONCLUSIONES Y RECOMENDACIONES

79

9.

BIBLIOGRAFA

76

LISTA DE FIGURAS

Pag.

Figura 1-

Proceso de cifrado y descifrado de la informacin

21

Figura 2-

Arquitectura de una aplicacin WEB

29

Figura 3-

Web, Hosting y Dominio

30

Figura 4-

Partes del dominio

33

Figura 5-

Aplicacin de la herramienta ACUNETX a una pgina

73

Figura 6-

Nivel de vulnerabilidades encontradas

73

Figura 7-

Explicacin de las vulnerabilidades encontradas

74

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.
TCP/IP: (Transmission Control Protocol/Internet Protocol), protocolo que gobierna
las comunicaciones en Internet permitiendo conectar diferentes redes
independientes entre s.
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 comunicarse a travs de la web.
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

RESUMEN

El siguiente trabajo recopila un poco de 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, no es el caso de copiar o mostrar como
propio lo que ya ha sido 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.

10

INTRODUCCIN

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


componente de una aplicacin web en produccin: 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 plantean que el 70% de las aplicaciones web tienen


vulnerabilidades, 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 sobre Internet. Los ataques han ido en aumento
dadas las posibilidades de xito que han tenido y se puede decir que sin
consecuencia alguna.

Como consecuencia, 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.
Para el proyecto, The Open Web Application Security Project, OWASP (la
comunidad libre y abierta sobre seguridad en aplicaciones) es muy importante por
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.

11

Como forma de obviar lo que podra traducirse como un peligro anunciado, 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 hace 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 sobre el


tema, no existen acuerdos sobre mejores prcticas bsicas sobre lo que se debe
considerar en el proceso de desarrollo, la seguridad se centra en la defensa y no
en 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.

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
pgina Web por los estudiantes que comienzan en el mundo del desarrollo del
software.

12

1.

BUENAS PRCTICAS PARA EL DESARROLLO DE UN PROYECTO


INFORMTICO

Cada vez que miramos en nuestro entorno, vemos la cantidad de tecnologa que
existe, la comunicacin, los juegos, la televisin, la telefona, en fin, cada
negocio, cada casa y particularmente cada persona cuenta con un aparato que le
permite comunicarse y estar informado de manera inmediata. Nuestro activo
principal, tanto personal como de empresas es la informacin que se genera ante
cualquier uso de la tecnologa, y todo esto generalmente queda guardado en
nuestros aparatos electrnicos.

Es importante saber que cuando se utiliza un computador, un telfono o


enviamos un correo, necesitamos de programas o aplicaciones que ayuden a
obtener y desarrollar la actividad que se requiere, los desarrolladores de estas
aplicaciones, los programadores que manejan pginas WEB son los actores ms
importantes de este intercambio tecnolgico y por supuesto estn las amenazas,
los riegos 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.

1.1. QU SON BUENAS PRCTICAS?

Son un conjunto de acciones ordenadas, ciertas, coherente 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.

13

1.2. 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.
Porque las propuestas son innovadoras y creativas.

1.3. 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.1

1.4. QU ES 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.2
1

Feaps.( 2007) Buenas prcticas FEAPS , pag. 6,7, 9 y 10


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

14

1.5. TIPS DE BUENAS PRCTICAS PARA


PROYECTO INFORMTICO

EL DESARROLLO DE UN

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. 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.
Tener siempre una comunicacin directa con el cliente, evitar los
intermediarios.
15

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.
Se debe tener en cuenta de documentar constantemente, levantar actas de
las reuniones y documentar los procesos realizados.

16

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.3

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

17

2.

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
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.

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.

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.

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
relevante.

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,
18

esto garantiza el no repudio (verificacin que una transaccin cualquiera que sea
su naturaleza haya sido entregada y recibida) 4

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


solamente existe ataques desde el exterior, sino que dentro de las mismas
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.1. 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.

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


dedicada a la consultora e investigacin de las Tecnologas de la informacin,
estima que el 75% 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
ejecucin5.

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.

Infosegur (2013). Objetivos de la Seguridad informtica. Disponible en:


https://infosegur.wordpress.com/tag/no-repudio/
5
Gartner. Computer attacks. Informacin disponible en:
Chttp://www.gartner.com/search/site/freecontent/simple?typeaheadTermType=&typeaheadTermId=
&keywords=computer+attacks#

19

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 es bloqueada), si utiliza estos puertos para permitir la comunicacin,
de nada sirve.
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.2. QU ES 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. (H. Corrales, C. Cilleruelo, A. Cuevas, 2014, p. 4) 6

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.
6

Consultado el 26 de octubre de 2015, disponible en:


http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Ci
frado.pdf

20

Figura 1: Proceso de cifrado y descifrado de la informacin

Fuente: Construccin propia

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


pgina https://genomorro.files.wordpress.com/2007/09/trabajo.pdf

2.2.1. Qu uso tiene 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.

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.

21

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


para robos al interior de las compaas.
Fuga de informacin.
Encriptacin de informacin con fines ilegales (pornografa, espionaje, msica,
videos etc).

2.2.2. Qu clases de tecnologas criptogrficas existen? Existen muchas


maneras de encriptar la informacin, algunas de ellas se conocen como:

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. 7

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. 8

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. 9

Certificados digitales: Tcnica que consiste en utilizar un certificado o


paquete de informacin que identifica al usuario que contiene informacin
7

ANGEL, Jos de Jess. Criptografa para principiantes. P. 13 Disponible en:


http://spi1.nisu.org/recop/www.seguridata.com/pdf/cbasica.pdf
8
Ibid., p. 21
9
Ibid., p. 24

22

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 anteriores10

2.2.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:
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.

10

Ibid., p. 37

23

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.
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.3. IMPORTANCIA DE LAS COMPAAS ESPECIALIZADAS EN LA


SEGURIDAD DE LAS APLICACIONES WEB

Son muchas las compaas que ofrecen informacin gratuita para los
desarrolladores de aplicaciones WEB, 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.
24

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

25

3. 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 11

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
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.

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.

3.1. 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
11

Consulta realizada el 24 de octubre de 2015, disponible en: http://definicion.de/web/

26

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.
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
orientadas a objetos y tambin existen mejoras del modelo conceptual
implantando modelos de navegacin y presentacin. (Silva, 2001), (Marcos, 2002).
Las aplicaciones web tienen un proceso de desarrollo o de vida que puede
dividirse en etapas; este proceso permite visualizar el trabajo de manera
ordenada, haciendo que cualquier persona sepa observarlo y entenderlo. Estas
etapas estn divididas as:

12

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.12

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

27

3.1.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.

3.1.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 etc.

3.1.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.

3.1.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.

3.1.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.

3.1.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.

3.1.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.

28

3.2. 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 2: Arquitectura de una aplicacin WEB

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

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


red y los clientes.

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. 13

3.3. QUE ES UN 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.
13

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

29

Figura 3: Web, Hosting y Dominio

TOMADO DE http://blog.norihost.com/

3.3.1. Que se debe tener en cuenta para escoger un buen Hosting

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.

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.

30

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 PHP14

3.4. QUE ES UN 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. 15

3.4.1. Qu clase de servidores Web existen: Existen varias clases de servidores


Web, los que son gratuitos, y los de costo (compartidos, revendedor, virtuales,
dedicados y de colocacin).
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.

14

Documento consultado el 13 de noviembre de 2015. Disponible en: http://culturacion.com/comoescoger-un-servidor-para-alojar-mi-sitio-web/


15
Ibd pag. 1

31

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.16

3.4.2. Qu diferencia existe entre los 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. 17

3.5. QUE ES UN 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.

16

Consultado el 22 de noviembre de 2015. Disponible en: http://disenowebakus.net/alojamiento-web.php


Consulta realizada el 10 de noviembre de 2015, disponible en: http://www.ciudadano2cero.com/que-esun-hosting-web-tipos-alojamiento-cual-elegir/
17

32

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. 18

Figura 4: Partes del dominio

3.6. 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
recursos gratuitos, apoyo a empresas para utilizar documentos, herramientas
18

Consulta

realizada

el

12

de

noviembre
gdl.com/servicios/dominios/que-es-un-dominio/

33

de

2015.

Disponible

en:

http://web-

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, se refieren a esta pgina
catalogndola como una de las principales pginas que aborda temas
relacionados con la seguridad en aplicaciones WEB.

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), 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.

34

Listas de correo19

3.6.1. Recomendaciones que se debe tener en cuenta para la seguridad en el


diseo de una aplicacin web.
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.20

3.7. ELEMENTOS 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:
19

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


20
Consulta realizada el 10 de noviembre de 2015, disponible en: http://www.ciudadano2cero.com/que-esun-hosting-web-tipos-alojamiento-cual-elegir/

35

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
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. 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 21.

21

Consulta realizada el 22 de noviembre de 2015. Disponible en http://www.40defiebre.com/herramientasoptimizacion-diseno-web/

36

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.

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>22
Servidor local (No es necesario).
Editor de pgina web (opcional), ofrecen alternativas. 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.

22

Consulta realizada el 25 de noviembre de 2015. Disponible en


http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=439:html-iun-lenguajede-programacion-ejemplo-concepto-lenguaje-de-etiquetas-vs-programacion-cu00705b&catid=69:tutorialbasico-programador-web-html-desde-cero&Itemid=192

37

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.

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.23

Editor de imgenes Para editar, crear y optimizar imgenes. 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


registro24

Sistema operativo, programas, aplicaciones 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.

23

Documento consultado en 24 de noviembre de 2015, disponible en:


http://www.campusmvp.es/recursos/post/Los-10-mejores-editores-gratuitos-de-HTML-CSS-yJavaScript.aspx
24
Documento consultado el 28 de noviembre de 2015, disponible en:
http://hipertextual.com/archivo/2010/09/8-editores-de-imagenes-online-y-gratuitos/

38

3.8. 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:

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.

39

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.25

25

J. Lpez.(2010) Monogrfico: Seguridad en Internet Consejos para minimizar los riesgos en la navegacin
por internet, disponible en: http://recursostic.educacion.es/observatorio/web/en/listadomonograficos?start=4

40

4.

BUENAS PRCTICAS PARA LA CONSTRUCCIN DE APLICACIONES


WEB SEGURAS

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 vulnerabilidades26

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.1. ETAPA DE LEVANTAMIENTO DE NECESIDADES, OPORTUNIDADES O


DE REQUISITOS

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: 27

4.1.1. Pasos a seguir

26

(https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project)
https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf
27
Garavito L.M. (2013) Prototipo de una aplicacin Web para la gestin en el procesos de trabajos de grado
de la facultad de Ingeniera de la Universidad EAN. Disponible en:
http://repository.ean.edu.co/bitstream/handle/10882/3916/GaravitoLeidy2013.pdf?sequence=5

41

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. 28

4.1.2. Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los


paso 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.
28

Ibid. Pag. 29

42

contraseas impropias.
Medidas insuficientes de proteccin en las redes.

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

4.1.3. 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.).

43

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.2. ETAPA DE ANLISIS

Una vez analizadas las necesidades, en esta etapa se concretan los implementos,
las instalaciones, roles, las contingencias y cubrimientos. 29

4.2.1. 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.

4.2.2. Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los


paso a seguir se deben tener en cuenta las siguientes temas para minimizar los
riesgos:
29

Documento consultado el 15 de enero de 2016. Disponible en:


http://www.institutomardecortes.edu.mx/pubs/metodologia_web.pdf

44

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.30

4.2.3. 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. 31

30

Milano P. (2007) Disponible en:


http://www.cybsec.com/upload/cybsec_Tendencias2007_Seguridad_SDLC.pdf.
31
Microsoft Technet Respuesta a incidentes de seguridad en TI. Disponible en:
https://technet.microsoft.com/es-es/library/cc700825.aspx

45

4.3. ETAPA DE DISEO

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.32

4.3.1. 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.
32

Arencibia J., Toll Y. y otros (212) Gua prctica de arquitectura de informacin para aplicaciones
multimedia educativas. Disponible en http://www.nosolousabilidad.com/articulos/guia_ai.htm

46

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


de desplazamiento entre pginas.

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.33

4.3.2. Vulnerabilidades encontradas en esta etapa: Teniendo en cuenta los


paso a seguir se deben tener en cuenta las 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.
4.3.3. Prevencin: En esta etapa es importante tener en cuenta estos pasos para
evitar malos entendidos en el futuro de la aplicacin. 34

33

Fuzi C. (2013) Metodologa gil para el diseo de aplicaciones multimedia de dispositivos mviles.
Disponible en: http://es.slideshare.net/cristopherf/metodologia-agil-para-el-diseo-de-aplicacionesmultimedias-moviles
34
Ibid Pag 16

47

Interfaz amigable.
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.4. ETAPA DE CODIFICACIN

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 software35

Los documentos originales estn creados en el idioma Ingls, pero ya han sido
traducido algunos de ellos a varios idiomas incluyendo el espaol, Podemos
35

Pgina disponible en https://www.owasp.org

48

utilizar los documentos y herramientas que ofrecen, OWASP tiene catalogado los
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. Est disponible en:
https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.
pdf y 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. Esta pgina est
Disponible
en:
https://www.owasp.org/images/5/5f/OWASP_Top_10__2013_Final_-_Espa%C3%B1ol.pdf

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. Estas instrucciones se
encuentran
en
la
pgina:
https://www.owasp.org/images/f/ff/3.OWASP_Day_Costa_Rica_Mario.pdf

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.
Esta informacin se puede encontrar en la direccin http://docplayer.es/1851183Seguridad-en-aplicaciones-web.html

4.4.1. VULNERABILIDADES TOP 10 OWASP:

Para tener una idea de lo que ofrece OWASP de acuerdo con estudios realizados,
citaremos algunas de las vulnerabilidades ms conocidas, frecuentes y
peligrosas:36

36

OWASP Top 10 2013- Los diez riesgos ms crticos en Aplicaciones Web, Disponible en:
https://www.owasp.org/images/5/5f/OWASP_Top_10_-_2013_Final_-_Espa%C3%B1ol.pdf

49

4.4.1.1.
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 datos.

Igualmente en la Pgina http://pressroom.hostalia.com/white-papers/ataquesinyeccion-sql, 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;
En
la
pgina
http://webdiis.unizar.es/~ftricas/Asignaturas/sei/Transparencias/sipractica6.pdf, 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 pgina 4, se
encuentra las vulnerabilidades de desbordamiento de memoria (buffer

50

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. https://www.owasp.org/index.php/SQL_Injection

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


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

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:
https://www.owasp.org/index.php/Query_Parameterization_Cheat_Sheet

Otros factores de riesgo como ataques a entidades externas XML contra


una
aplicacin
con
entrada
XML,
algunos
ejemplos
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing

Ofrece igualmente algunas pginas externas confiables en donde se


muestran algunos ejemplos de inyeccin de comandos como:
https://cwe.mitre.org/data/definitions/77.html

51

4.4.1.2.
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.37
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;

37

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


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

Tener una interfaz para desarrolladores y ofrece pginas con ejemplos de


muestra.

Ibid, pag. 8

52

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 https://www.owasp.org/index.php/Guide_to_Authentication entre
otras.

Trucos para la prevencin de este ataque disponible en:


https://www.owasp.org/index.php/Authentication_Cheat_Sheet_Espa%C3%
B1ol

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


olvido. https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

Trucos
en
el
manejo
de
sesin.
Disponible
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet

Diferentes pruebas para la autenticacin verificando la identidad digital con


sus
ejemplos
correspondientes.
Disponible
en:
https://www.owasp.org/index.php/Testing_for_authentication

Y algunas pginas externas que tambin ofrecen ejemplos y manera de


corregirlos adems de la prevencin de este ataque, disponible en:
https://cwe.mitre.org/data/definitions/287.html

53

en:

4.4.1.3.
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. 38
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

38

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:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_
Cheat_Sheet.

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
https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project_.Ja
va y el proyecto de sanitizacin de HTML en Java:
https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

Ibid, pag. 9

54

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


pgina http://docplayer.es/1851183-Seguridad-en-aplicaciones-web.html
Referencias o pginas web en donde se puede encontrar informacin al
respecto.

Autenticacin cheat Sheets


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

Prevencin de trucos Cross-Site Request Forgery (CSRF)


https://www.owasp.org/index.php/CrossSite_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet

Trucos de almacenamiento criptogrfico


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

Trucos de proteccin de la Capa de transporte


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

Trucos de prevencin de XSS (Cross Site Scripting)


https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_
Cheat_Sheet

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


XSS, en: http://docplayer.es/7639096-Guia-de-seguridad-para-sistemas-deinformacion-basada-en-owasp.html

4.4.1.4.
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.39
39

Ibid, pag 10

55

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: http://docplayer.es/1851183-Seguridad-en-aplicaciones-web.html
Referencias o pginas web en donde se puede encontrar informacin al
respecto.

Una pgina que entrega informacin acerca de esta vulnerabilidad, las


debilidades, la seguridad aplicada, escenarios de ataques con ejemplos,
https://www.owasp.org/index.php/Top_10_2013-A4Insecure_Direct_Object_References

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: https://www.owasp.org/index.php/ESAPI_Specification

Algunas referencias de pginas externas (CWE Common Wwakness


Enumeration), que ofrecen un ejemplo de ataque de referencia a un objeto
directo. Disponible en: https://cwe.mitre.org/data/definitions/22.html

4.4.1.5. 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

56

cuando existen pginas sin uso, fallas sin el parche correspondiente, archivos y
directorios sin proteccin.40
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.

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.

40

Gua de configuracin de seguridad OWASP en donde se evidencian los


errores y las soluciones para evitar errores de configuracin. Disponible en:
https://www.owasp.org/index.php?title=OWASP_Secure_Configuration_Gui
de&setlang=es

Ibid, pag 11

57

Gua para la revisin de cdigo para ciertas vulnerabilidades y entrega


informacin sobre el riesgo asociado con el cdigo inseguro. Disponible en:
https://www.owasp.org/images/2/2e/OWASP_Code_Review_GuideV1_1.pdf

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


producidos y su correspondiente explicacin.
Disponible en:
https://www.owasp.org/index.php/Testing_for_Error_Code_(OTG-ERR-001)

Definicin de cuatro niveles de verificacin de seguridad a nivel de


aplicacin con sus requisitos de verificacin. Disponible en:
ttps://www.owasp.org/images/4/4e/OWASP_ASVS_2009_Web_App_Std_R
elease.pdf

Algunas pginas externas como una Gua de configuracin de seguridad


CIS, disponible en: https://benchmarks.cisecurity.org/downloads/audit-tools/

4.4.1.6.
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. 41
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:

41

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


como en la parte externa de ella.

No almacenar datos sensibles innecesariamente.

Ibid, pag 12

58

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.

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. Disponible en:
https://help.totaralearning.com/pages/viewpage.action?pageId=6359857

Trucos
para
almacenamiento
criptogrfico.
Disponible
en:
https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet

Trucos para almacenamiento de contraseas: Disponible


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

Truco para la proteccin en la capa de transporte. Disponible en:


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

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


transporte.
Disponible
en:
https://www.owasp.org/index.php/Testing_for_Weak_SSL/TLS_Ciphers,_Ins
ufficient_Transport_Layer_Protection_(OTG-CRYPST-001)

59

en:

Algunas referencias externas como: CWE Common Weakness


Enumeration: cuestiones de cifrado, problemas criptogrficos. Disponible en
https://cwe.mitre.org/data/definitions/310.html

4.4.1.7.
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.42
Identificar la vulnerabilidad: Verificar cada funcionalidad de la aplicacin.

Verifica que el usuario muestre la navegacin en lugares autorizados?

Vigila la autenticacin del servidor?

Realiza pruebas de proxies con un rol privilegiado y luego con un rol menos
privilegiado?

Revisa el control de acceso en el cdigo?

Como prevenirlos:

42

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.

Ibid, pag 13

60

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 pueden encontrarse en esta pgina que est disponible en:
https://www.owasp.org/index.php/Top_10_2007Failure_to_Restrict_URL_Access.

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. Esta pgina est
disponible
en
https://owasp-esapijava.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessControlle
r.html.

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.
Disponible
en:
https://www.owasp.org/index.php/Guide_to_Authorization

Algunas referencias externas como: CWE Common Weakness


Enumeration: respecto de autorizaciones incorrectas o inadecuadas,
ejemplos, formas de correccin, esta pgina est disponible en:
https://cwe.mitre.org/data/definitions/285.html

4.4.1.8.
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. 43

43

Ibid, pag. 14

61

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.

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.

62

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, disponible en:
https://www.owasp.org/index.php/CrossSite_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet

Biblioteca que implementa una variante de patrn de contadores que


mitigan el riesgo de Cross-Site, disponible en la pgina de OWASP
https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project

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


solicitudes HTTP, las respuestas, las sesiones, las cookies, los
encabezados etc. La pgina est disponible en: https://owasp-esapijava.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/HTTPUtilities.ht
ml

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. Esta pgina est disponible en:
http://stackoverflow.com/questions/22555110/csrf-cross-site-requestforgery-protection-in-spring-mvc

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. Disponible en:
https://cwe.mitre.org/data/definitions/352.html

4.4.1.9.
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.44
Identificar la vulnerabilidad: Esta vulnerabilidad es difcil de identificar dadas las
versiones de los componentes, solo se puede verificar buscando en las bases
44

Ibid Pag. 15

63

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 45.
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. Disponible en la pgina http://www.redeszone.net/seguridadinformatica/

45

Pgina consultadas el 5 de diciembre de 2015, disponible en: http://www.redeszone.net/2015/06/20/labase-de-datos-nacional-de-vulnerabilidades-de-estados-unidos-es-vulnerable-a-un-cross-site-scripting/

64

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. Disponible en
https://www.google.com.co/search?q=traductor&oq=trad&aqs=chrome.0.69i
59j69i57j0l4.3548j0j7&sourceid=chrome&ie=UTF-8

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. Disponible en:
https://www.owasp.org/index.php/OWASP_Good_Component_Practices_Pr
oject

Reportajes e investigaciones acerca del uso de cdigo abierto:


http://www.pcworld.com.mx/Articulos/32188.htm
http://cioperu.pe/articulo/16747/es-seguro-el-software-de-codigo-abierto/

https://es.opensuse.org/Software_libre_y_de_c%C3%B3digo_abierto

Referencias externas como CVE (Common Vulnerabilities and Exposures)


diccionario de vulnerabilidades conocidas de la seguridad de la informacin
y la comunicacin. Disponible en https://cve.mitre.org/

Lista de vulnerabilidades corregidas de Ruby on Rails con la


recomendaciones de las versiones a actualizar, disponible en:
http://muyseguridad.net/2016/02/02/vulnerabilidades-ruby-on-rails-saltarseseguridad/

4.4.1.10.
A10 Redirecciones y reenvos no validados: Vulnerabilidad
producida por la necesidad propia de la aplicacin de redireccionar al usuario a
una pgina no segura, el atacante crea enlaces para que la vctima haga clic que

65

luego son llevados a una aplicacin de confianza y all los atacantes instalan el
cdigo malicioso.46
Identificar la vulnerabilidad:

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.

46

Ibid Pag. 16

66

Referencias que nos preparan ante esta vulnerabilidad y la forma de


protegerse.

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. Disponible en:
https://infow.wordpress.com/2011/09/15/owasp-top-ten-10-redirecciones-yreenvios-no-validados/

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. Disponible en:
https://owasp-esapijava.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/filters/SecurityW
rapperResponse.html

Algunas referencias externas como CWE Common Weakness Enumeration


en donde se explica cmo enterarse de si una URL de redireccin a un sitio
no es de confianza con algunos ejemplos. Disponible en:
https://cwe.mitre.org/data/definitions/601.html.

4.5. 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., disponible en:
https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spa
nish.pdf

67

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.
Disponible
en:
https://www.owasp.org/images/d/d6/Owasp-ciso-guide.pdf
OWASP Cheat Sheet: Trucos para identificar las vulnerabilidades y su
defensa Disponible en: https://translate.google.com.co/translate?hl=es419&sl=en&u=https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sh
eet&prev=search
OWASP Categora de las Vulnerabilidades: Lista de las vulnerabilidades, que
son, como se utilizan y como combatirlas. Disponible en:
https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=sea
rch&rurl=translate.google.com.co&sl=en&u=https://www.owasp.org/index.php/
Category:Vulnerability&usg=ALkJrhiPJIJCJW34BetOpiykG70P5dMKVw
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.
Disponible
en:
https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_
ver_3.0.pdf
Gua de revisin de cdigo OWASPO: ofrece verificacin de cdigo de las
aplicaciones, an no est publicado en espaol, solo en ingls. Disponible en:
https://www.owasp.org/images/2/2e/OWASP_Code_Review_Guide-V1_1.pdf
Lista de preguntas frecuentes con sus respuestas (en Ingls), disponible en:
https://www.owasp.org/index.php/OWASP_AppSec_FAQ
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.
Disponible en:
https://www.owasp.org/images/5/5f/OWASP_Top_10__2013_Final_-_Espa%C3%B1ol.pdf

68

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.

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.

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

69

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 47.

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 potenciales 48.

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. 49

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 50.

47

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


Disponible en http://findbugs.sourceforge.net/
49
Disponible en https://pmd.github.io/
50
Disponible en http://clarkware.com/software/JDepend.html
48

70

6.

TECNOLOGA A IMPLEMENTAR - ACUNETIX WEB VULNERABILITY


SCANNER

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.51

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

6.1. QUE ES Y PARA QU SIRVE 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.

6.2. QU DETECCIONES REALIZA

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.

51

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

71

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

6.3. APLICACIN DE LA HERRAMIENT 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.

72

Figura 5. Aplicacin de la herramienta ACUNETX a una pgina

Fuente: Construccin propia


Inicialmente muestra el nivel de vulnerabilidad

Figura 6. Nivel de vulnerabilidades encontradas

Fuente: Construccin propia

73

ALTO: 0
MEDIO: 56
BAJO: 2
INFORMACIN: 37
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 7: 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 guardado. A partir
de entonces cuando se muestra el formulario, el nombre y la contrasea se

74

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
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
75

Posible divulgacin de informacin sensible


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
76

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
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">

77

7.

PGINA WEB DEL DESARROLLO DEL PROYECTO.

Dado que para los estudiantes es ms cmodo ver una pgina Web, se ha creado
una pgina en la que puedan consultar la gua.

http://liliseguridadinformatica.webnode.es/

78

8.

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.

79

9.

BIBLIOGRAFA

Chile, G. d. (2008). Gua Digital. Obtenido de Gua Web:


http://www.guiadigital.gob.cl/guia-web
Digital, G. (febrero de 2009). Gobierno de Costa Rica. Obtenido de Guia para el
desarrollo de sitios Web 2.0:
http://www.academia.edu/5852253/Gobierno_de_Gu%C3%ADa_para_el_D
esarrollo_de_Sitios_Web_2.0_SI_IT_TI_IO_OS_S_W_WE_EB_B_2_2._.0_
0_Tabla_de_Contenidos
FEAPS, C. (octubre de 2007). Calidad FEAPS. Obtenido de Buenas Prcticas
FEAPS:
http://www.feapsmurcia.org/feaps/FeapsDocumentos.NSF/08db27d07184b
e50c125746400284778/84163cd187586d72c1256ffd003e699f/$FILE/quees
BBPP.pdf

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%20APLIC
ACIONES%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

80

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 Chile. (2007) Recuperado de:
http://www.guiadigital.gob.cl/guiaweb_old/guia-v2/

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

S. Lpez (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:

81

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

82