• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduccion a un curso de Programación Segura
 

Introduccion a un curso de Programación Segura

on

  • 3,673 views

Dentro del Curso del Programa Oficial de Posgrado en Ingeniería Informática imparto con otros colegas una asignatura de Diseño de Aplicaciones Seguras ...

Dentro del Curso del Programa Oficial de Posgrado en Ingeniería Informática imparto con otros colegas una asignatura de Diseño de Aplicaciones Seguras (http://webdiis.unizar.es/~ftricas/Asignaturas/seguridadD/Home.html). Estas son las transparencias de la Introducción por si pueden servirle a alguien. Casi dos horas de clase. Son una actualización de las del curso pasado, que puse en: http://www.slideshare.net/fernand0/desarrollo-de-aplicaciones-segurias/

Statistics

Views

Total Views
3,673
Views on SlideShare
3,316
Embed Views
357

Actions

Likes
0
Downloads
58
Comments
3

13 Embeds 357

http://seguridad-informacion.blogspot.com 305
http://seguridad-informacion.blogspot.com.es 15
http://seguridad-informacion.blogspot.mx 13
http://www.todopps.info 8
http://seguridad-informacion.blogspot.com.ar 6
http://seguridad-informacion.blogspot.com.br 2
http://seguridad-informacion.blogspot.co.uk 2
http://www.slideshare.net 1
http://seguridad-informacion.blogspot.nl 1
http://translate.googleusercontent.com 1
http://seguridad-informacion.blogspot.jp 1
http://seguridad-informacion.blogspot.in 1
http://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introduccion a un curso de Programación Segura Introduccion a un curso de Programación Segura Presentation Transcript

    • 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://www.cps.unizar.es/~ftricas/ http://moodle.unizar.es/ ftricas@unizar.es 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 1
    • Introducci´n o Fernando Tricas Garc´ ıa Departamento de Inform´tica e Ingenier´ de Sistemas a ıa Universidad de Zaragoza http://www.cps.unizar.es/~ftricas/ http://moodle.unizar.es/ ftricas@unizar.es 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 2
    • Un ´ ındice Introducci´n o Aleatoriedad y determinismo 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 C´digo abierto o cerrado o validaci´n de entradas o Principios Autentificaci´n con claves o Auditor´ de programas ıa Seguridad en bases de datos Desbordamiento de memoria Seguridad en el cliente Control de acceso En la web Condiciones de carrera 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 3
    • 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. Algunas veces 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
    • Cifras El 30 % de los proyectos en entornos empresariales se cancelan sin haber sido finalizados. De los que se terminan, el 30 % cuesta al final entre un 150 % y un 200 % del presupuesto original. 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 ‘Measuring software quality. A Study of Open Source Software’ http://osvdb.org/ref/blog/open_source_quality_report.pdf 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 5
    • 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 Otras estimaciones: entre 5 y 50 fallos. 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 6
    • 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, si 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 7
    • 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
    • En dispositivos bluetooth Resultados de robustez para 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. 9
    • En dispositivos 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. 10
    • 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. SP 1. Fue atacado 4857 veces Infectado en 18 minutos (Blaster y Sasser) En una hora era un ‘bot’ controlado remotamente, y comenz´ a realizar sus propios ataques o 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 Feb-Marzo 2005: menos del 24 % de los Windows XP observados en un estudio de AssetMetrix Research Labs ten´ SP2. Menos del 7 % del total lo ten´ 251 empresas ıan ıan. norteamericanas (seis meses despu´s de su lanzamiento). e 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 11
    • 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. 12
    • 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. 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 13
    • 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/PRs/eatbugs_PR.html Parece que finalmente tuvieron que comerlos . . . http://www.ambrosiasw.com/news/old_newsletter.php?id=34019&page=3 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. 14
    • ¿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. 15
    • Son los programas Dependemos (mucho) de los computadores (y sus programas). El principal problema es que la mayor´ de los desarrolladores ıa ni siquiera saben que hay un problema. Ni los cortafuegos ni la criptograf´ resolver´n los problemas ıa a (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. 16
    • 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. 17
    • 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. 18
    • 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. 19
    • 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 si quiera vale la pena. 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 20
    • 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. 21
    • 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. 22
    • Algunas cifras NIST: National Institute of Standards and Technology NVD: National Vulnerabilities Database Year Num. of Vulns % of Total 1988 2 100 1989 3 100 1990 11 100 1991 15 100 1992 13 100 1993 13 100 1994 25 100 1995 25 100 1996 75 100 1997 252 100 1998 246 100 1999 894 100 2000 1020 100 2001 1677 100 2002 2156 100 2003 1527 100 2004 2451 100 2005 4933 100 2006 6608 100 2007 6515 100 2008 4673 100 3 de noviembre de 2008 http://nvd.nist.gov/statistics.cfm?results=1 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 23
    • M´s cifras a CERT: Organizaci´n del Software Engineering Institute (SEI). o http://www.cert.org/stats/ 3 de noviembre de 2008 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 24
    • Y m´s . . . la web a 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://www.computer.org/portal/site/security/menuitem.6f7b2414551cb84651286b108bcd45f3/index. jsp?&pName=security_level1_article&TheCat=1015&path=security/2006/v4n4&file=gei.xml Resumida: http://tinyurl.com/3862ba 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 25
    • M´s cifras a http://www.cisco.com/web/about/security/cspo/docs/Cisco2007Annual_Security_Report.pdf 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 26
    • Consecuencias http://www-935.ibm.com/services/us/iss/pdf/etr_xforce-2007-annual-report.pdf 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 27
    • ¿D´nde conocerlos? o Bugtraq (http://www.securityfocus.com/) CERT Advisories http://www.cert.org/ http://www.rediris.es/cert/ Equipo de Seguridad para la Coordinaci´n de Emergencias en o Redes Telem´ticas (http://escert.upc.edu/) a ICAT Metabase (http://nvd.nist.gov/) OSVDB, Open Source Vulnerability Database (http://osvdb.org/) INTECO, http://www.inteco.es/ 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. 28
    • ¿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. 29
    • 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. 30
    • La complejidad 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 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. 31
    • La complejidad 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 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. 31
    • Complejidad Linux + Apache Windows + IIS http://blogs.zdnet.com/threatchaos/?p=311 http://www.thisisby.us/index.php/content/why_windows_is_less_secure_than_linux ‘Why Windows is less secure than Linux’ Abril 2006 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 32
    • Complejidad, vulnerabilidades, incidentes, . . . Dan Geer, 2004 http://www.stanford.edu/class/msande91si/www-spr04/slides/geer.pdf ‘Shared Risk at National Scale. Dan Geer’ 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 33
    • 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 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 34
    • 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. 35
    • 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. 36
    • 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. 37
    • 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. 37
    • ¿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. 38
    • ¿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. 38
    • 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. 39
    • 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. 40
    • 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. 41
    • 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. 42
    • 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. 42
    • 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. 43
    • 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. 44
    • 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 e MS 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. 45
    • 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. 46
    • 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. 47
    • 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. 48
    • 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. 49
    • 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. 50
    • 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. 51
    • 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. 52
    • Algunas listas de correo Secure Coding http://www.securecoding.org/list/ WEB APPLICATION SECURITY http://www.securityfocus.com/archive/107 SECPROG http://www.securityfocus.com/archive/98 Webappsec (de OWASP): https://lists.owasp.org/mailman/listinfo/webappsec Web Security http://webappsec.org/lists/ HACK http://mailman.argo.es/listinfo/hacking Owasp-spanish https://lists.owasp.org/mailman/listinfo/owasp-spanish 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 53
    • 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. 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 54
    • M´s libros a Software Security. Gary McGraw. Addison-Wesley Software Security Series. OWASP Guide to Building Secure Web Applications (va por la versi´n 3.0) o http://www.owasp.org/index.php/OWASP_Guide_Project 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 55
    • M´s bibliograf´ a ıa 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 Computer Security. Dieter Gollmann. Wiley. 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 56
    • 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. 57
    • M´s bibliograf´ a ıa En la red: 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 http://www.dwheeler.com/secure-programs/ Hay mas... 62612 Dise˜o de aplicaciones seguras. Fernando Tricas Garc´ n ıa. 58