Tu código apesta

Pero puedes tomar medidas

Jesús Marín


Email: contacto@jesusmg.org
Twitter: @_jesusmg

Estado actual

¿Por qué preocuparme?

Django

26 de septiembre, 2016

Una interacción entre Django y Google Analytics permitía crear cookies arbitrarías (CSRF).

https://www.djangoproject.com/weblog/2016/sep/26/security-releases/

18 de julio, 2016

Ataque XSS

https://www.djangoproject.com/weblog/2016/jul/18/security-releases/

  • Septiembre
  • Julio
  • Marzo (¡2!)
  • Febrero
  • Noviembre
  • Agosto
  • Julio (¡3!)

https://docs.djangoproject.com/es/1.10/releases/security/

1 de abril, 2016

Python 8

Ya no será posible importar un módulo que no respete PEP 8
[...]
Aun podrás importar tu código antiguo añadiendo el sufijo "_noqa"

https://mail.python.org/pipermail/python-dev/2016-March/143603.html

CVE

MITRE y US-CERT

Fuente (NIST)

Fuente (NIST)

Fuente (NIST)

Estado deseado

Brecha de datos

  • Coste medio: 4$ millones
  • 158$ por registro
  • ¡Hasta 355$ por registro!

Fuente (IBM)

  • Aplicación "totalmente" segura
  • Esfuerzo mínimo
  • Coste mínimo

Fuente (IBM)

Informe (NIST), visualización (Microsoft)

¿Cómo lo hacemos?

Ciclo de vida del desarrollo del software

Diseño...

Casos de mal uso

Fuente (OWASP)

Análisis de modelo de amenazas

Fuente (Microsoft)

Análisis de modelo de amenazas

Fuente (Microsoft)

Programación...

Principios de codificación segura


Escribiendo código seguro - Howard y Leblanc

Minimizar la superficie de ataque
Seguridad por defecto
Defensa en profundidad
Todo sistema externo es inseguro

Guías de estilo: PEP 8

Olor del codigo

  • Métodos largos
  • Código duplicado
  • Hombre en el medio

Refactorización

Although I own the book, and I've read it twice, I felt it was too prescriptive – if you see (x), then you must do (y). Any programmer worth his or her salt should already be refactoring aggressively. It's so essential to the craft that if you have to read a book to understand how it works, you probably shouldn't be a programmer in the first place.

Coding horror

Testing...

Hora de la demo

PyFFI: The Python File Format Interface

¡Gracias!