25
Docente: Ing. Cristian Villalta Lagos Lenguaje de Programación III [2015] Alumno: LEÓN ANFOSSI, Marcelo R. M. Código: 096717980 Ciclo: V Tema: Seguridad en Aplicaciones Web - OWASP

Trabajo Academico Seguridad de Aplicaciones WEb

Embed Size (px)

DESCRIPTION

Trabajo Académico UIGV

Citation preview

  • Docente: Ing. Cristian Villalta Lagos

    Lenguaje de

    Programacin III

    [2015]

    Alumno: LEN ANFOSSI, Marcelo R. M.

    Cdigo: 096717980 Ciclo: V

    Tema:

    Seguridad en Aplicaciones Web - OWASP

  • Lenguaje de Programacin III

    2 Alumno: LEN ANFOSSI, Marcelo R. M.

    CONTENIDO 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

  • Lenguaje de Programacin III

    3 Alumno: LEN ANFOSSI, Marcelo R. M.

    1. INTRODUCCIN

    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.

  • Lenguaje de Programacin III

    4 Alumno: LEN ANFOSSI, Marcelo R. M.

    2. VISIN GENERAL

    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?

  • Lenguaje de Programacin III

    5 Alumno: LEN ANFOSSI, Marcelo R. M.

    3. LOS ATAQUES WEB EN NMEROS

    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

  • Lenguaje de Programacin III

    6 Alumno: LEN ANFOSSI, Marcelo R. M.

    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. POR QU SON LAS APLICACIONES WEB VULNERABLES?

    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.

    ILUSTRACIN 1 LA VULNERABILIDAD DE LAS APLICACIONES WEB

  • Lenguaje de Programacin III

    7 Alumno: LEN ANFOSSI, Marcelo R. M.

    5. CMO SE REALIZA EL HACKING A LAS APLICACIONES WEB?

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

    ILUSTRACIN 2 ENTRADA Y SALIDA DE PAQUETES TCP/IP

  • Lenguaje de Programacin III

    8 Alumno: LEN ANFOSSI, Marcelo R. M.

    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.

    ILUSTRACIN 3 ESQUEMA DE UN ATAQUE CON XITO

  • Lenguaje de Programacin III

    9 Alumno: LEN ANFOSSI, Marcelo R. M.

    6. EL PROYECTO ABIERTO DE SEGURIDAD DE APLICACIONES WEB (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. EL OWASP TOP 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

  • Lenguaje de Programacin III

    10 Alumno: LEN ANFOSSI, Marcelo R. M.

    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 VULNERABILIDAD POR INYECCIN

    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.

    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.

    ILUSTRACIN 4 EJEMPLO DE ATAQUE POR INYECCIN

  • Lenguaje de Programacin III

    11 Alumno: LEN ANFOSSI, Marcelo R. M.

    6.1.1.2. A2 SECUENCIA DE COMANDOS EN SITIOS CRUZADOS (XSS)

    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.

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

    ILUSTRACIN 5 EJEMPLO DE ATAQUE XSS

  • Lenguaje de Programacin III

    12 Alumno: LEN ANFOSSI, Marcelo R. M.

    buscar otras vulnerabilidades de la OWASP Top 10 y encontrar

    un punto de ataque.

    6.1.1.3. A3 PRDIDA DE AUTENTICACIN 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.

    ILUSTRACIN 6 EJEMPLO DE EL USO FORZADO DE UN ID DE SESIN CONOCIDO

  • Lenguaje de Programacin III

    13 Alumno: LEN ANFOSSI, Marcelo R. M.

    6.1.1.4. A4 REFERENCIA DIRECTA INSEGURA 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 ../.

  • Lenguaje de Programacin III

    14 Alumno: LEN ANFOSSI, Marcelo R. M.

    6.1.1.5. A5 FALSIFICACIN DE PETICIONES EN SITIOS CRUZADOS (CSRF)

    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.

  • Lenguaje de Programacin III

    15 Alumno: LEN ANFOSSI, Marcelo R. M.

    6.1.1.6. A6 DEFECTUOSA CONFIGURACIN DE SEGURIDAD

    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.

  • Lenguaje de Programacin III

    16 Alumno: LEN ANFOSSI, Marcelo R. M.

    6.1.1.7. A7 FALLA DE RESTRICCIN 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 REDIRECCIONES 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

  • Lenguaje de Programacin III

    17 Alumno: LEN ANFOSSI, Marcelo R. M.

    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.

    6.1.1.9. A9 ALMACENAMIENTO CRIPTOGRFICO 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.

    ILUSTRACIN 7 EJEMPLO DE UN USUARIO REDIRIGIDO A UN SITIO MALWARE

  • Lenguaje de Programacin III

    18 Alumno: LEN ANFOSSI, Marcelo R. M.

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

  • Lenguaje de Programacin III

    19 Alumno: LEN ANFOSSI, Marcelo R. M.

    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. RESUMEN DE CALIFICACIONES DE RIESGO DE OWASP TOP 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.

    ILUSTRACIN 8 OWASP CALIFICACIONES DE RIESGO

  • Lenguaje de Programacin III

    20 Alumno: LEN ANFOSSI, Marcelo R. M.

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

    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

  • Lenguaje de Programacin III

    21 Alumno: LEN ANFOSSI, Marcelo R. M.

    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.

  • Lenguaje de Programacin III

    22 Alumno: LEN ANFOSSI, Marcelo R. M.

    9. RECOMENDACIONES

    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.

    CODIFICACIN SEGURA:

    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.

    PRUEBAS DE ESCANEO Y VULNERABILIDAD:

    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.

  • Lenguaje de Programacin III

    23 Alumno: LEN ANFOSSI, Marcelo R. M.

    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.

    CORTAFUEGOS DE APLICACIN WEB (WAFS)

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

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

    OTRAS BUENAS PRCTICAS A SEGUIR 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

  • Lenguaje de Programacin III

    24 Alumno: LEN ANFOSSI, Marcelo R. M.

    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.

  • Lenguaje de Programacin III

    25 Alumno: LEN ANFOSSI, Marcelo R. M.

    10. REFERENCIAS BIBLIOGRFICAS

    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.