Este documento presenta una introducción a un curso sobre el diseño de aplicaciones seguras. Explica brevemente la importancia de la seguridad en los programas, mostrando cifras sobre los costos de los fallos de seguridad. También resume algunos estudios que muestran altas tasas de fallos en programas cuando se les somete a pruebas de robustez y fuzzing.
Introduccion par un Curso de Diseño de Aplicaciones Seguras
1. Curso: (62612) Dise˜o de aplicaciones seguras
n
Fernando Tricas Garc´
ıa
Departamento de Inform´tica e Ingenier´ de Sistemas
a ıa
Universidad de Zaragoza
http://webdiis.unizar.es/~ftricas/
http://moodle.unizar.es/
ftricas@unizar.es
2. Introducci´n
o
Fernando Tricas Garc´
ıa
Departamento de Inform´tica e Ingenier´ de Sistemas
a ıa
Universidad de Zaragoza
http://webdiis.unizar.es/~ftricas/
http://moodle.unizar.es/
ftricas@unizar.es
3. Un ´
ındice
Introducci´n
o
Gesti´n de riesgos
o Aplicaci´n de la criptograf´
o ıa
Selecci´n de tecnolog´
o ıas Gesti´n de la confianza y
o
validaci´n de entradas
o
C´digo abierto o cerrado
o
Autentificaci´n con claves
o
Principios
Seguridad en bases de datos
Auditor´ de programas
ıa
Seguridad en el cliente
Desbordamiento de memoria
En la web
Control de acceso
Caracter´
ısticas de seguridad
Condiciones de carrera para algunos lenguajes
Aleatoriedad y determinismo
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 3
4. Introducci´n. Antes de empezar.
o
Se invierte mucho tiempo, dinero y esfuerzo en seguridad a
nivel de red por la mala calidad de los programas.
Los antivirus, los cortafuegos, los sistemas de detecci´n de
o
intrusos (IDS) ayudan.
Los programas malos son mucho m´s abundantes de lo que
a
creemos.
La forma de desarrollar los programas es responsable en gran
medida del problema.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 4
5. Cifras
En 2002 el ‘National Institute of Standards and Technology’
(NIST) estim´ que los defectos de los programas costaban
o
mas de 60 millardos de d´lares (60 billions).
o
Detectarlos a tiempo ahorrar´ 22 millardos de d´lares.
ıa o
Citado en:
‘Measuring software quality. A Study of Open Source Software’
Coverity, 2006.
http://osvdb.org/ref/blog/open_source_quality_report.pdf
http://www.coverity.com/library/pdf/open_source_quality_report.pdf
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 5
6. Cifras
Menos del 10 % de proyectos en empresas grandes terminan a
tiempo, y cumpliendo el presupuesto.
Las tasas de defectos en productos comerciales se estiman
entre 10 y 17 por cada 1000 l´
ıneas de c´digo.
o
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 6
7. M´s cifras
a
Diciembre de 1990: Miller, Fredrickson. ‘An empirical study of
the reliability of Unix Utilities’ (Communications of the ACM,
Vol 33, issue 12, pp.32-44).
Entre el 25 y el 33 % de las utilidades en Unix pod´
ıan
interrumpirse o colgarse proporcion´ndoles entradas
a
inesperadas.
1995: Miller otra vez, ejecutando Fuzz en nueve plataformas
tipo Unix diferentes:
Fallos entre un 15 y un 43 %
Muchos fallos ya avisados en el 90 segu´ all´
ıan ı
La menor tasa de fallos: utilidades de la FSF (7 %) y a las
incluidas junto con Linux (9 %) (¿Uh?)
No consiguieron hacer fallar ning´n servidor de red. Tampoco
u
el servidor X Window. Muchos clientes de X, s´ ı
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 7
8. Cifras
2000: Miller y Forrester. Fuzz con Windows NT.
45 % de los programas se colgaron o se interrumpieron
Enviar mensajes aleatorios Win32 a las aplicaciones hac´ fallar
ıa
al 100 %
2006: Miller, Cooksey y Moore. Fuzz y Mac OS X.
7 % de las aplicaciones de l´
ınea de ´rdenes.
o
De las 30 basadas en GUI s´lo 8 no se colgaron o se pararon.
o
http://pages.cs.wisc.edu/~bart/fuzz/fuzz.html
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 8
9. Cifras
A˜o 2010, CanSecWest.
n
Acrobat Reader 9.2.0
Mac OS X PDF viewer (Mac OS X 10.6)
iPhone 3.1.2 (sin jailbreak). Ver pdfs con el navegador
MobileSafari
OO.org PPT
MS PowerPoint 2008 para Mac 12.2.3
MS Office PowerPoint 2007 SP2 MSO (12.0.6425.1000)
Resultados similares...
Microsoft ya ‘Fuzzea’
http:
//www.computerworld.com/s/article/9174539/Microsoft_runs_fuzzing_botnet_finds_1_800_Office_bugs
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 9
10. Resultados de robustez – 31 dispositivos Bluetooth (2007)
S´lo 3 dispositivos sobrevivieron a todos los tests.
o
Los dem´s tuvieron problemas con, al menos, un perfil
a
La mayor´ simplemente se colgaron
ıa
En algunos casos hubo que reprogramar la memoria flash
corrupta
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 10
11. Resultados de robustez para 7 puntos de acceso Wifi
Resultados de robustez para 7 puntos de acceso Wifi:
S´lo se marcan como FAIL los que son reproducibles (INC
o
muestra que ha habido fallos pero no f´ciles de repetir).
a
Todos fallaron en alguna de las pruebas.
‘Wireless Security: Past, Present and Future. Sami Pet¨j¨soja, Tommi
aa
M¨kil¨, Mikko Varpiola, Miikka Saukko and Ari Takanen’. Feb 2008.
a a
http://www.codenomicon.com/resources/whitepapers/Codenomicon_Wireless_WP_v1_0.pdf
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 11
12. Cifras
2004-2005. Honeypot, con varios sistemas (6: Windows, Mac,
Linux). Una semana. Fueron escaneados 46255 veces desde el
exterior con un resultado de 4892 ataques directos.
Windows XP. SP1.
4857 ataques. Comprometido en 18 minutos por Blaster y
Sasser. En una hora el ordenador estaba lanzando sus propios
ataques.
Windows XP. SP2.
16 ataques
Sobrevivi´ a todos ellos
o
MacOS X Jaguar (3, 0), Suse Professional 9.2 (8,0), Fedora
Core 3 (8,0), Red Hat 9 (0 ataques).
http://www.stillsecure.com/docs/StillSecure_DenverPost_Honeypot.pdf
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 12
13. ¿Actualizaciones?
Feb-Marzo 2005:
Menos del 24 % de los Windows XP observados en un estudio
de AssetMetrix Research Labs ten´ SP2.
ıan
Menos del 7 % del total lo ten´
ıan.
251 empresas norteamericanas (seis meses despu´s de su
e
lanzamiento).
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 13
14. Estudio OpenSSH
Julio 2002 se descubri´ un fallo de desbordamiento de
o
memoria remoto
Dos semanas despu´s de la publicaci´n del anuncio del fallo,
e o
mas de 2/3 de los servidores observados segu´ siendo
ıan
vulnerables.
Septiembre 2002. Un gusano explotaba el fallo (Slapper).
El 60 % de servidores era todav´ vulnerable.
ıa
‘Security holes. . . Who cares? Eric Rescorla’
http://www.cgisecurity.com/lib/reports/slapper-report.pdf
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 14
15. ¿Actualizaciones?
Conficker, Downadup
23 de octubre de 2008 actualizaci´n ‘fuera de ciclo’
o
30 d´ despu´s menos del 50 % sin parchear
ıas e
3 meses despu´s 30 % sin parchear.
e
‘1 in 3 Windows PCs vulnerable to worm attack’
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9126038
15 de enero de 2009
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 15
16. Introducci´n. Antes de empezar.
o
Los programas no tienen garant´ (¿todav´
ıa ıa?).
La seguridad es un problema de gesti´n de riesgos.
o
Pensemos en la seguridad durante el dise˜o, despu´s ya es
n e
tarde.
George Hulme, ‘Is It Time For Software Liability?’
http://www.informationweek.com/blog/main/archives/2010/02/is_it_time_for_2.html
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 16
17. Puede haber castigo
Cada vez se habla m´s de la responsabilidad de las empresas que
a
desarrollan programas:
1999. Ambrosia Software (Rochester, N.Y.) anunci´ que si alguno
o
de sus productos requer´ la reparaci´n de errores, el responsable
ıan o
de marketing comer´ insectos en alguna feria.
ıa
http://www.ambrosiasw.com/ambrosia_times/September_99/EekABug.html
Parece que finalmente tuvieron que comerlos . . .
http://www.macobserver.com/tmo/article/Ambrosia_President_To_Eat_Live_Bugs_At_MACWORLD/
31 de diciembre de 1999. Las autoridades chinas obligaron a los
ejecutivos de la compa˜´ a´rea nacional a volar durante esa noche
nıa e
en los vuelos programados.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 17
18. ¿Por qu´ es importante?
e
Cada vez hay m´s computadores y en m´s sitios.
a a
La gente ni sabe ni quiere saber de estos temas.
A´n peor, saben lo que dicen las noticias.
u
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 18
19. Son los programas
http://www.cisco.com/en/US/prod/collateral/vpndevc/security_annual_report_mid2010.pdf
Cisco 2010 Midyear Security Report
Dependemos (mucho) de los
computadores (y sus
programas).
El principal problema es que
la mayor´ de los
ıa
desarrolladores ni siquiera
saben que hay un problema.
Ni los cortafuegos ni la
criptograf´ resolver´n los
ıa a
problemas (el 85 % de los
avisos del CERT no se
pueden prevenir con
criptograf´
ıa).
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 19
20. Son los programas
Est´ bien proteger la transmisi´n pero los atacantes prefieren
a o
los extremos
Las aplicaciones que interact´an con Internet son las m´s
u a
delicadas, pero no es imprescindible que tengan contacto con
la red para ser peligrosas.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 20
21. Son los programas
Empezar pronto
Conocer las amenazas
Dise˜ar pensando en la seguridad
n
Ce˜ir el dise˜o a los an´lisis de riesgos y las pruebas
n n a
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 21
22. Gesti´n del riesgo
o
La seguridad es un compromiso entre muchos factores:
Tiempo hasta que se puede vender
Coste
Flexibilidad
Reutilizabilidad
Relaciones entre los anteriores
Hay que establecer las prioridades, a veces la seguridad no es
la principal necesidad.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 22
23. Seguro o Inseguro
Mucha gente piensa en la seguridad como algo que se tiene o
no se tiene.
Es muy dif´ probar que un sistema de complejidad mediana
ıcil
es seguro.
Frecuentemente, ni siquiera vale la pena.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 23
24. Seguro o Inseguro
Es mas realista pensar en t´rminos de gesti´n de riesgo:
e o
¿Cu´nto riesgo?
a
¿Cu´nto cuesta reducirlo?
a
Recordar: los ’malos’ no crean los defectos, simplemente los
utilizan.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 24
25. Fallos en los programas
A˜o 2000: aproximadamente 20 nuevas vulnerabilidades cada
n
semana
Muchas en programas con c´digo, pero otras tantas en las
o
que no se conoce
Unix y Windows tambi´n est´n equilibrados
e a
Siguen apareciendo problemas en programas probados y
usados.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 25
26. Algunas cifras
NIST: National Institute of Standards and Technology
NVD: National Vulnerabilities Database
Year Num. of Vulns
1988 2
1989 3
1990 11
1991 15
1992 13
1993 13
1994 25
1995 25
1996 75
1997 252
1998 246
1999 894
2000 1020
2001 1677
2002 2156
2003 1527
2004 2451
2005 4933
2006 6608
2007 6514
2008 (4673) 5632
2009 5733
2010 (4091) 4639
2011 (3451) –
25 de octubre de 2011
http://nvd.nist.gov/statistics.cfm?results=1
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 26
27. Y m´s . . . la web
a
Mike Andrews. ‘The State of Web Security’. IEEE Security &
Privacy
Figure 1. (a) Breakdown of disclosed vulnerabilities by software
type in May 2006, and (b) current vulnerability types disclosed in
Web-based applications. (Source: SecurityFocus.com)
http://ieeexplore.ieee.org/iel5/8013/34919/01667997.pdf?arnumber=1667997
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 27
28. No hay grandes cambios
IBM X-Force 2011 Mid-year Trend and Risk Report
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 28
29. Con m´s vulnerabilidades
a
http://osvdb.org/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 29
30. ¿A qui´n afecta? ¿Qu´ pas´?
e e o
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 30
31. M´s cifras
a
http://cisco.com/en/US/prod/vpndevc/annual_security_report.html
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 31
32. 2009 IBM X-Force Trend and Risk Report
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 32
33. 2009 IBM X-Force Trend and Risk Report
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 33
34. 2009 IBM X-Force Trend and Risk Report
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 34
35. 2009 IBM X-Force Trend and Risk Report
Aplicaciones Web representan un 49 %
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 35
36. ¿D´nde conocerlos?
o
Bases de datos de vulnerabilidades:
Bugtraq (http://www.securityfocus.com/)
National Vulnerability Database (http://nvd.nist.gov/)
OSVDB, Open Source Vulnerability Database
(http://osvdb.org/)
CERTs
CERT (Computer Emergency Readiness Team) Advisories
(http://www.cert.org/)
IRIS-CERT http://www.rediris.es/cert/
Equipo de Seguridad para la Coordinaci´n de Emergencias en
o
Redes Telem´ticas (http://escert.upc.edu/)
a
INTECO, (http://www.inteco.es/)
Otros
RISKS Digest (http://catless.ncl.ac.uk/Risks/)
Help Net Security (http://www.net-security.org/)
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 36
37. ¿Y las tecnolog´
ıas?
La complejidad introduce riesgos.
A˜adir funcionalidades (no presente en el original)
n
Invisibilidad de ciertos problemas
Dificultad para analizar, comprender, asegurar.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 37
38. Complejidad en navegadores
http://www.spinellis.gr/blog/20031003/index.html
Mozilla 1.3 // Explorer 5
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 38
39. Complejidad en sistemas
Windows
Windows NT → 35 millones de l´ıneas de c´digo.
o
Windows XP → 40 millones de l´
ıneas de c´digo.
o
Windows Vista → 50 millones de l´
ıneas de c´digo.
o
Unix-Linux
Linux 2.2 → 1.78 millones,
Solaris 7 → 400000.
Debian GNU/Linux 2.2 55 millones
Red Hat 6.2 17 millones.
Mac OS X Darwin 790000 (el kernel)
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 39
40. Complejidad en sistemas
Windows
Windows NT → 35 millones de l´ıneas de c´digo.
o
Windows XP → 40 millones de l´
ıneas de c´digo.
o
Windows Vista → 50 millones de l´
ıneas de c´digo.
o
Unix-Linux
Linux 2.2 → 1.78 millones,
Solaris 7 → 400000.
Debian GNU/Linux 2.2 55 millones
Red Hat 6.2 17 millones.
Mac OS X Darwin 790000 (el kernel)
¡Seguimos programando en C! (en el mejor de los casos C++)
Esto va cambiando . . . Java, .Net, . . .
Luego hay que instalar, configurar, usar
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 39
41. Complejidad
Linux + Apache Windows + IIS
http://www.visualcomplexity.com/vc/project.cfm?id=392 http://blogs.zdnet.com/threatchaos/?p=311
http://web.archive.org/web/20060615055607/http://blogs.zdnet.com/threatchaos/?p=311
‘Why Windows is less secure than Linux’
Abril 2006
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 40
42. Complejidad, vulnerabilidades, incidentes, . . .
MLOCs3 (Three year moving average –media m´vil– of code
o
volume)
http://www.stanford.edu/class/msande91si/www-spr04/slides/geer.pdf
Dan Geer, 2004
‘Shared Risk at National Scale. Dan Geer’
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 41
43. En red
Cada vez m´s redes
a
Los ataques pueden venir de m´s sitios
a
Ataques automatizados/autom´ticos
a
M´s sitios para atacar, m´s ataques, mas riesgo
a a
http://www-935.ibm.com/services/us/iss/xforce/trendreports/
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 42
44. Extensibilidad
C´digo m´vil
o o
‘Enchufables’ en el navegador (‘plugins’)
M´dulos, ‘drivers’
o
Muchas aplicaciones tienen lenguajes que permiten extenderlas.
Econ´micamente conveniente (reutilizaci´n) pero ...
o o
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 43
45. El entorno
A˜adir seguridad a un sistema ya existente es casi imposible
n
Es mejor dise˜ar con la seguridad en mente
n
Otra fuente de problemas es ‘ambiental’: un sistema
completamente seguro en el entorno para el que fue dise˜ado,
n
deja de serlo en otros.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 44
46. Pero ... ¿Qu´ es seguridad?
e
Primero, es importante establecer una pol´
ıtica que describa la
forma de acceder a los recursos.
Si no queremos accesos sin autentificar y alguien accede ...
Si alguien hace un ataque de denegaci´n de servicio ...
o
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 45
47. Pero ... ¿Qu´ es seguridad?
e
Primero, es importante establecer una pol´
ıtica que describa la
forma de acceder a los recursos.
Si no queremos accesos sin autentificar y alguien accede ...
Si alguien hace un ataque de denegaci´n de servicio ...
o
A veces es evidente lo que est´ mal, y no hay que hilar tan
a
fino, pero ...
¿Un escaneo de puertos es un ataque o no?
¿Hay que responder? ¿C´mo?
o
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 45
48. ¿Tiene que ver con la confiabilidad?
‘Reliability’, confiabilidad, ¿no deber´ proporcionar seguridad?
ıa
La confiabilidad se mide seg´n la robustez de la aplicaci´n
u o
respecto a los fallos.
La definici´n de fallo es an´loga a la definici´n de pol´
o a o ıtica de
seguridad.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 46
49. ¿Tiene que ver con la confiabilidad?
‘Reliability’, confiabilidad, ¿no deber´ proporcionar seguridad?
ıa
La confiabilidad se mide seg´n la robustez de la aplicaci´n
u o
respecto a los fallos.
La definici´n de fallo es an´loga a la definici´n de pol´
o a o ıtica de
seguridad.
Entonces, la seguridad ser´ una parte de la confiabilidad: si se
ıa
puede violar alguna parte de la pol´
ıtica de seguridad, hay un
fallo.
Sin embargo...
Los problemas de robustez no siempre son problemas de
seguridad (Lo son m´s frecuentemente de lo que se piensa, de
a
todos modos)
Si dise˜amos pensando en su robustez, seguramente tambi´n
n e
mejoraremos su seguridad
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 46
50. Malas pr´cticas
a
Se hacen los programas, se espera a que aparezcan problemas, y se
resuelven (si se puede).
S´lo se resuelven problemas conocidos por los desarrolladores
o
No se trabaja ni con el tiempo, ni con la tranquilidad que hace
falta.
Los parches habitualmente atacan al s´
ıntoma, no al problema
Los parches hay que aplicarlos ...
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 47
51. Las metas
La seguridad no es una caracter´
ıstica est´tica
a
100 % seguro no existe (o es mentira)
Mejor ...
¿Qu´ queremos proteger?
e
¿Contra qui´n?
e
¿Contra qu´?
e
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 48
52. Prevenci´n
o
Normalmente, se presta atenci´n cuando ya es tarde
o
El tiempo en la red es distinto (velocidad)
Los ataques se propagan muy r´pido
a
Incluso se automatizan
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 49
53. Trazabilidad, auditabilidad
Los ataques ocurrir´n
a
Los contables lo saben (dinero)
Estas medidas ayudan a detectar, comprender y demostrar los
ataques
Es delicado
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 50
54. Trazabilidad, auditabilidad
Los ataques ocurrir´n
a
Los contables lo saben (dinero)
Estas medidas ayudan a detectar, comprender y demostrar los
ataques
Es delicado
=⇒Vigilancia
Auditor´ en tiempo real
ıa
Se puede hacer a muchos niveles
b´squeda de ‘firmas’, patrones ...
u
... pero tambi´n aserciones, c´digo a prop´sito.
e o o
A menudo, con trampas sencillas se puede capturar a un
ladr´n, o al menos evitar que haga da˜o.
o n
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 50
55. Privacidad y Confidencialidad
(Privacidad ←→ Intimidad)
Privacidad y confidencialidad son t´rminos muy relacionados
e
Las empresas deben proteger los datos de sus clientes, incluso
de los anunciantes
Los gobiernos tambi´n
e
No siempre comprendemos bien las consecuencias de nuestras
acciones
Los programas deber´ asegurar la privacidad ...
ıan
... pero los programas s´lo sirven para hacer el trabajo
o
Si es posible ... no almacenar secretos
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 51
56. Seguridad multinivel
Hay secretos ‘m´s secretos’ que otros
a
Ni las empresas ni los gobiernos quieren que se sepan algunos
datos
Adem´s, no todo el mundo tiene que saber lo mismo ...
a
...
Es complejo
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 52
57. Anonimato
Arma de doble filo
A veces, hay razones sociales para favorecerlo (SIDA)
Pero tambi´n las hay para controlarla (racismo, terrorismo,..)
e
Junto con la privacidad, es de los temas m´s importantes que
a
hay que decidir.
Global Identifier de Microsoft sirve para saber qu´ copia de MS
e
Office origin´ un documento
o
WGA (Windows Genuine Advantage)
las ‘supercookies’ de Google y Microsoft . . .
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 53
58. Anonimato
Carnivore, Echelon, ... ¿qui´n nos garantiza que se usan
e
‘adecuadamente’ ?
¿Y las galletitas? (cookies) ¿Realmente son necesarias? ¿Y si
nos las roban?
Hay empresas que las ‘coleccionan’
¿Y si tenemos que hacerlo nosotros? ¿Qu´ pasa si algo va
e
mal? ¿La comodidad es compatible con la privacidad?
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 54
59. Autentificaci´n
o
Saber qui´n para saber qu´ puede hacer
e e
Hasta no hace mucho bastaba con la presencia f´
ısica
Internet!!!
http://mibancofavorito.com
¿Realmente es MiBancoFavorito(TM) ?
¿Realmente es un banco?
SSL da tranquilidad pero ... ¿qu´ garantiza?
e
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 55
60. Autentificaci´n
o
Nadie mira los datos
De muchas formas:
http://mibancofavorito.com/ →
http://mibacofavorito.com/
¿Qui´n se fija?
e
Si vale dinero, hay que tener cuidado.
Algunos esquemas suponen anonimato, otros auditor´
ıa.
Algunos esquemas est´n orientados a sesiones, otros a
a
transacciones.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 56
61. Integridad
Seguir teniendo ‘lo mismo’
Precios, cotizaciones, ... ¿y si nos los cambian?
La informaci´n digital es muy f´cil de simular
o a
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 57
62. Conociendo al enemigo
Es bueno conocer los errores frecuentes, sobre todo porque no se
suele hablar mucho del tema.
Errores de programaci´n (buffers, condiciones de carrera,
o
n´meros aleatorios)
u
Pero tambi´n ...
e
La construcci´n es importante y tambi´n como se usa
o e
Arquitectura cliente/servidor
Ingenier´ social
ıa
Entradas maliciosas
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 58
63. Las amenazas
Ver lo que va por la red, ponerse en medio
Modificar lo que va por la red
Simular lo que deber´ ir por la red
ıa
Reemplazar el flujo de datos
Grabar y repetir
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 59
64. Las metas de un proyecto
Funcionalidad (resolver el problema)
Ergonom´ -usabilidad- (a veces la seguridad interfiere con la
ıa
comodidad/conveniencia)
Eficiencia (a nadie le gusta esperar)
El mercado (habitualmente en contra de la simplicidad, y de
la gesti´n de riesgos)
o
Simplicidad (buena para los proyectos, buena para la
seguridad)
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 60
65. Algunas listas de correo
Secure Coding http://www.securecoding.org/list/
Web Security http://webappsec.org/lists/
WEB APPLICATION SECURITY
http://www.securityfocus.com/archive/107
Webappsec (de OWASP):
https://lists.owasp.org/mailman/listinfo/webappsec
SECPROG (abandonada?)
http://www.securityfocus.com/archive/98
En espa˜ol:
n
HACK https://mailman.jcea.es/options/hacking/
Owasp-spanish
https://lists.owasp.org/mailman/listinfo/owasp-spanish
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 61
66. Bibliograf´
ıa
John Viega and Gary McGraw. Building Secure Software.
Addison-Wesley
Michael Howard, David C. LeBlanc. Writing Secure Code.
Microsoft Press. Second Edition.
Innocent Code. A security wake-up call for web programmers.
Sverre H. Huseby. Wiley.
Ross Anderson. Security Engineering. Wiley. Second Edition.
Computer Security. Dieter Gollmann. Wiley.
Foundations of Security What Every Programmer Needs to
Know. Christoph Kern , Anita Kesavan , Neil Daswani. Apress.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 62
67. Bibliograf´
ıa
Software Security. Gary McGraw. Addison-Wesley Software
Security Series.
Mark G. Graff, Kenneth R. Van Wyk. Secure Coding:
Principles and Practices. O’Reilly & Associates
John Viega, Matt Messier. Secure Programming Cookbook for
C and C++. O’Reilly & Associates.
Gary McGraw, Edward W. Felten. Securing Java: Getting
Down to Business with Mobile Code
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 63
68. Bibliograf´
ıa
El otro lado.
Greg Hoglund, Gary McGraw. Exploiting Software. How to
break code. Addison Wesley.
Cyrus Peikari, Anton Chuvakin. Security Warrior. O’Reilly.
Andrews & Whittaker. How to Break Web Software. Addison
Wesley.
Tom Gallagher; Bryan Jeffries; Lawrence Landauer. Hunting
Security Bugs. Microsoft Press.
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 64
69. M´s bibliograf´
a ıa
En la red:
OWASP Guide to Building Secure Web Applications
http://www.owasp.org/index.php/OWASP_Guide_Project
Security Developer Center Microsoft
http://msdn.microsoft.com/security
‘Improving Web Application Security: Threats and
Countermeasures’. J.D. Meier, Alex Mackman, Michael
Dunner, Srinath Vasireddy, Ray Escamilla and Anandha
Murukan Microsoft Corporation
(http://msdn.microsoft.com/library/default.asp?url=
/library/en-us/dnnetsec/html/ThreatCounter.asp)
Secure Programming for Linux and Unix HOWTO (¡Uno de
los primeros!)
http://www.dwheeler.com/secure-programs/
Hay mas...
62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´
n ıa. 65