Titulación de Sistemas Informáticos y Computación
Informe Técnico – OWASP TOP 10
Autor: Leonardo Fabián Montalván Celi
Loja - Ecuador Contenido 1. Problemática........................... Problemática............................................... ........................................ .................................................. .............................. 5
2. Situacin Actual................................ Actual.................................................... ........................................ ...................................... .................... .. ! ". E#tad$#tica#..................... E#tad$#tica#......................................... ........................................ ....................................... ...................................... ................... % &. 'rián(ulo de la Se(uridad............................ Se(uridad................................................ .................................. ............................ ................ ) 5. *+ASP........................ *+ASP........................................... ....................................... ........................................ ........................................... ....................... ) 5.1.
,ntroduccin............................... ,ntroduccin................................................... ........................................ ............................................ ........................ )
5.2.
*+ASP '*P 1.................................... 1................................................................................ .................................................... ........ 1
5.".
Factore# de rie#(o# de #e(uridad en alicacione#................................... alicacione#...................................11 11
5.&.
,denti/cacin de 0ie#(o#........................ 0ie#(o#............................................ ................................................. ............................. 11
5.5.
Aruitectura Aruitectura de una alicac alicacin in eb. 3Cmo 4unciona......... 4unciona...........................12 ..................12
5.5.1.
Aruitectura Cliente Servidor....................... Servidor........................................................ ........................................ ....... 12
5.5.2.
Aruitectura or caa#.................................... caa#......................................................................... ..................................... 12
5.6.
*+ASP 'o 1 de 0ie#(o# de Se(uridad en Alicacione#........................ 1&
5.6.1.
A1 7 ,n8eccin................... ,n8eccin....................................... ............................................................ ............................................... ....... 1&
5.6.1.1.
9e/nicin........................................................... 9e/nicin....................................... ........................................... ............................... ........ 1&
5.6.1.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 1&
5.6.1.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 1&
5.6.1.&.
Etaa# del Ataue.................................. Ataue........................................................................... ........................................... ..1& 1&
5.6.1.5.
Prevencin........................ Prevencin............................................ ........................................ ........................................ ......................... ..... 15
5.6.2. 5.6.2.
A2 7 Prdida Prdida de Autenticac Autenticacin in 8 ;e#tin ;e#tin de de Se#ione#........ Se#ione#.................. ..................16 ........16
5.6.2.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 16
5.6.2.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 16
5.6.2.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 16
5.6.2.&.
Etaa# del ataue.................................... ataue................................................................ ......................................... ............. 16
5.6.2.5.
Prevencin........................ Prevencin............................................ ........................................ ........................................ ......................... ..... 1!
5.6.". 5.6.".
A" 7 Secuenc Secuencia ia de comando comando# # en #itio# #itio# cru
SS?.......... =>SS?........................1! ..............1!
5.6.".1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 1!
5.6.".2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 1!
5.6.".".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 1%
5.6.".&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 1%
5.6.".5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 1)
5.6.&.
A& 7 0e4erencia 0e4erencia directa in#e(ura a objeto#.......................... objeto#...........................................1) .................1)
5.6.&.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 1)
5.6.&.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 1) 2
5.6.&.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 2
5.6.&.&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 2
5.6.&.5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 2
5.6.5.
A5 7 Con/(uracin de Se(uridad ,ncorrecta............................ ,ncorrecta......................................... .............21 21
5.6.5.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 21
5.6.5.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 21
5.6.5.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 21
5.6.5.&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 22
5.6.5.5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 22
5.6.6. 5.6.6.
A6 7 E@o#icin E@o#icin de dato# dato# #en#ible#...... #en#ible#.......... ......... .......... ............ ................. ..................... .................22 ......22
5.6.6.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 22
5.6.6.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 2"
5.6.6.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 2"
5.6.6.&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 2"
5.6.6.5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 2&
5.6.!. 5.6.!.
A! 7 ,ne@i#t ,ne@i#tente ente Contro Controll de Acce#o Acce#o a nivel de de 4uncionalida 4uncionalidade#......... de#............2& ...2&
5.6.!.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 2&
5.6.!.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 2&
5.6.!.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 2&
5.6.!.&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 25
5.6.!.5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 25
5.6.%.
A% 7 Fal#i/cacin de Peticione# en Sitio# Cru
5.6.%.1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 25
5.6.%.2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 26
5.6.%.".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 26
5.6.%.&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 26
5.6.%.5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 2!
5.6.).
A) 7 #o de Comonente# con Bulnerabilidade# Conocida#............. Conocida#.................2! ....2!
5.6.).1.
9e/nicin........................................................... 9e/nicin........................................ .......................................... ............................... ........ 2!
5.6.).2.
0ie#(o#...................................... 0ie#(o#.......................................................... ........................................ .................................... ................ 2!
5.6.).".
,macto del ataue.................................... ataue.................................................................. ....................................... ......... 2!
5.6.).&.
Etaa# del ataue..................................... ataue............................................................... ........................................ .............. 2%
5.6.).5.
Prevencin......................... Prevencin............................................. ....................................... ....................................... ......................... ..... 2% "
5.6.1. A1 7 0edireccione# 8 reenv$o# no válido#...........................................2% 5.6.1.1. 9e/nicin..........................................................................................2% 5.6.1.2. 0ie#(o#..............................................................................................2% 5.6.1.". ,macto del ataue...........................................................................2) 5.6.1.&. Etaa# del ataue.............................................................................2) 5.6.1.5. Prevencin......................................................................................... 2) 5.!.
Controle# del 'o 1 de *+ASP............................................................... 2)
5.%.
Conclu#ione#........................................................................................... "
5.).
0ecomendacione#...................................................................................."
5.1.
iblio(ra4$a........................................................................................... "1
1. Problemática 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 (SDL !)" En la #igura !, se pude observar el ciclo de vida del desarrollo de sistema, mientras $ue en la #igura 2, se indica la curva del costo de implementar seguridad en las últimas %ases del SDL, es decir mientras m&s nos demoremos en implementar la seguridad m&s costoso ser&"
Figura 1. Etapas del SDL Fuente: 'omada de ('utorialspoint"com, n"d")
Figura 2. urva de ostos de la mplementacin de Seguridad Fuente: 'omada de (Milano, 2007)
*ero cuales son los principales motivos por lo $ue no se toma en cuenta la implementacin de la seguridad, para (Milano, 2007), los principales mitos son+
1 S!C "System e#elopment !ife Cycle$%& ='utorial#oint.comD n.d.? ciclo de vida del de#arrollo de #i#tema# o #o4tareD e# un 4rameorD donde #e e#eci/can la# tarea# o actividade# ue #e deben reali
La seguridad de la aplicacin es responsabilidad del programador" adie sabe cmo %unciona, por ende, no la van a atacar" Si no se encontraron vulnerabilidades -asta a-ora. / nadie le interesara atacar nuestra aplicacin" La aplicacin es segura por$ue corre detr&s de un %irewall" La aplicacin es segura por$ue usa encriptacin" Si no corre como /dministrator 1 root, no %unciona" Si, ese %eature ($ue es inseguro) viene -abilitado por de%ault, pero el administrador
lo puede des-abilitar" o -a manera de e3plotarla" o -a tiempo para incluir seguridad"
4ecolectando en puntos principales, la problem&tica de la no implementacin de la seguridad se debe a+
Muc-os de los desarrolladores 1o lderes de proectos no consideran importante
incluir la seguridad, creen $ue no aporta ningún valor" 4esolver las vulnerabilidades antes de la e5ecucin de un proecto se toma como un proceso costoso e innecesario" El ob5etivo principal es la %uncionalidad sin tomar en cuenta aspectos de seguridad" 'iempos cortos para desarrollos 1o proectos" La seguridad en aplicaciones no se ve como una inversin sino como un costo impuesto por la necesidad de cumplir las normas reglamentos" Mala comunicacin entre el e$uipo o departamentos involucrados, en un ambiente de desarrollo de aplicaciones, se pueden encontrar problemas gra%icados en la #igura 6"
Figura 3. Mala comunicacin entre e$uipos Fuente: 'omada de (n%oinnova, n"d")
6
2. Situación Actual En la sociedad tecnolgica actual, los riesgos de $ue nuestros sistemas o aplicaciones web sean atacados por -acers, por no tener una implementacin de seguridad robusta se vuelve cada ve8 m&s común, pero $ue -acen los -acers con nuestros sistemas+ !" *rincipalmente los -acer 1 researc-ers, encuentra vulnerabilidades o debilidades en el so%tware" 2" uando encuentra una vulnerabilidad, no importa en $u9 plata%orma (:indows, Linu3, ;ni3, " Estos parc-es son instalados testeados por el administrador" Las principales causas para $ue los -acer encuentren vulnerabilidades en nuestros sistemas son+ !" 2" 6" =" >" @"
/usencia de procesos %ormales para el SDL $ue incluan Seguridad" Dise?o orientado a la %uncionalidad" #alta de uso de metodologas, est&ndares o buenas pr&cticas" o e3isten procedimientos para el an&lisis evaluacin de riesgos" #alta de conocimiento de las amena8as, riesgos, vulnerabilidades" 'iempo *resupuesto"
3. Estadísticas *ara (Arum%ield, 20!=), en un estudio reali8ado en el 20!6, $ue cubra m&s de @6"000 incidentes de seguridad, de >0 organi8aciones participantes a nivel global, se determin $ue el B2C
de los incidentes de seguridad en los últimos !0 a?os, se encuentran
categori8ados en+ instrucciones *" @" 7"
Los ata$ues a aplicaciones web van en aumento (6>C)" El @@C de los ata$ues a aplicaciones web son sin %ines de lucro" El sector %inanciero es el m&s a%ectado" Los atacantes utili8an vie5as vulnerabilidades conocidas" necciones SFL %ueron usadas en el G0C de ata$ues a aplicaciones web" El 7=C de ata$ues a aplicaciones web %ueron reportados por clientes" Los atacantes siguen e3plotando %allas en los sistemas MS populares, especialmente mediante el uso de vulnerabilidades en plugins populares"
!
Figura 4. 4esultados /ta$ues a la Seguridad Fuente: 'omado de (Arum%ield, 20!=)
4. Triángulo de la Seguridad H*or $u9 se representa como un tri&nguloI (Aats-oun, n"d"), en la #igura >, si se comien8a en el centro se mueve el punto -acia la seguridad, se est& moviendo m&s le5os de la %uncionalidad la usabilidad" Si se mueve el punto -acia la ;sabilidad, se est& ale5ando de la Seguridad de la #uncionalidad" En pocas palabras, a medida $ue aumenta la seguridad, la %uncionalidad del sistema la %acilidad de uso disminucin"
Figura . 'ri&ngulo de la Seguridad Fuente: 'omado de (Aats-oun, n"d")
%
on todas las amena8as a la seguridad $ue e3isten en nuestro mundo digital, es un desa%o, proporcionar una seguridad adecuada a los datos la red interna" La pregunta $ue a menudo los clientes %ormulan es JHEstamos -aciendo lo su%icienteIJ Siempre -a algo m&s $ue puede -acer" o -a mecanismo su%iciente para proteger sus datos red" La seguridad se logra me5or a trav9s de un en%o$ue por capas" El número de capas e3-austividad de cada capa son una cuestin de grados se debe discutir de manera recurrente"
. !"ASP .1.
#ntroducción
Despu9s de anali8ar las estadsticas en el punto 6, determinamos $ue el so%tware inseguro est& a%ectando a los sectores de+ %inan8as, salud, de%ensa, energa" En el mundo actual donde las in%raestructuras digitales, se -acen cada ve8 m&s comple5as suman sus nodos de cone3iones, la implementacin de la seguridad en las aplicaciones aumenta e3ponencialmente" on el ob5etivo de crear una conciencia a nivel mundial de la importancia de la implementacin de la seguridad en las aplicaciones de las organi8aciones, se -a creado el proecto 'op !0 de <:/S*, $ue es una coleccin abierta de -erramientas, est&ndares, libreras e investigaciones re%erente a la seguridad" <:/S* (
.2.
!"ASP T!P 1$
De los a?os de estudios sobre los ata$ues vulnerabilidades de las aplicaciones web de nuestras organi8aciones, se -a desarrollado un proecto denominado '<* !0 de <:/S* el mismo $ue reali8a !0 categori8aciones de los ata$ues m&s comunes $ue pueden atacar las aplicaciones web de las organi8aciones, con el ob5etivo de crear una me5or conciencia sobre la seguridad de las aplicaciones" !"ASP 2$1$ % 2$13 En la #igura @, se muestra la categori8acin de los !0 ata$ues $ue pueden ser vctimas las aplicaciones web de cual$uier organi8acin, adem&s se -ace re%erencia al listado del
)
20!0 con el 20!6, con la di%erencia $ue los escenarios de amena8as para la seguridad de aplicaciones cambian constantemente"
Figura &. 'op !0 de <:/S* 20!0 20!6 Fuente: 'omado de (
.3.
Factores de riesgos de seguridad en a'licaciones.
Los atacantes pueden utili8ar diversas rutas en nuestra aplicacin para encontrar vulnerabilidades" ada una de esta ruta es un riesgo $ue debemos prestar atencin" En la #igura 7, se muestra las posibles rutas dentro de nuestra aplicacin, en donde se e3amina la di%icultad para encontrar la vulnerabilidad el impacto $ue tendr& nuestra aplicacin si se llegara a e3plotar la vulnerabilidad, en la organi8acin se evalúa la probabilidad asociada a cada amena8a de vulnerabilidad, vector de ata$ue la debilidad de la seguridad, esto determina el riesgo total"
Figura (. #actores de riesgos de seguridad
1
Fuente: 'omado de (
.4.
#denti)icación de *iesgos
El proecto <:/S* 'op !0, se en%oca a la identi%icacin de riesgos su categori8acin, cuando se encuentra con un riesgo el 'op !0 de <:/S* le proporciona in%ormacin gen9rica sobre la probabilidad el impacto t9cnico a trav9s de un es$uema de cali%icaciones, el mismo $ue se basa en la metodologa de evaluacin de riesgos <:/S* (#igura G)" Dependiendo de los detalles espec%icos de su empresa, pueden e3istir riesgos $ue tengan un maor impacto en una organi8acin, $ue en otras, por lo $ue se determina $ue el 'op !0 de <:/S*, pueden e3istir riesgos $ue no -an sido tomados en cuenta pero a%ectan a la organi8acin"
Figura +. 'abla cualitativa de los riesgos Fuente: 'omada de (
..
Ar,uitectura de una a'licación -eb. /ómo )unciona0
..1. Ar,uitectura /liente Seridor Las aplicaciones web utili8an lo $ue se conoce como clientes livianos (lig-t clients) los cuales no e5ecutan demasiadas labores de procesamiento para la e5ecucin de la aplicacin misma" Desde el punto de vista de la ar$uitectura se distinguen dos ladosK uno es el cliente, donde se encuentra el usuario %inal utili8ando la aplicacin por medio de un navegador (como nternet E3plorer o Mo8illa #ire%o3)" / trav9s de este cliente web, el usuario interactúa con la aplicacin locali8ada al otro lado, en el servidor, $ue es donde residen realmente los datos, reglas lgica de la aplicacin" En la #igura B, se pude observar el %uncionamiento de una ar$uitectura cliente servidor"
11
Figura . /r$uitectura liente Servidor Fuente: 'omado de (:ii n%orm&tica de la ;'#SM, 20!2)
..2. Ar,uitectura 'or ca'as 'ambi9n conocida como /r$uitectura de tres capasN, esta ar$uitectura permite de%inir un modelo de dise?o en capas, $ue pueden estar %sicamente distribuidas, es decir $ue los componentes de una capa slo pueden -acer re%erencia a componentes en capas inmediatamente in%eriores" Este patrn es importante por$ue simpli%ica la comprensin la organi8acin del desarrollo de sistemas comple5os, reduciendo las dependencias de %orma $ue las capas m&s ba5as no son conscientes de ningún detalle o inter%a8 de las superiores" /dem&s, permite identi%icar $u9 componentes se puede reutili8arse, proporciona una estructura $ue nos auda a tomar decisiones sobre $u9 partes comprar $u9 partes construir" La aplicacin se divide en tres capas lgicas distintas, cada una de ellas con un grupo de inter%aces per%ectamente de%inido" La primera capa se denomina ca'a de 'resentación normalmente consiste en una inter%a8 gr&%ica de usuario de algún tipo" La capa intermedia, o capa de empresa, consiste en la a'licación o lógica de em'resa , La tercera capa, la ca'a de datos, contiene los datos necesarios para la aplicacin" La capa intermedia (lgica de aplicacin) es b&sicamente el cdigo al $ue recurre la capa de presentacin para recuperar los datos deseados" La capa de presentacin recibe entonces los datos los %ormatea para su presentacin" En la #igura !0, se pude observar la ar$uitectura en capas"
12
Figura 1$. /r$uitectura en apas Fuente: 'omado de (Ecu4ed, n"d")
.&.
!"ASP To' 1$ de *iesgos de Seguridad en A'licaciones
Los nombres en los riesgos en el 'op !0 de <:/S*, se deben al tipo de ata$ue, debilidad o impacto $ue causan"
.&.1. A1 #n%ección. .&.1.1.
e)inición
Las %allas de ineccin, tales como SFL,
.&.1.2.
*iesgos
En la #igura !!, se identi%ica los riesgos de las necciones"
1"
Figura 11. 4iesgos de las necciones Fuente: 'omado de (
.&.1.3.
#m'acto del ata,ue
;na ineccin puede causar p9rdida o corrupcin de datos, p9rdida de responsabilidad, o negacin de acceso" /lgunas veces, una ineccin puede llevar al compromiso total del servidor"
.&.1.4.
Eta'as del Ata,ue
*ara e5ecutar una ineccin se reali8an los siguientes pasos, adem&s se ilustra en la #igura !2" !" 2" 6" ="
La aplicacin presenta un %ormulario web al atacante" El atacante enva un ata$ue en los datos del %ormulario" La aplicacin dirige el ata$ue a la base de datos en una consulta SFL" La base de datos e5ecuta el ata$ue enva los resultados ci%rados nuevamente a
la aplicacin" >" La aplicacin desci%ra los datos normalmente enva los resultados al atacante"
1&
Figura 12. Demostracin ata$ue por neccin Fuente: 'omado de (Martne8 O Espino8a, n"d")
.&.1..
Preención
;sar /* seguras, la cual evite el uso de int9rpretes por completo" Evitar el uso del int9rprete utili8ando procedimientos almacenados o consultas parame tri8adas" Escapar de caracteres especiales utili8ando /*s como <:/S* ES/*" 4eali8ar validacin positiva o w-itelisting (JLista AlancaN), con adecuada canonicali8acin 2"
.&.2. A2 P5rdida de Autenticación % 6estión de Sesiones. .&.2.1.
e)inición.
Las %unciones de la aplicacin relacionadas a autenticacin gestin de sesiones son %recuentemente implementadas de %orma incorrecta, permitiendo a los atacantes comprometer contrase?as, claves, toens
6
de sesiones, o e3plotar otras %allas de
implementacin para asumir la identidad de otros usuarios"
2 Canonicali'ación%& #e(n =+eb SE*D 2!? e# una eculiar alabraD ue en trmino# SE* #i(ni/ca e#co(er la mejor 0L ara mo#trar nue#tro #itio +eb. " To(en =+iiediaD n.d.? o tambin llamado comonente l@ico e# una cadena de caractere# ue tiene un #i(ni/cado coGerente en cierto len(uaje de ro(ramacin. 15
.&.2.2.
*iesgos.
En la #igura !6, se identi%ica los riesgos por *9rdida de /utenticacin"
Figura 13. 4iesgos de la *9rdida de /utenticacin Pestin de Sesiones Fuente: 'omado de (
.&.2.3.
#m'acto del ata,ue
Estas vulnerabilidades pueden permitir $ue algunas o todas las cuentas sean atacadas" ;na ve8 $ue el ata$ue resulte e3itoso, el atacante podra reali8ar cual$uier accin $ue la vctima pudiese" Las cuentas privilegiadas son ob5etivos prioritarios"
.&.2.4.
Eta'as del ata,ue
Las etapas del ata$ue por p9rdida de autenticacin gestin de sesiones, se demuestran en la #igura !="
16
Figura 14. Demostracin ata$ue por *9rdida de /utenticacin Pestin de Sesiones Fuente: 'omado de (Martne8 O Espino8a, n"d")
.&.2..
Preención
*roveer a los desarrolladores un con5unto de controles de autenti%icacin gestin de sesiones %uertes de%inidos en el /pplication Securit Qeri%ication Standard (/SQS) de <:/S*"
.&.3. A3 Secuencia de comandos en sitios cru7ados 89SS .&.3.1.
e)inición.
Las %allas RSS, ocurren cada ve8 $ue una aplicacin toma datos no con%iables los enva al navegador web sin una validacin codi%icacin apropiada" Las %allas de RSS permiten a los atacantes e5ecutar secuencia de comandos en el navegador de la vctima, los cuales pueden secuestrar las sesiones de usuario, destruir sitios web, o dirigir al usuario -acia un sitio malicioso"
.&.3.2.
*iesgos.
En la #igura !>, se identi%ica los riesgos por RSS"
1!
Figura 1. 4iesgos RSS Fuente: 'omado de (
.&.3.3.
#m'acto del ata,ue.
El atacante puede e5ecutar secuencias de comandos en el navegador de la vctima para secuestrar las sesiones de usuario, alterar la apariencia del sitio web, insertar cdigo -ostil, redirigir usuarios, secuestrar el navegador de la vctima utili8ando malware, etc"
.&.3.4.
Eta'as del ata,ue.
Figura 1&. Demostracin ata$ue RSS Fuente: 'omado de (Martne8 O Espino8a, n"d")
1%
.&.3..
Preención.
;tili8ar t9cnicas de codi%icacin (codi%icar datos no con%iables basados en 'ML) Qalidacin de la JLista AlancaJ (Qalidar la longitud, %ormato, caracteres de los datos) ;tili8ar bibliotecas de auto saniti8acin = (/ntuSam de <:/S*) /plicar polticas de seguridad de contenido"
.&.4. A4 *e)erencia directa insegura a ob;etos. .&.4.1.
e)inición.
;na re%erencia directa a ob5etos ocurre cuando un desarrollador e3pone una re%erencia a un ob5eto de implementacin interno, tal como un %ic-ero, directorio, o base de datos" Sin un c-e$ueo de control de acceso u otra proteccin, los atacantes pueden manipular estas re%erencias para acceder datos no autori8ados"
.&.4.2.
*iesgos.
En la #igura !7, se identi%ica los riesgos por re%erencia directa insegura a ob5etos"
Figura 1(. 4iesgos por re%erencia directa insegura a ob5etos" Fuente: 'omado de (
& Saniti'ación) =+iiediaD n.d.? en el manejo de in4ormacin con/dencial o #en#ible e# el roce#o l(ico 8Ho 4$#ico mediante el cual #e remueve in4ormacin con#iderada #en#ible o con/dencial de un medio 8a #ea 4$#ico o ma(nticoD 8a #ea con el objeto de de#cla#i/carloD reutili
.&.4.3.
#m'acto del ata,ue.
Dic-as vulnerabilidades pueden comprometer toda la in%ormacin $ue pueda ser re%erida por par&metros" / menos $ue el espacio de nombres resulte escaso, para un atacante resulta sencillo acceder a todos los datos disponibles de este tipo"
.&.4.4.
Eta'as del ata,ue.
*ara e5ecutar un ata$ue por re%erencia directa insegura a ob5etos, los -acer -acen lo siguiente, como se ilustra en la #igura !G"
Figura 1+. Demostracin ata$ue por re%erencia directa insegura a ob5etos" Fuente: 'omado de (Martne8 O Espino8a, n"d")
!" El atacante identi%ica su número de cuenta" En la #igura !G, se pude observar $ue el número de cuenta es el @0@>" 2" El atacante modi%ica a un número parecido" IacctT@0@@" 6" El atacante visuali8a los datos de la cuenta de la vctima"
.&.4..
Preención.
;tili8ar re%erencias indirectas por usuario o sesin"(Evita $ue los atacantes
accedan directamente a recursos no autori8ados) omprobar el acceso" (omprueba $ue el usuario est& autori8ado a acceder al ob5eto solicitado)
2
.&.. A /on)iguración de Seguridad #ncorrecta. .&..1.
e)inición.
;na buena seguridad re$uiere tener una con%iguracin segura, de%inida e implementada para la aplicacin, servidor de aplicaciones, servidor web, base de datos, plata%orma, etc" 'odas estas con%iguraciones deben ser de%inidas, implementadas, mantenidas a $ue por lo general no son seguras por de%ecto" Esto inclue mantener todo el so%tware actuali8ado, incluidas las libreras de cdigo utili8adas por la aplicacin"
.&..2.
*iesgos.
En la #igura !B, se identi%ica los riesgos por con%iguracin de seguridad incorrecta"
Figura 1. 4iesgos por con%iguracin de seguridad incorrecta Fuente: 'omado de (
.&..3.
#m'acto del ata,ue.
Estas vulnerabilidades %recuentemente dan a los atacantes acceso no autori8ado a algunas %uncionalidades o datos del sistema"
21
.&..4.
Eta'as del ata,ue.
Figura 2$. Demostracin ata$ue por con%iguracin de seguridad incorrecta Fuente: 'omado de (Martne8 O Espino8a, n"d")
.&...
Preención.
;n proceso r&pido, %&cil repetible de %ortalecimiento para obtener un entorno
apropiadamente asegurado" *rocesos para mantener desplegar las nuevas actuali8aciones parc-es de so%tware" /r$uitectura robusta de aplicaciones" Escanear reali8ar auditoras peridicamente para detectar %allos de con%iguracin o parc-es obsoletos"
.&.&. A& E<'osición de datos sensibles. .&.&.1.
e)inición.
Muc-as aplicaciones web no protegen adecuadamente datos sensibles tales como números de tar5etas de cr9dito o credenciales de autenticacin" Los atacantes pueden robar o modi%icar tales datos para llevar a cabo %raudes, robos de identidad u otros delitos" Los datos sensibles re$uieren de m9todos de proteccin adicionales tales como el ci%rado de datos, as como tambi9n de precauciones especiales en un intercambio de datos con el navegador"
22
.&.&.2.
*iesgos.
En la #igura 2!, se identi%ica los riesgos por e3posicin de datos sensibles"
Figura 21. 4iesgos por e3posicin de datos sensibles" Fuente: 'omado de (
.&.&.3.
#m'acto del ata,ue.
Los %allos %recuentemente comprometen todos los datos $ue deberan estar protegidos" 'picamente, esta in%ormacin inclue datos sensibles como ser registros m9dicos, credenciales, datos personales, tar5etas de cr9dito, etc"
.&.&.4.
Eta'as del ata,ue.
Figura 22. Demostracin ata$ue por e3posicin de datos sensibles Fuente: 'omado de (Martne8 O Espino8a, n"d")
2"
.&.&..
Preención.
i%rar los datos sensibles almacenados o en tr&%ico" o almacenar datos sensibles innecesarios" /plicar algoritmos de ci%rados robustos estandari8ados" Dise?ar algoritmos para proteger las claves" Des-abilitar el autocompletar en los %ormularios $ue recogen datos sensibles"
.&.(. A( #ne
e)inición.
La maora de aplicaciones web veri%ican los derec-os (permisos) de acceso a nivel de %uncin antes de -acerlos visibles en la misma inter%a8 de usuario" / pesar de esto, las aplicaciones necesitan veri%icar el control de acceso en el servidor cuando se accede a cada %uncin" Si las solicitudes de acceso no se veri%ican, los atacantes podran reali8ar peticiones sin la autori8acin apropiada"
.&.(.2.
*iesgos.
En la #igura 26, se identi%ica los riesgos por el ine3istente control de acceso a nivel de %uncionalidades"
Figura 23. 4iesgos por el ine3istente control de acceso a nivel de %uncionalidades" Fuente: 'omado de (
2&
.&.(.3.
#m'acto del ata,ue.
Estas vulnerabilidades permiten el acceso no autori8ado de los atacantes a %unciones del sistema" Las %unciones administrativas son un ob5etivo clave de este tipo de ata$ues"
.&.(.4.
Eta'as del ata,ue.
Figura 24. Demostracin ata$ue por ine3istente control de acceso a nivel de %uncionalidades Fuente: 'omado de (Martne8 O Espino8a, n"d")
!" Los atacantes identi%ican $ue la ;4L indica su per%il 1user1get/ccounts" 2" Los atacantes modi%ican la ;4L apuntando a otro per%il 1admin1get/ccounts o manager1get/ccounts" 6" Los atacantes visuali8an otros per%iles"
.&.(..
Preención.
El proceso para la gestin de accesos permisos deberan ser actuali8able
auditable %&cilmente" La implementacin del mecanismo debera negar todo acceso por de%ecto" Si la %uncionalidad %orma parte de un wor%low, veri%icar asegurarse $ue las condiciones del %lu5o se encuentren en el estado apropiado para permitir acceso"
.&.+. A+ Falsi)icación de Peticiones en Sitios /ru7ados 8/SF* .&.+.1.
e)inición.
;n ata$ue S4# obliga al navegador de una vctima autenticada, enviar una peticin ''* %alsi%icada, incluendo la sesin del usuario cual$uier otra in%ormacin de
25
autenticacin incluida autom&ticamente, a una aplicacin web vulnerable" Esto permite al atacante %or8ar al navegador de la vctima, para generar pedidos $ue la aplicacin vulnerable piense $ue son peticiones legtimas provenientes de la vctima"
.&.+.2.
*iesgos.
En la #igura 2>, se identi%ica los riesgos por S#4"
Figura 2. 4iesgos por S#4" Fuente: 'omado de (
.&.+.3.
#m'acto del ata,ue.
Los atacantes pueden cambiar cual$uier dato $ue la vctima est9 autori8ada a cambiar, o a acceder a cual$uier %uncionalidad donde est9 autori8ada, incluendo registro, cambio de estado o cierre de sesin"
26
.&.+.4.
Eta'as del ata,ue.
Figura 2&. Demostracin ata$ue S#4" Fuente: 'omado de (Martne8 O Espino8a, n"d")
.&.+..
Preención.
ncluir un toen único en el campo oculto, para $ue el valor del campo se enve en
el cuerpo de la solicitud ''*" El toen único tambi9n puede ir incluido en la ;4L, o un par&metro de la misma" Qolverse a autenticar para comprobar $ue se trata de un usuario legtimo"
.&.. A =so de /om'onentes con >ulnerabilidades /onocidas. .&..1.
e)inición.
/lgunos componentes tales como las libreras, %ramewors otros mdulos de so%tware casi siempre %uncionan con todos los privilegios" Si se ataca un componente vulnerable esto podra %acilitar la intrusin en el servidor o una perdida seria de datos" Las aplicaciones $ue utilicen componentes con vulnerabilidades conocidas debilitan las de%ensas de la aplicacin permiten ampliar el rango de posibles ata$ues e impactos"
.&..2.
*iesgos.
En la #igura 27, se identi%ica los riesgos por el uso de componentes con vulnerabilidades conocidas"
2!
Figura 2(. 4iesgos por uso de componentes con vulnerabilidades conocidas" Fuente: 'omado de (
.&..3.
#m'acto del ata,ue.
El rango completo de debilidades inclue ineccin, control de acceso roto, RSS, etc" El impacto puede ser desde mnimo -asta apoderamiento completo del e$uipo compromiso de datos"
.&..4.
Eta'as del ata,ue.
Este tipo de vulnerabilidades se encuentra dentro de /> on%iguracin de Seguridad ncorrecta" #igura 20"
.&...
Preención.
denti%icar todos los componentes la versin $ue est&n ocupando" 4evisar la seguridad del componente mantenerlos actuali8ados" Establecer polticas de seguridad sobre el uso de componentes" /gregar capas de seguridad alrededor del componente"
.&.1$.
A1$ *edirecciones % reeníos no álidos.
.&.1$.1. e)inición. Las aplicaciones web %recuentemente redirigen reenvan a los usuarios -acia otras p&ginas o sitios web, utili8an datos no con%iables para determinar la p&gina de destino" Sin una validacin apropiada, los atacantes pueden redirigir a las vctimas -acia sitios de p-is-ing o malware, o utili8ar reenvos para acceder p&ginas no autori8adas"
2%
.&.1$.2. *iesgos. En la #igura 2G, se identi%ica los riesgos por redirecciones reenvos no v&lidos"
Figura 2+. 4iesgos por redirecciones reenvos no v&lidos" Fuente: 'omado de (
.&.1$.3. #m'acto del ata,ue. Estas redirecciones pueden instalar cdigo malicioso o enga?ar a las vctimas para $ue revelen contrase?as u otra in%ormacin sensible" El uso de reenvos inseguros puede permitir evadir el control de acceso"
2)
.&.1$.4. Eta'as del ata,ue.
Figura 2. Demostracin ata$ue por redirecciones reenvos no v&lidos" Fuente: 'omado de (Martne8 O Espino8a, n"d")
.&.1$.. Preención.
Evitar el uso de redirecciones reenvos" Si se utili8a, no involucrar par&metros manipulables por el usuario para de%inir el destino" Si los par&metros de destino no pueden ser evitados, asegúrese $ue el valor suministrado sea v&lido autori8ado para el usuario"
.(.
/ontroles del To' 1$ de !"ASP
Los controles del 'op !0 de <:/S*, son una lista de t9cnicas de seguridad $ue deben ser incluidas en cada proecto de desarrollo de so%tware" Estos controles permiten audar a los desarrolladores asegurar el desarrollo de aplicaciones" Los principales controles para las vulnerabilidades son+ !" 2" 6" =" >" @" 7" G" B"
onsultas parameti8adas" Datos codi%icados" Qalidar todas las entradas" mplementar los controles de acceso apropiados" Establecer controles para la identidad autenticacin" *roteccin privacidad de datos" mplementar logging, mane5o de errores deteccin de intrusiones" mplementar caractersticas de seguridad libreras de seguridad" ncluir re$uerimientos espec%icos del usuario"
"
!0" ncluir seguridad en el dise?o la ar$uitectura"
.+.
/onclusiones.
ingún modelo o metodologa ser& per%ecta" La Pestin de 4iesgos es clave para racionali8ar el es%uer8o" o es conveniente remediar las amena8as cuando a se -an materiali8ado (t9cnicas detectivas, o a trav9s de -erramientas automati8adas de seguridad) lo $ue incurre en elevados costos, en cambio $ue identi%icarlas tempranamente a trav9s de t9cnicas preventivas es m&s costoUe%ectivo"
..
*ecomendaciones.
o esperar seguridad por parte de los usuarios, descon%iar siempre en los datos ingresados por parte de ellos" /doptar una metodologa para el ciclo de vida de desarrollo de so%tware seguro, incorpor&ndola la seguridad en cada %ase del desarrollo" Las organi8aciones deben adoptar buenas pr&cticas o est&ndares para la codi%icacin segura, de manera $ue se prevengan las %allas $ue son introducidas con las aplicaciones" Educacin, capacitacin, entrenamiento concienti8acin a las partes involucradas en el desarrollo como t9cnica preventiva para proporcionar los conocimientos para escribir cdigo seguro" /ctuali8acin continua de conocimientos de desarrolladores sobre t9cnicas nuevas emergentes"
.1$. ?ibliogra)ía
at#GounD +. =n.d.?. 'Ge Securit8D Functionalit8 and #abilit8 trian(le. I Linolo(8. 0etrieved June 11D 215D 4rom Gtt:HH.linolo(8u#a.comHblo(H21&H%H2%HtGe-#ecurit8-4unctionalit8-andu#abilit8-trian(le rum/eldD C. =21&?. Beri
"1