You are on page 1of 25

[2015]

Lenguaje de
Programacin III
Docente: Ing. Cristian Villalta Lagos
Tema:

Seguridad en Aplicaciones Web - OWASP

Alumno: LEN ANFOSSI, Marcelo R. M.


Cdigo: 096717980 Ciclo: V

Lenguaje de Programacin III

C ONTENIDO
1.

Introduccin .................................................................................................................................... 3

2.

Visin General ................................................................................................................................. 4

3.

Los ataques Web en Nmeros ........................................................................................................ 5

4.

Por qu son las aplicaciones web vulnerables? ........................................................................... 6

5.

Cmo se realiza el Hacking a las Aplicaciones Web? ................................................................... 7

6.

El Proyecto Abierto de Seguridad de Aplicaciones Web (OWASP) ............................................... 9

6.1.1.

El OWASP Top 10...................................................................................................................... 9

6.1.1.1.

A1 Vulnerabilidad por Inyeccin ......................................................................................... 10

6.1.1.2.

A2 Secuencia de comandos en sitios cruzados (XSS) .......................................................... 11

6.1.1.3.

A3 Prdida de autenticacin y gestin de sesiones ............................................................ 12

6.1.1.4.

A4 Referencia directa insegura a objetos ........................................................................... 13

6.1.1.5.

A5 Falsificacin de peticiones en sitios cruzados (CSRF) .................................................... 14

6.1.1.6.

A6 Defectuosa configuracin de seguridad ........................................................................ 15

6.1.1.7.

A7 Falla de restriccin de acceso a URL .............................................................................. 16

6.1.1.8.

A8 Redirecciones y reenvos no validados .......................................................................... 16

6.1.1.9.

A9 Almacenamiento criptogrfico inseguro ....................................................................... 17

6.1.1.10.

A10 Proteccin insuficiente en la capa de transporte .................................................... 18

7.

Resumen de Calificaciones de Riesgo de OWASP Top 10............................................................ 19

8.

Conclusiones ................................................................................................................................. 20

9.

Recomendaciones ......................................................................................................................... 22

Codificacin segura: ............................................................................................................................... 22


Pruebas de Escaneo y Vulnerabilidad: ................................................................................................... 22
Cortafuegos de Aplicacin Web (WAFs)................................................................................................. 23
Otras Buenas Prcticas a Seguir ............................................................................................................. 23
10. Referencias Bibliogrficas ............................................................................................................. 25

2
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

1. I NTRODUCCIN
La seguridad de aplicaciones Web es una rama de la Seguridad de la Informacin que se
ocupa especficamente de la seguridad de los sitios web y aplicaciones web. Se diferencia de
las otras ramas de la seguridad de la informacin en que la seguridad de aplicaciones web se
centra en las vulnerabilidades en el cdigo de la aplicacin que se expone durante una
sesin de usuario en la web. Las otras reas de seguridad de la informacin -que no se
discuten directamente en este documento- son de seguridad de red, seguridad de la
infraestructura, la seguridad de base de datos, y de la seguridad operacional.
La mayora de los ataques contra servidores web son a travs de firewalls de red y a travs
de los puertos http (80) o HTTPS (443). Algunas de las tcnicas de hacking ms utilizados son
la denegacin de servicio (DDoS), las fugas, Cross-site Scripting,

Inyeccin de SQL y

divulgacin
Debido a la complejidad de las aplicaciones web y sus arquitecturas de apoyo (es decir,
sistemas operativos, bases de datos, artculos de media, etc.), los ataques web pueden ser
muy sofisticados, con graves consecuencias de largo alcance. La complejidad de las
aplicaciones web tambin puede hacer de la seguridad de aplicaciones web una tarea ms
difcil que otras ramas de la Seguridad de la Informacin.
Los hackers apuntan sus ataques a las aplicaciones web, debido a que pueden llegar a ser
muy lucrativos para los que lo hagan. Por ejemplo, un ataque exitoso al servidor web de un
banco podra generar miles de nmeros de cuentas bancarias e informacin de contraseas
de usuarios. El hacker podra utilizar esa informacin para ganar una fortuna por hacer
transferencias y retiros de dinero no autorizados.
Este trabajado est escrito como una introduccin a la seguridad de aplicaciones web para
personas con formacin tcnica y profesional. Mi intencin es educar sobre los riesgos
inherentes a las aplicaciones web, las amenazas que enfrentan y las vulnerabilidades ms
comunes que contienen. Como resultado final de este trabajo, espero dar un conocimiento
bsico del tema y para que los desarrolladores sean capaces de construir sobre esta
informacin un mayor esfuerzo por proteger sus propias aplicaciones web.

3
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

2. V ISIN G ENERAL
La Internet se ha convertido en un lugar enorme donde nos comunicamos, hacemos nuestras compras, nuestras
operaciones bancarias, leemos las noticias, etc. Las empresas venden sus productos o servicios entre s y hacia los
consumidores. La continuacin de su funcionamiento y la salud ha llegado a depender de este comercio en lnea.
Para la mayora de la gente de su visin de Internet llega a travs de un navegador, los sitios web de las que estn
conectados y su correo electrnico. Los consumidores esperan que sus transacciones en lnea sean seguras, de lo
contrario no estaran haciendo compras o banca en lnea. Pero qu tan seguro son estos sitios web?
La mayora de los ingenieros de software dirn que todo software contiene errores. La mayora del software se
desarrolla con el enfoque en la funcionalidad y caractersticas. Las empresas son capaces de mantener una ventaja
competitiva al ofrecer un uso ms fcil o capacidades que sus competidores no tienen. El tiempo de entrega de un
nuevo desarrollo es tambin una gran ventaja competitiva, por ello, el tiempo para que los desarrolladores
encuentren y corrijan errores es limitado. Los planes de pruebas se basan solamente en asegurarse de que la
aplicacin hace lo que se supone que debe hacer cuando se les da una buena informacin.
La mala noticia es que hay una serie de personas afuera que estn probando su aplicacin web, as es, pero con una
intencin diferente. Estas personas envan deliberadamente informacin errnea a su sitio con la esperanza de que
encuentren errores que usted no conoce. Dado que la aplicacin web est siempre en lnea, los chicos malos
tienen la libertad de tiempo ilimitado para empujar y provocar errores en ella. Comprueban su servidor web para
ver si es vulnerable a fallas sin parches. Ponen a prueba sus campos de texto y mens desplegables para ver si
existen debilidades en la validacin de las entradas. Es probable que no quieran tomar su sitio o romper su
capacidad para funcionar. Pero ellos tienen un objetivo y utilizarn todo lo que puedan para llegar a ella. Si ellos son
ms inteligentes, lo harn de una manera que no revelan quines son o incluso algunos ms osados le alertaran de
que estn ah.
Esta es la esencia de la seguridad de las aplicaciones web. Qu tan bien se sostiene nuestra aplicacin web en
contra de estos ataques? Nos brinda informacin de seguridad con facilidad? Se confa en que el usuario slo
enviara datos que agradables? En resumen, debemos centrarnos en qu hacer cuando se utiliza de una manera
a la cual no estaba destinada?

4
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

3. L OS ATAQUES W EB EN N MEROS
Segn estadsticas solo en los Estados Unidos entre los aos 2005 al 2011, se registraron 297
infracciones de seguridad de las aplicaciones web conocidas pblicamente. De estos 297
incidentes se estima que 297,573,821 registros fueron comprometidos. El 70% de las
infracciones registradas fueron descubiertas por un tercero (no por la organizacin que fue
violada).
Uno de los casos ms sonados se produjo en 2010 en la Universidad de Maine, Orono,
Estados Unidos. Los hackers comprometieron la informacin personal de 4,585 estudiantes
que recibieron servicios de centro de orientacin de la universidad. (El centro de
asesoramiento proporciona a los estudiantes el apoyo y los servicios de salud mental.) La
informacin sobre en los Servidores inclua, nombres, nmeros de seguro social, y la
informacin clnica sobre cada estudiante que solicita los servicios de orientacin del centro
entre 08 de agosto 2002 y 21 de junio 2010.
Otro caso muy comentado ocurri en 2010 e involucr Small Dog Electronics en Waitsfield,
Vermont. Un hacker rompi el sitio web y comenz a robar informacin de los clientes de
tarjetas de crdito, luego de que la empresa comenz la recoleccin de las donaciones de
sus clientes para la ayuda solidaria en Hait.
Una de las violaciones ms notorias ocurri en noviembre de 2008, cuando los hackers
descubrieron la vulnerabilidad en la red de RBS WorldPay, una filial del Royal Bank of
Scotland. La vulnerabilidad fue explotada para obtener un nombre de usuario y la
contrasea que haya concedido el acceso a una base de datos que contena los nmeros de
cuenta y PINs de las tarjetas de dbito de nmina.
Los hackers luego accedieron a las cuentas y aumentaron las lneas de crdito en dlares de
cada tarjeta, y aumentaron la disponibilidad de dinero en cada una de ellas. Cuarentaicuatro
tarjetas de dbito falsas fueron generadas y distribuidas a 280 ciudades de todo el mundo a
una red previa de "casas de cambio". El 8 de noviembre, las casas de cambio en 280
ciudades de todo el mundo comenzaron a acceder a los cajeros automticos utilizando las

5
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


tarjetas falsas. Dentro de 12 horas, los hackers y las casas de cambio haban robado ms de
$ 9 millones de dlares de RBS WorldPay.

4. P OR QU SON LAS APLICACIONES WEB VULNERAB LES ?


En la actualidad aproximadamente el 50% de todo el trfico web esta ahora basado en SSL.
Con el trfico web basado en SSL puede venir una falsa sensacin de seguridad. Mucha
gente asume que la presencia de un certificado en un servidor web significa que el servidor
web crear un cifrado que habr un tnel desde el PC del usuario al servidor web y sus
transacciones sern seguras. De hecho, lo que realmente hace es que el servidor web sea
menos seguro, porque los firewalls tradicionales no detectan ataques Nivel 7. Si el trfico es
encriptado, hay bsicamente un tnel cifrado directamente a travs del firewall, el cual deja
cualquier dato y todo el trfico. Los sistemas IDS existentes, por ejemplo, que pueden
olfatear la red para detectar el trfico malo o daino, no pueden hacer su trabajo si el trfico
est cifrado. En su mayor parte, los ataques de capa 7 pueden llegar directamente al
servidor web sin ser detectados.

I LUSTRACIN 1 L A V ULNERABILIDAD

DE LAS

A PLICACIONES W EB

6
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

5. C MO SE REALIZA EL H ACKING A LAS A PLICACIONES W EB ?


Cuando un servidor de seguridad de aplicaciones web se instala y comienza a registrar y
rastrear el trfico, pronto se hace evidente que un gran nmero de spiders y robots estn
pasando a travs del firewall. Los spiders y robots en no son los de Google o Yahoo, ellos se
ha diseado para ser algo malicioso. Se peinan el sitio y buscan ciertas cosas (por ejemplo,
direcciones, correo electrnico, dominios, los niveles de parches, y cosas de esa naturaleza.)
Cuando encuentran lo que estn buscando, se llevan los datos a una nueva ubicacin central
(tal vez en China o Rusia) y es entonces que los hackers revisaran la informacin que les
parece prometedora.
Los hackers comienzan como objetivo con una aplicacin web y un dominio en particular
para obtener ms informacin. Lo hacen mediante la ejecucin de scripts orientados a mirar
a los sistemas operativos, las versiones de aplicaciones, puertos abiertos, y cualquier cosa
que se devuelva desde el servidor como respuesta. Cuando los hackers tienen suficiente
informacin para ejecutar un ataque, lo harn, por SQL Injection, Cross Site scripting, o algn
otro mtodo. El objetivo final es, obviamente, explotar informacin sensible (es decir,
obtener nmeros de tarjetas de crdito, datos financieros, y credenciales).

I LUSTRACIN 2 E NTRADA

S ALIDA

DE

P AQUETES TCP/IP

7
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

Tradicionalmente, se considera que la seguridad debe de ser el dominio de los ingenieros de


la red. Estos implementan sus servidores de seguridad, aplican control de accesos por listas a
los routers y colocan otros obstculos a los que estn fuera de la red. Los administradores de
sistemas tambin participan en este proceso. Ellos parchean las vulnerabilidades del sistema
operativo, limitan el acceso a los servidores y a su vez mantienen la disponibilidad de los
servicios del servidor. Pero cuando se trata de una aplicacin web que se ejecuta en el
servidor, se tiene una visin muy limitada de lo que est haciendo la solicitud. La Seguridad
de la red es el reino de la pila de las capas del TCP/IP de la primera a la tercera. El firewall
puede asegurarse de que slo se permite el trfico en los puertos 80 y 443 en el servidor
web, pero por lo general no tiene inters en los datos contenidos en la solicitud TCP. Si tiene
algn conocimiento del contenido, se limita en su conocimiento y slo puede aplicar los
filtros ms rudimentarios al trfico.
La seguridad de aplicaciones Web debe asumir y garantizar la seguridad en la capa siete: la
capa de aplicacin. En general, cualquier cosa a travs de HTTP se pasar a un servidor web
por el firewall. Con el uso generalizado de SSL para el comercio electrnico casi nada ms
puede ver los datos en el flujo TCP, ya que est encriptado. A menos que algo est actuando
como un proxy para el o los servidor(es) web(s), entonces cualquiera que mire el trfico de
la red slo ver el texto cifrado de los datos. Debido a todo esto una aplicacin web debe
estar asegurada a la hora que es diseada, escrita y probada. Esta ser su nica defensa.

I LUSTRACIN 3 E SQUEMA

DE UN

A TAQUE

CON

XITO

8
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

6. E L P ROYECTO A BIERTO DE S EGURIDAD DE A PLICACIONES W EB


(OWASP)
El Proyecto de Seguridad de Aplicaciones Web Abierta (OWASP) es un proyecto de seguridad
de las aplicaciones de cdigo abierto. Entre sus miembros figuran corporaciones,
organizaciones educativas, y personas de todo el mundo. La OWASP trabaja para crear
artculos de libre disponibilidad, metodologas, documentacin, herramientas y tecnologas
para la seguridad web. Es apoyado y gestionado por la Fundacin OWASP (organizacin
caritativa).
Como hemos mencionada OWASP es una comunidad de expertos en seguridad de
aplicaciones web, desarrolladores y otras partes interesadas. Su investigacin y la
experiencia colectiva se agruparon y se documentan en lnea. Esto es para un uso personal,
as como cualquier persona que se preocupa de pasar algn tiempo a estudiar el trabajo del
grupo. Los temas van desde cuestiones muy bsicas a temas muy estrechos sobre una
vulnerabilidad o aplicacin especfica.

6.1.1.

E L OWASP T OP 10
El OWASP Top 10 es un conjunto de clases de vulnerabilidades que son de muy
alto riesgo. Los programadores pueden verificar si sus aplicaciones cumplen las
mejores prcticas, en funcin de si cuenta o no con los servicios de proteccin
contra estas vulnerabilidades. El Top 10 de OWASP representa un amplio
consenso en cuanto a las vulnerabilidades ms crticas para la seguridad de las
aplicaciones web. Una variedad de expertos en seguridad de todo el mundo
contribuyen con su experiencia para producir la OWASP Top 10.
Las siguientes

vulnerabilidades, por orden de

gravedad decreciente,

comprenden la OWASP Top 10 2010:


A1 Inyeccin
A2 Secuencia de comandos en sitios cruzados (XSS)
A3 Prdida de autenticacin y gestin de sesiones

9
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


A4 Referencia directa insegura a objetos
A5 Falsificacin de peticiones en sitios cruzados (CSRF)
A6 Defectuosa configuracin de seguridad
A7 Falla de restriccin de acceso a URL
A8 Redirecciones y reenvos no validados
A9 Almacenamiento criptogrfico inseguro
A10 Proteccin insuficiente en la capa de transporte

6.1.1.1.

A1 V ULNERABILIDAD

POR I NYECCIN

Las vulnerabilidades de inyeccin -como la Inyeccin a SQL, OS,


o LDAP- pueden ocurrir cuando datos que no son de confianza
se enva a un intrprete como parte de un comando o una
consulta. Datos hostiles del atacante puede engaar al
intrprete para que ejecute comandos no deseados o acceder a
datos no autorizados.

I LUSTRACIN 4 E JEMPLO

DE

A TAQUE

POR I NYECCIN

La ilustracin 4 muestra un ejemplo de una inyeccin: el


hacker intenta poner en una pgina de bsqueda comandos
SQL, manda a traer cosas de una tabla, trata de apagar el
servidor, etc. En este ejemplo, el hacker est tratando de tener
acceso el servidor web llama a la base de datos e intenta
eliminar la lista de clientes.

10
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


6.1.1.2.

A2

S ECUENCIA
CRUZADOS (XSS)

DE

COMANDOS

EN

SITIOS

Una vulnerabilidad por Secuencia de comandos en Sitos


Cruzados (XSS) se produce cuando una aplicacin toma los
datos que se originan a partir de un usuario o programa y lo
enva al navegador sin validar o codificar los datos. XSS permite
a los hackers ejecutar scripts en el navegador de la vctima, que
pueden secuestrar sesiones de usuario, modificar sitios web,
redirigir al usuario a sitios maliciosos o realizar ataques de
phishing.

I LUSTRACIN 5 E JEMPLO

DE

A TAQUE XSS

La ilustracin 5 muestra un ejemplo de una vulnerabilidad XSS


que se detect en la seccin de clientes de un sitio web. En
este caso, solo se cort y pego en el campo de bsqueda del
cliente la siguiente cadena de un cdigo XSS, el cual se obtuvo
de

un

sitio

web

de

trucos:

<TABLE

BACKGROUND=javascript alert(Easy as 123)>. Despus de


hacer clic en el botn Buscar, el sitio web muestra una ventana
emergente que dice "Easy as 123".
Una vulnerabilidad XSS no siempre es peligrosa por s misma.
Sin embargo, una vulnerabilidad XSS le puede mostrar un
hacker que la debida diligencia no se haya llevado a cabo en el
sitio web y el sitio web puede ser susceptibles a otros ataques
ms complejos y ms perjudiciales. El hacker puede entonces

11
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


buscar otras vulnerabilidades de la OWASP Top 10 y encontrar
un punto de ataque.

6.1.1.3.

A3 P RDIDA

DE AUTENTICAC IN Y GESTIN DE

SESIONES

Cuando las funciones de aplicacin relacionadas con la


autenticacin y gestin de sesiones no se implementan
correctamente,

los

hackers

pueden

ser

capaces

de

comprometer contraseas, claves, y tokens de sesin (o


explotar otros defectos de implementacin) para asumir la
identidad de otros usuarios.
Un secuestro de sesin se produce cuando un hacker toma el
control de una sesin de usuario despus de obtener o generar
un ID de sesin de autenticacin con xito. Esto se hace
mediante la capturada, fuerza bruta o mediante ingeniera
reversa del ID de sesin, para tomar el control de sesin de
aplicacin web de un usuario legtimo, mientras que la sesin
est an en curso. Las causas de secuestro de sesin incluyen
los siguientes:

Un identificador de sesin existente no se invalida,


permitiendo que el (anterior) identificador de sesin
existente pueda ser utilizado.

Uso Forzado de un ID de sesin conocido, como se


muestra en la Ilustracin 6.

I LUSTRACIN 6 E JEMPLO

DE

EL

USO FORZADO DE UN

ID

DE SESIN

C ONOCIDO

12
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

6.1.1.4.

A4 R EFERENCIA

DIRECTA IN SEGURA A OBJETOS

Una referencia de objeto directo ocurre cuando un


desarrollador expone una referencia a un objeto de
implementacin interna, tales como, directorio o archivo de
base de datos clave. Sin un control de accesos, u otro tipo de
proteccin, los hackers pueden manipular estas referencias
para acceder a datos no autorizados. Por ejemplo, en
aplicaciones de banca, es comn utilizar el nmero de cuenta
como la clave principal. Por lo tanto, es tentador utilizar el
nmero de cuenta directamente en la propia interfaz web. La
mejor proteccin es evitar la exposicin de las referencias a
objetos directos a los usuarios. Usted puede hacer esto
mediante el uso de un ndice, mapas indirectos de referencia, u
otro mtodo indirecto, que es fcil de validar. Si debe utilizar
una referencia de objeto directo, asegrese de que el usuario
est autorizado antes de usarlo. Mantenga en mente lo
siguiente para evitar referencias a objetos directos inseguros:

Siempre que sea posible, evitar exponer a los usuarios con


referencias a objetos privados (como claves primarias o
nombres de archivos).
Validar extensamente las referencias a objetos privados con
un enfoque de "aceptar lo bueno conocido".
Verificar las autorizaciones a todos los objetos referenciados.
Asegrese de que la entrada no contiene patrones de ataque
como ../.

13
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

6.1.1.5.

A5 F ALSIFICACIN
CRUZADOS (CSRF)

DE PETI CIONES EN SITIOS

Un ataque CSRF fuerza el navegador de la vctima a iniciar la


sesin para enviar una peticin HTTP falsificada (incluyendo
automticamente el cookie de sesin de la vctima y cualquier
otra informacin de autenticacin) hacia una aplicacin web
vulnerable. Esto permite al hacker forzar el navegador de la
vctima a generar solicitudes que la aplicacin vulnerable cree
que son solicitudes legtimas de la vctima.
Un ejemplo prctico de CSRF es cuando un usuario ha iniciado
sesin en una aplicacin de banca con la sesin siendo vlida,
la cookie no ha caducado o el perodo de sesiones est todava
conectado desde una perspectiva timelimit y el hacker intenta
engaar al usuario para la realizacin de una accin en el sitio.
Esto suele implicar, el uso de cdigo malintencionado por parte
de un hacker, para obligar a un usuario a transferir o retirar
dinero; el usuario ni siquiera sabra que la transferencia o retiro
que estaba ocurriendo. Podemos tomar las siguientes medidas
para protegernos contra CSRF:
Verificar las operaciones con tokens y challenges.
Establecer plazos breves para los identificadores de sesin.
Garantizar que las aplicaciones no dependen de aplicaciones
testigos que se presenten de forma automtica por los
navegadores.
Utilice tokens criptogrficos para probar que el que realice la
accin se compruebe que sabe un secreto especfico sesin.

14
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

6.1.1.6.

A6 D EFECTUOSA

CONFIGURAC IN DE S EGURIDAD

Est compuesto de cualquier incumplimiento de las "mejores


prcticas"

que se nos brinda como recomendaciones

elementales para la seguridad de las aplicaciones web.


Las mejores prcticas para la seguridad de las aplicaciones web
incluyen, aunque no se limitan solo a, los siguientes:

El mantenimiento del ciclo de vida de desarrollo de un


sistema seguro - En la mayor medida posible, la prueba,
el control de calidad, y los entornos de produccin
deben ser idnticos. La seguridad debe estar integrada
en el ciclo de vida de desarrollo de sistemas.

Gestin de parches - Los parches debern ser instalados


de manera oportuna a todos los dispositivos de misin
crtica.

Escaneo y evaluacin de vulnerabilidades Los cuales


deben ser detallados y realizados con frecuencia. El
escaneo y la evaluacin de vulnerabilidades deberan de
dar lugar a planes de mitigacin y seguimiento.
Asimismo, debe haber un proceso que confirme las
correcciones de los problemas de seguridad detectados.

Endurecimiento de Sistemas Cualquier puerto


innecesario, servicios, cuentas o privilegios deben ser
desactivados.

Antivirus y proteccin contra malware Deben ser


instalados y utilizados.

15
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

6.1.1.7.

A7 F ALLA

DE RES TRICCIN DE ACCESO A

URL

La mayora de las aplicaciones web verifican los derechos de


acceso URL antes de emitir enlaces y botones protegidos. Sin
embargo,

las

aplicaciones

web

necesitan

realizar

comprobaciones de control de acceso similares cada vez que se


accede a una pgina protegida o los hackers podrn falsear la
URL para acceder a la pgina.
Si los derechos de acceso URL no estn correctamente
protegidos, cada vez que se accede a una pgina protegida, los
hackers finalmente pueden acceder a pginas restringidas. Los
hackers, podrn utilizar scripts automatizados para explorar
directorios o archivos al azar hasta que encuentren lo que
buscan.
No debemos asumir que los usuarios no sern conscientes de
las URL o las APIs ocultas. Siempre debemos asegurarnos que
las acciones administrativas y los privilegios de alto nivel estn
protegidos.

6.1.1.8.

A8 R EDIRECCIONES

Y REENV OS NO VALIDADOS

Las aplicaciones web frecuentemente redirigen y transmiten al


usuario a otros sitios y pginas web, y usan datos no confiables
para determinar las pginas de destino. Sin una correcta
validacin, los hackers pueden redirigir a sus vctimas a sitios
web de phishing o malware, o utilizan esta tcnica para
trasladarlos a pginas no autorizadas. Los siguientes son

16
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


algunos ejemplos de cmo los hackers utilizan esta tcnica para
redirigir las vctimas a sitios de phishing y malware:

Un hacker se vincula a una redireccin no validada y trata


de engaar a los usuarios a hacer clic en el enlace.

Debido a que el enlace es a un sitio vlido, los usuarios son


propensos a hacer clic en l.

Los hackers pueden codificar (y ocultar) la URL y aun el ms


inteligente de los usuarios finales pueden ser engaados al
seguir el enlace.

I LUSTRACIN 7 E JEMPLO

6.1.1.9.

DE

UN

USUARIO REDIRIGIDO A UN SITIO

A9 A LMACENAMIENTO

M ALWARE

CRIPTO GRFICO INSEGURO

Muchas aplicaciones web no protegen adecuadamente los


datos sensibles con el cifrado o hash apropiado (como tarjetas
de crdito, nmeros de seguro social, DNI, etc.). Los hackers
pueden robar o modificar los datos incorrectamente protegidos
para llevar a cabo el robo de una identidad, fraudes con
tarjetas de crdito u otros delitos.
Nosotros podemos tomar las siguientes medidas para
protegernos del almacenamiento criptogrfico inseguro:

Conozcamos

como

los

datos

personales,

privados,

confidenciales, patentes fluyen dentro y fuera de nuestro


entorno.

17
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

Implementar una fuerte encriptacin, autenticacin y


autorizacin en el transporte y el almacenamiento de datos
sensibles.

Separar las funciones del personal de TI, tales que los


analistas de bases de datos que pueden tener acceso a los
datos sensibles son diferentes de los analistas de seguridad
que gestionan las claves criptogrficas, eliminar cuentas
compartidas, y la actividad de registro.

Usar cifrado fuerte, algoritmos establecidos, claves fuertes,


funciones hash y sumas de comprobacin.

6.1.1.10.

A10 P ROTECCIN

INSUFICIEN TE EN LA CAPA DE

TRANSPORTE

Esta vulnerabilidad implica tpicamente cifrado dbil, no


autenticacin, y un fracaso para proteger la confidencialidad e
integridad del trfico de red sensibles. Cuando existen este tipo
de debilidades y fallas, la capa de transporte a menudo
soportar algoritmos dbiles y usa certificados vencidos o no
vlidos.
Dentro de las causas de la insuficiente proteccin de la capa de
transporte podemos mencionar:

Enlaces/saltos de HTTPS a HTTP que no han sido bien


pensados para asegurar que no existen escenarios en los
que una condicin de excepcin, como presionar el botn
atrs del navegador o modificar la URL, puede permitir que
una sesin de permanezca indebidamente o cambie al
modo HTTP cuando se estn transmitiendo datos en forma
segura.

18
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

El uso nombres y contraseas por detecto, los cuales son


fciles de adivinar.

El almacenamiento inadecuado de los datos sensibles en la


base de datos.

Longitudes de clave incorrectas, por ejemplo hace varios


aos un estudiante graduado en la Universidad de
California uso una red de cerca de 250 estaciones de
trabajo para romper un algoritmo de 40 bits en menos de
cuatro horas; utilizando la misma configuracin, pero con
un algoritmo de 128 bits le habra tomado 1.400.000 aos
poder romperla. El uso de la longitud de la clave incorrecta
hace que sea fcil de piratear una aplicacin web.

7. R ESUMEN DE C ALIFICACIONES DE R IESGO DE OWASP T OP 10


Las calificaciones de riesgo de OWASP se muestran en el siguiente cuadro. Los riesgos se clasifican de
acuerdo a explotabilidad, Prevalencia, detectabilidad y de impacto. Los riesgos se enumeran en el
orden de gravedad, desde la parte superior a la parte inferior del grfico.

I LUSTRACIN 8 OWASP C ALIFICACIONES

DE

R IESGO

19
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

Al poner las fallas en el formato Top 10, una organizacin puede calcular los factores de riesgo y
proporcionar un marco para reducir la exposicin global al riesgo.
El Top 10 de OWASP es amplio, pero hay otros riesgos importantes de seguridad en aplicaciones web
que constantemente se estn descubriendo. Debemos tener en cuenta que aun un nmero ilimitado
de vulnerabilidades no se han identificado.

8. C ONCLUSIONES
La seguridad de aplicaciones web es un esfuerzo serio que requiere una planificacin y compromiso por
parte del equipo de desarrollo y toda la organizacin. El conocimiento del problema es cada vez mayor
as como el incremento de las divulgaciones pblicas de informacin. Las empresas estn tomando ms
seriamente el problema general de la seguridad y como resultado estn descubriendo ms sobre la
seguridad de aplicaciones web. Esto es en parte un hecho positivo que ha salido de una legislacin que
exija la divulgacin y sanciones para las infracciones. Sin embargo, todava hay mucho por hacer. La
mayora de la informacin sobre el desarrollo web destaca la funcionalidad y nuevas caractersticas con
poca mencin de la seguridad. Una bsqueda en Amazon.com sobre "Web Development" muestra
cerca de 40,000 resultados. Una bsqueda de "Web Application Security" revela unos 5,000 ttulos.
Como notamos la diferencia es muy grande, no existe mucha informacin sobre la seguridad en
aplicaciones webs, incluso luego de revisar las 2 primeras pginas de los resultados nos daremos
cuenta que los temas subsiguientes son muy generales.
Uno de los retos que tiene la seguridad de la informacin, en general, es que tiene que responder a dos
aspectos que cambian muy rpidamente: la tecnologa y los criminales. Ninguno de los dos est quieto.
Las nuevas tecnologas se estn apresuraron en su implementacin con la misma rapidez como lo
fueron en los das de las puntocom. Temas como la inteligencia de negocios, AJAX, los servicios web 2.0
y estn por todas partes en noticias de tecnologa. Las empresas pueden ejercer una inmensa presin
para implementar las nuevas tecnologas en la lucha para ganar cualquier ventaja competitiva posible.
Al mismo tiempo el elemento criminal est aumentando su actividad y puede ser increblemente
innovador en respuesta a las situaciones cambiantes. Ms dinero se est moviendo en lnea y ms
personas estn aprendiendo que pueden robar sin salir de su silla. Se ha generado una dependencia

20
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


social del Internet y a su vez se ha incrementado la actividad delictiva, la seguridad de aplicaciones web
es un paso crtico en la proteccin de los clientes y los activos de las empresas de hoy en da.
Todava hay mucho por hacer para aumentar la seguridad de nuestras aplicaciones. La sensibilizacin y
la adecuada educacin sobre estos temas deben incrementarse. Los buenos hbitos se les debe
ensear desde el principio. Lamentablemente, actualmente existe mucha literatura tecnolgica, as
como clases e incluso seminarios que ensean prcticas de desarrollo malas. Las personas necesitan
que se les ensee correctamente desde el principio la forma de disear, desarrollar e implementar de
una manera segura. Ya es bastante difcil de aprender cosas nuevas, pero puede ser mucho ms difcil
volver atrs y desaprender viejos hbitos. A veces se hacen declaraciones similares a "Es slo un
pequeo sitio a nadie le importa atacarlo" o " Salimos por la puerta trasera y lo pones en lnea.
Volveremos ms tarde y lo arreglamos. Estas declaraciones son ingenuas en el mejor de los casos,
pero muy peligrosas en el peor. Los sistemas que estn en lnea estn expuestos a ser atacados casi de
forma inmediata. Algunos sitios tienen muy pocos datos valiosos detrs de ellos, pero se pueden
utilizar para atacar otros sistemas que lo hacen.
Los sistemas que s tienen datos valiosos detrs de sus servidores web sern examinados de cerca. Hay
gente que estar buscando la forma de tener acceso a esos datos y utilizarlos con fines no autorizados.
Nuestras aplicaciones deben estar preparadas para esta amenaza y ser lo suficientemente fuertes
como para resistir sus ataques.
Iniciativas como las de la OWASP, nos ayudan a estar alerta a las nuevas vulnerabilidades o ataques que
son detectados, debemos de estar siempre alertas y seguir las recomendaciones elementales de
seguridad.

21
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

9. R ECOMENDACIONES
Como sea mencionado, la seguridad web implica la integracin de la seguridad en el ciclo de vida de
desarrollo de software y adems de la aplicacin de las siguientes herramientas: codificacin segura,
pruebas de escaneo y vulnerabilidad, y los cortafuegos de aplicacin web. Es decir, la base de la
seguridad web se compone de medidas de seguridad de tecnolgica que cuenta con una larga data.

C ODIFICACIN

SEGU RA :

Ninguna aplicacin es completamente segura, pero debera de contar con los siguientes principios
para reducir los riesgos:
Minimizar la superficie de ataque (tapar los agujeros y minimizar los puntos de acceso)
Establecer y aplicar configuraciones de seguridad por defecto que cuenten con vencimientos de
contrasea, contraseas seguras, tiempos de espera, etc.
Poner en prctica el principio de "Menos Privilegios"; es decir no dar a los usuarios acceso a las
cosas que no se necesitan para hacer su trabajo.
Implementar "una defensa en profundidad" con re autenticacin, tokens, identificadores ocultos,
etc.
Las solicitudes deben fallar de forma segura.
No confiemos en los servicios o terceras partes.
Implementar "separacin de tareas" (por ejemplo, un administrador no es un auditor - y
viceversa).
Evitar la seguridad por oscuridad ("ocultar" es slo una solucin temporal).
Mantenga sencilla la seguridad.

P RUEBAS

DE

E SCAN EO

V ULNERABILIDAD :

Un escner de vulnerabilidades es un programa diseado para evaluar los ordenadores, sistemas


informticos, redes o aplicaciones para verificar sus debilidades. Para hacer su trabajo, un escner de
vulnerabilidad se basa en una base de datos que contiene toda la informacin necesaria para
comprobar los agujeros de seguridad en los sistemas, servicios, puertos, protocolos y anomalas en la
construccin de paquetes.
La funcin primaria de un escner de vulnerabilidad es llevar a cabo el reconocimiento de la red, que
se lleva a cabo tpicamente por un atacante remoto, el cual intentar obtener informacin o acceso a
una red a la cual no est autorizada o permitido.
En condiciones ptimas, un escner debe ser capaz de hacer lo siguiente:
Mantener una base de datos actualizada de vulnerabilidades.
Detectar vulnerabilidades genuinas sin un excesivo nmero de falsos positivos.

22
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III


Llevar a cabo simultneamente exploraciones mltiples.
Realizar anlisis de tendencias y proporcionar informes claros de los resultados.
Proporcionar recomendaciones para medidas de lucha para eliminar las vulnerabilidades
descubiertas.

C ORTAFUEGOS

DE

A PLICACIN W EB (WAF S )

Un cortafuego de aplicaciones Web (WAF) se utiliza como un dispositivo de seguridad para proteger al
Servidor Web de Ataques. Se encuentra entre un cliente web y un servidor web, analizando los
mensaje enviados por la Capa 7, y restringe los que producen violaciones de la poltica de seguridad
programada.
Los WAF a menudo son llamados "cortafuegos inspeccin profunda de paquetes, porque ellos
observan cada solicitud y cada respuesta dentro de las capas de servicio HTTP/HTTPS/SOAP/XMLRPC/web (por lo general a travs de los puertos 80 y 443).
Algunos WAF observan si hay ciertas firmas de ataque para tratar de identificar a un ataque
especfico que un intruso puede estar enviando, mientras que otros buscan un comportamiento
anormal que no encaja en los patrones normales de trfico del sitio web. Algunas de las tecnologas y
arquitecturas ms comunes en los WAFs son: Reverse Proxy, Transparent Proxy, Layer 2 bridge,
Network Monitor / Out of Band, Host/Server.

O TRAS B UENAS P RCTICAS

S EGUIR

Afortunadamente, hay organizaciones que existen con el propsito de ayudar a los individuos, grupos
y empresas sobre este tema. OWASP ha publicado la "Gua para Construir Aplicaciones Web seguras,
que es un recurso valioso para las organizaciones que buscan informacin sobre las aplicaciones web.
La gua se basa en el fundamento de que la seguridad es ms un proceso que algo depende de una
determinada plataforma o lenguaje de programacin. OWASP establece que para una aplicacin web
para estar seguro que necesita como mnimo la siguiente.
Nuestras empresas deben aspirar a contar con:

Una Gestin Organizacional que aboga por la seguridad.


Una Poltica de Seguridad de la Informacin acorde con las normativas nacionales e internacionales.
Una Metodologa de Desarrollo adecuada con sus respectivos controles y actividades de seguridad.
Con Procesos de Gestin de actualizaciones y configuraciones seguras

23
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

Si una organizacin trabaja para alcanzar y seguir estos cuatro elementos, se encontrar con las
defensas especficas que son necesarias para mitigar las vulnerabilidades descritas en este documento.
Un plan de seguridad por escrito ayuda a asegurarse de que los objetivos de seguridad de una
organizacin son claros y equilibrados.
Dado que la seguridad se implementa en el desarrollo de metodologa de los desarrolladores, estos
obtendrn la conciencia y el conocimiento que para prevenir posibles vulnerabilidades. Tambin ayuda
a garantizar que se toman las medidas de proteccin consistente en todo el proceso de desarrollo.
Por ltimo, la liberacin segura y ayuda gestin de la configuracin mantienen las cosas seguras
durante la liberacin y ms all. Una organizacin que invierte el tiempo para aprender estos procesos
y hacerlos reales y efectivos estarn en una slida posicin para aprovechar los beneficios de una
aplicacin segura.

24
Alumno: LEN ANFOSSI, Marcelo R. M.

Lenguaje de Programacin III

10. R EFERENCIAS B IBLIOGRFICAS


Mora, S. L. (2002). Programacin de aplicaciones web: historia, principios bsicos y clientes
web. Editorial Club Universitario.
Curphey, M., & Arawo, R. (2006). Web application security assessment tools. Security &
Privacy, IEEE, 4(4), 32-41.
Seminar, D. Web Application Security.
Arredondo, M. L. Efectividad de OWASP Para Proteger Applicaciones Web Contra Inyeccin de
SQL.
Stuttard, D., & Pinto, M. (2007). The web application hacker's handbook: discovering and
exploiting security flaws. John Wiley & Sons.
OWASP, T. (2010). 10 2010. The Ten Most Critical Web Application Security Risks.
Stallings, W. (2004). Fundamentos de seguridad en redes: aplicaciones y estndares. Pearson
Educacin.

25
Alumno: LEN ANFOSSI, Marcelo R. M.

You might also like