Académique Documents
Professionnel Documents
Culture Documents
Computacin
Autor:
Leonardo Fabin Montalvn Celi
Loja - Ecuador
Contenido
1.
Problemtica................................................................................................. 5
2.
Situacin Actual............................................................................................ 7
3.
Estadsticas................................................................................................... 8
4.
Tringulo de la Seguridad............................................................................. 9
5.
OWASP.......................................................................................................... 9
5.1.
Introduccin............................................................................................... 9
5.2.
5.3.
5.4.
Identificacin de Riesgos.........................................................................11
5.5.
5.5.1.
5.5.2.
5.6.
5.6.1.
A1 Inyeccin...................................................................................... 14
5.6.1.1.
Definicin.......................................................................................... 14
5.6.1.2.
Riesgos.............................................................................................. 14
5.6.1.3.
5.6.1.4.
5.6.1.5.
Prevencin......................................................................................... 15
5.6.2.
5.6.2.1.
Definicin.......................................................................................... 16
5.6.2.2.
Riesgos.............................................................................................. 16
5.6.2.3.
5.6.2.4.
5.6.2.5.
Prevencin......................................................................................... 17
5.6.3.
5.6.3.1.
Definicin.......................................................................................... 17
5.6.3.2.
Riesgos.............................................................................................. 17
5.6.3.3.
5.6.3.4.
5.6.3.5.
Prevencin......................................................................................... 19
5.6.4.
5.6.4.1.
Definicin.......................................................................................... 19
5.6.4.2.
Riesgos.............................................................................................. 19
2
5.6.4.3.
5.6.4.4.
5.6.4.5.
Prevencin......................................................................................... 20
5.6.5.
5.6.5.1.
Definicin.......................................................................................... 21
5.6.5.2.
Riesgos.............................................................................................. 21
5.6.5.3.
5.6.5.4.
5.6.5.5.
Prevencin......................................................................................... 22
5.6.6.
5.6.6.1.
Definicin.......................................................................................... 22
5.6.6.2.
Riesgos.............................................................................................. 23
5.6.6.3.
5.6.6.4.
5.6.6.5.
Prevencin......................................................................................... 24
5.6.7.
5.6.7.1.
Definicin.......................................................................................... 24
5.6.7.2.
Riesgos.............................................................................................. 24
5.6.7.3.
5.6.7.4.
5.6.7.5.
Prevencin......................................................................................... 25
5.6.8.
5.6.8.1.
Definicin.......................................................................................... 25
5.6.8.2.
Riesgos.............................................................................................. 26
5.6.8.3.
5.6.8.4.
5.6.8.5.
Prevencin......................................................................................... 27
5.6.9.
5.6.9.1.
Definicin.......................................................................................... 27
5.6.9.2.
Riesgos.............................................................................................. 27
5.6.9.3.
5.6.9.4.
5.6.9.5.
Prevencin......................................................................................... 28
3
5.8.
Conclusiones........................................................................................... 30
5.9.
Recomendaciones.................................................................................... 30
5.10.
Bibliografa........................................................................................... 31
1. Problemtica
En la actualidad (Milano, 2007) la seguridad no es tomada en cuenta durante el proceso
de desarrollo de aplicaciones web, por lo general la seguridad es tomada en cuenta en la
ltima etapa del ciclo de vida del desarrollo de un sistema (SDLC 1). En la Figura 1, se
pude observar el ciclo de vida del desarrollo de sistema, mientras que en la Figura 2, se
indica la curva del costo de implementar seguridad en las ltimas fases del SDLC, es
decir mientras ms nos demoremos en implementar la seguridad ms costoso ser.
Pero cuales son los principales motivos por lo que no se toma en cuenta la
implementacin de la seguridad, para (Milano, 2007), los principales mitos son:
1 SDLC (System Development Life Cycle).- (Tutorialspoint.com, n.d.) ciclo
de vida del desarrollo de sistemas o software, es un framework, donde se
especifican las tareas o actividades que se deben realizar en cada etapa del
proceso del desarrollo de software.
5
lo puede deshabilitar.
No hay manera de explotarla.
No hay tiempo para incluir seguridad.
Recolectando en puntos principales, la problemtica de la no implementacin de la
seguridad se debe a:
Muchos de los desarrolladores y/o lderes de proyectos no consideran importante
incluir la seguridad, y creen que no aporta ningn valor.
Resolver las vulnerabilidades antes de la ejecucin de un proyecto se toma como
un proceso costoso e innecesario.
El objetivo principal es la funcionalidad sin tomar en cuenta aspectos de seguridad.
Tiempos cortos para desarrollos y/o proyectos.
La seguridad en aplicaciones no se ve como una inversin sino como un costo
impuesto por la necesidad de cumplir las normas y reglamentos.
Mala comunicacin entre el equipo o departamentos involucrados, en un ambiente
de desarrollo de aplicaciones, se pueden encontrar problemas graficados en la
Figura 3.
2. Situacin Actual
En la sociedad tecnolgica actual, los riesgos de que nuestros sistemas o aplicaciones
web sean atacados por hackers, por no tener una implementacin de seguridad robusta
se vuelve cada vez ms comn, pero que hacen los hackers con nuestros sistemas:
1. Principalmente los hacker / researchers, encuentra vulnerabilidades o debilidades
en el software.
2. Cuando encuentra una vulnerabilidad, no importa en qu plataforma (Windows,
Linux, Unix, Oracle, SqlServer), esta vulnerabilidad es publicada.
3. Se crean websites, con el detalle de la vulnerabilidad y como explotarla.
4. Se libera el fix, parche, SP o se publica el workaround.
5. Estos parches son instalados y testeados por el administrador.
Las principales causas para que los hacker encuentren vulnerabilidades en nuestros
sistemas son:
1.
2.
3.
4.
5.
6.
3. Estadsticas
Para (Brumfield, 2014), en un estudio realizado en el 2013, que cubra ms de 63.000
incidentes de seguridad, de 50 organizaciones participantes a nivel global, se determin
que el 92%
4. Tringulo de la Seguridad
Por qu se representa como un tringulo? (Batshoun, n.d.), en la Figura 5, si se
comienza en el centro y se mueve el punto hacia la seguridad, se est moviendo ms
lejos de la funcionalidad y la usabilidad. Si se mueve el punto hacia la Usabilidad, se est
alejando de la Seguridad y de la Funcionalidad. En pocas palabras, a medida que
aumenta la seguridad, la funcionalidad del sistema y la facilidad de uso disminucin.
Con todas las amenazas a la seguridad que existen en nuestro mundo digital, es un
desafo, proporcionar una seguridad adecuada a los datos y la red interna. La pregunta
que a menudo los clientes formulan es "Estamos haciendo lo suficiente?" Siempre hay
algo ms que puede hacer. No hay mecanismo suficiente para proteger sus datos y red.
La seguridad se logra mejor a travs de un enfoque por capas. El nmero de capas y
exhaustividad de cada capa son una cuestin de grados y se debe discutir de manera
recurrente.
5. OWASP
5.1.
Introduccin
5.2.
OWASP TOP 10
De los aos de estudios sobre los ataques y vulnerabilidades de las aplicaciones web de
nuestras organizaciones, se ha desarrollado un proyecto denominado TOP 10 de OWASP
el mismo que realiza 10 categorizaciones de los ataques ms comunes que pueden
atacar las aplicaciones web de las organizaciones, con el objetivo de crear una mejor
conciencia sobre la seguridad de las aplicaciones.
OWASP 2010 y 2013
En la Figura 6, se muestra la categorizacin de los 10 ataques que pueden ser vctimas
las aplicaciones web de cualquier organizacin, adems se hace referencia al listado del
2010 con el 2013, con la diferencia que los escenarios de amenazas para la seguridad de
aplicaciones cambian constantemente.
5.3.
Los atacantes pueden utilizar diversas rutas en nuestra aplicacin para encontrar
vulnerabilidades. Cada una de esta ruta es un riesgo que debemos prestar atencin. En la
Figura 7, se muestra las posibles rutas dentro de nuestra aplicacin, en donde se examina
la dificultad para encontrar la vulnerabilidad y el impacto que tendr nuestra aplicacin si
se llegara a explotar la vulnerabilidad, en la organizacin se evala la probabilidad
asociada a cada amenaza de vulnerabilidad, vector de ataque y la debilidad de la
seguridad, esto determina el riesgo total.
10
5.4.
Identificacin de Riesgos
5.5.
11
5.6.
Los nombres en los riesgos en el Top 10 de OWASP, se deben al tipo de ataque, debilidad
o impacto que causan.
5.6.1. A1 Inyeccin.
5.6.1.1.
Definicin
Las fallas de inyeccin, tales como SQL, OS, y LDAP, ocurren cuando datos no confiables
son enviados a un intrprete como parte de un comando o consulta. Los datos enviados
por parte del atacante pueden engaar al interprete para que ejecute comandos no
intencionados o para acceder datos no autorizados.
5.6.1.2.
Riesgos
13
5.6.1.3.
5.6.1.4.
Para ejecutar una inyeccin se realizan los siguientes pasos, adems se ilustra en la
Figura 12.
1.
2.
3.
4.
la aplicacin.
5. La aplicacin descifra los datos normalmente y enva los resultados al atacante.
14
5.6.1.5.
Prevencin
Definicin.
5.6.2.2.
Riesgos.
5.6.2.3.
Estas vulnerabilidades pueden permitir que algunas o todas las cuentas sean atacadas.
Una vez que el ataque resulte exitoso, el atacante podra realizar cualquier accin que la
vctima pudiese. Las cuentas privilegiadas son objetivos prioritarios.
5.6.2.4.
Las etapas del ataque por prdida de autenticacin y gestin de sesiones, se demuestran
en la Figura 14.
16
5.6.2.5.
Prevencin
Definicin.
Las fallas XSS, ocurren cada vez que una aplicacin toma datos no confiables y los enva
al navegador web sin una validacin y codificacin apropiada. Las fallas de XSS permiten
a los atacantes ejecutar secuencia de comandos en el navegador de la vctima, los cuales
pueden secuestrar las sesiones de usuario, destruir sitios web, o dirigir al usuario hacia un
sitio malicioso.
5.6.3.2.
Riesgos.
17
5.6.3.3.
5.6.3.4.
18
5.6.3.5.
Prevencin.
Definicin.
Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a
un objeto de implementacin interno, tal como un fichero, directorio, o base de datos. Sin
un chequeo de control de acceso u otra proteccin, los atacantes pueden manipular estas
referencias para acceder datos no autorizados.
5.6.4.2.
Riesgos.
En la Figura 17, se identifica los riesgos por referencia directa insegura a objetos.
5.6.4.3.
Dichas vulnerabilidades pueden comprometer toda la informacin que pueda ser referida
por parmetros. A menos que el espacio de nombres resulte escaso, para un atacante
resulta sencillo acceder a todos los datos disponibles de este tipo.
5.6.4.4.
Para ejecutar un ataque por referencia directa insegura a objetos, los hacker hacen lo
siguiente, como se ilustra en la Figura 18.
5.6.4.5.
Prevencin.
20
Definicin.
Una buena seguridad requiere tener una configuracin segura, definida e implementada
para la aplicacin, servidor de aplicaciones, servidor web, base de datos, plataforma, etc.
Todas estas configuraciones deben ser definidas, implementadas, y mantenidas ya que
por lo general no son seguras por defecto. Esto incluye mantener todo el software
actualizado, incluidas las libreras de cdigo utilizadas por la aplicacin.
5.6.5.2.
Riesgos.
5.6.5.3.
21
5.6.5.4.
5.6.5.5.
Prevencin.
Definicin.
22
5.6.6.2.
Riesgos.
5.6.6.3.
Los fallos frecuentemente comprometen todos los datos que deberan estar protegidos.
Tpicamente, esta informacin incluye datos sensibles como ser registros mdicos,
credenciales, datos personales, tarjetas de crdito, etc.
5.6.6.4.
23
5.6.6.5.
Prevencin.
Definicin.
5.6.7.2.
Riesgos.
En la Figura 23, se identifica los riesgos por el inexistente control de acceso a nivel de
funcionalidades.
24
5.6.7.3.
5.6.7.4.
Figura 24. Demostracin ataque por inexistente control de acceso a nivel de funcionalidades
Fuente: Tomado de (Martnez & Espinoza, n.d.)
5.6.7.5.
Prevencin.
Definicin.
Un ataque CSRF obliga al navegador de una vctima autenticada, enviar una peticin
HTTP falsificada, incluyendo la sesin del usuario y cualquier otra informacin de
25
5.6.8.2.
Riesgos.
5.6.8.3.
Los atacantes pueden cambiar cualquier dato que la vctima est autorizada a cambiar, o
a acceder a cualquier funcionalidad donde est autorizada, incluyendo registro, cambio de
estado o cierre de sesin.
26
5.6.8.4.
5.6.8.5.
Prevencin.
Incluir un token nico en el campo oculto, para que el valor del campo se enve en
el cuerpo de la solicitud HTTP.
El token nico tambin puede ir incluido en la URL, o un parmetro de la misma.
Volverse a autenticar para comprobar que se trata de un usuario legtimo.
Definicin.
Algunos componentes tales como las libreras, frameworks y otros mdulos de software
casi siempre funcionan con todos los privilegios. Si se ataca un componente vulnerable
esto podra facilitar la intrusin en el servidor o una perdida seria de datos. Las
aplicaciones que utilicen componentes con vulnerabilidades conocidas debilitan las
defensas de la aplicacin y permiten ampliar el rango de posibles ataques e impactos.
5.6.9.2.
Riesgos.
En la Figura 27, se identifica los riesgos por el uso de componentes con vulnerabilidades
conocidas.
27
5.6.9.3.
El rango completo de debilidades incluye inyeccin, control de acceso roto, XSS, etc. El
impacto puede ser desde mnimo hasta apoderamiento completo del equipo y
compromiso de datos.
5.6.9.4.
5.6.9.5.
Prevencin.
5.6.10.
5.6.10.1. Definicin.
Las aplicaciones web frecuentemente redirigen y reenvan a los usuarios hacia otras
pginas o sitios web, y utilizan datos no confiables para determinar la pgina de destino.
Sin una validacin apropiada, los atacantes pueden redirigir a las vctimas hacia sitios de
phishing o malware, o utilizar reenvos para acceder pginas no autorizadas.
28
5.6.10.2. Riesgos.
En la Figura 28, se identifica los riesgos por redirecciones y reenvos no vlidos.
29
5.6.10.5. Prevencin.
Evitar el uso de redirecciones y reenvos.
Si se utiliza, no involucrar parmetros manipulables por el usuario para definir el
destino.
Si los parmetros de destino no pueden ser evitados, asegrese que el valor
suministrado sea vlido y autorizado para el usuario.
5.7.
Los controles del Top 10 de OWASP, son una lista de tcnicas de seguridad que deben
ser incluidas en cada proyecto de desarrollo de software. Estos controles permiten ayudar
a los desarrolladores asegurar el desarrollo de aplicaciones. Los principales controles
para las vulnerabilidades son:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Consultas parametizadas.
Datos codificados.
Validar todas las entradas.
Implementar los controles de acceso apropiados.
Establecer controles para la identidad y autenticacin.
Proteccin y privacidad de datos.
Implementar logging, manejo de errores y deteccin de intrusiones.
Implementar caractersticas de seguridad y libreras de seguridad.
Incluir requerimientos especficos del usuario.
30
5.8.
Conclusiones.
5.9.
Recomendaciones.
No esperar seguridad por parte de los usuarios, desconfiar siempre en los datos
ingresados por parte de ellos.
Adoptar una metodologa para el ciclo de vida de desarrollo de software seguro,
incorporndola la seguridad en cada fase del desarrollo.
Las organizaciones deben adoptar buenas prcticas o estndares para la codificacin
segura, de manera que se prevengan las fallas que son introducidas con las aplicaciones.
Educacin, capacitacin, entrenamiento y concientizacin a las partes involucradas en el
desarrollo como tcnica preventiva para proporcionar los conocimientos para escribir
cdigo seguro.
Actualizacin continua de conocimientos de desarrolladores sobre tcnicas nuevas y
emergentes.
5.10. Bibliografa
Batshoun, W. (n.d.). The Security, Functionality and Usability triangle.
Linkology.
Retrieved
June
11,
2015,
from
http://www.linkologyusa.com/blog/2014/8/28/the-security-functionality-andusability-triangle
Brumfield, C. (2014). Verizon Data Breach Report: Nine Patterns Cover 92% of
Cybersecurity
Incidents.
Retrieved
June
11,
2015,
from
http://www.digitalcrazytown.com/2014/04/verizon-data-breach-reportnine.html
31
EcuRed. (n.d.). Arquitectura de tres niveles. Retrieved June 11, 2015, from
http://www.ecured.cu/index.php/Arquitectura_de_tres_niveles
Infoinnova. (n.d.). Programadores Vs. Diseadores Vs. Administradores de
Proyecto
Espacio
Digital.
Retrieved
June
11,
2015,
from
http://infoinnova.net/2011/08/programadores-vs-diseadores-vsadministradores-de-proyecto/
Martnez, L., & Espinoza, H. (n.d.). Owasp Top 10. Retrieved June 11, 2015, from
http://slideplayer.es/slide/1048631/
Milano, L. P. (2007). Seguridad en el ciclo de vida del desarrollo de software.
Owasp. (2013). Owasp Top Ten 10-2013, 22. Retrieved from www.owasp.org
Tutorialspoint.com. (n.d.). Software Development Life Cycle (SDLC).
Web
June
11,
2015,
from
32