Download Presentación de PowerPoint

Document related concepts
no text concepts found
Transcript
PROGRAMACIÓN SEGURA EN PYTHON
Eliezer Romero
-
Ingeniero en Informática
Desarrollador
Sistema Nacional de Gestión de Incidentes Telemáticos
Comunidad de Canaima GNU/LINUX
Activista del software libre
Rodrigo Bravo
-
Ingeniero en Informática
Desarrollador
Sistema Nacional de Gestión de Incidentes Telemáticos
Comunidad de Canaima GNU/LINUX
Activista del software libre
Riesgos de seguridad en las aplicaciones
Desarrollo de software seguro
Lista de control genérico en una aplicación
Metodología del código seguro
Clasificación de los problemas de seguridad en las aplicaciones
¿Qué es Python?
Ciclo de desarrollo de Python y sus versiones
Propuestas de Mejoras de Python - PEPs
Pruebas unitarias con Python
Riesgos de seguridad en las aplicaciones
01010110 01100101 01101110 01000011 01000101 01010010 01010100
Noticias
Debilidades de Controles de
seguridad
Seguridad
Ataque
Debilidad
Impactos
técnicos
Impacto
A la institución
Impacto
Control
Recurso
Ataque
Debilidad
Control
Impacto
Recurso
Ataque
Impacto
Recurso
Debilidad
Atacante Defectos
Vectores de
s
ataques
Control
Error (Bugs)
Fallas (Flaw)
Los atacantes pueden usar diferentes rutas de su aplicación para causar daño
Se debe evaluar la aplicación, encontrar y explotar midiendo la complejidad de la misma
¿Qué es el Desarrollo del software seguro?
- Diseñado, construido y probado para su seguridad
- Continúa ejecutándose correctamente bajo ataque
- Diseñado con el fallo en mente
- Examinación sistemática del código fuente de un programa informático.
- Verificar los controles de seguridad
- Fomenta el uso de buenas prácticas.
- El código duplicado debe ser evitado, ya que es fuente de incontables errores.
Medidas de Seguridad
01010110 01100101 01101110 01000011 01000101 01010010 01010100
Usuario
Introducir
usuario y
contraseña
Incluir
Autenticación de
usuario
Autenticación
Fuerza Bruta
Incluir
Aplicaciones/
Server
Hacker/ Usuario
Malicioso
Muestra de
errores genéricos
Cosecha de
cuentas
Incluir
Bloqueo de
cuenta ante
muchos intentos
de inicio de
sesión
Diccionario de
Ataques
Incluir
Validar la
contraseña con
una tamaño
mínimo y
compleja
Configuración de Seguridad
y Criptografía
Metodología de desarrollo empleando la seguridad
Desarrollado en 1989 por Guido van Rossum
Multi - Propósito (Web, GUI 'Interfaz gráfica del usuario', scripting)
Orientado a Objeto
Interpretado
Tipado dinámico
Multiplataforma
Centrado en la legibilidad y la productividad
Ciclo de desarrollo de Python y sus versiones
Propuestas de mejoras de Python - PEPs
PEP 20
PEP 6
Versiones de
Correcciones de
Errores
El Zen de Python
por Tim Peters
PEP 8
Guía de Estilo
para Escribir
Código
PEP 101
Haciendo Versiones
de Python
PEP 247
API para
Criptografía
Pruebas unitarias con Python
01010110 01100101 01101110 01000011 01000101 01010010 01010100
Inspirado por JUnit
Automatiza las pruebas
Verificación del código
Test Fixture
Test Case
Test Suite
Ejecución
Código
Unittest
python
Test Runner
Errores comunes en las aplicaciones web
01010110 01100101 01101110 01000011 01000101 01010010 01010100
Preocupaciones de Seguridad en Módulos y
Funciones
01010110 01100101 01101110 01000011 01000101 01010010 01010100
Comparación de tipos de
datos
Buffer Overflow
Errores Inesperados
Atributos Privados
>> print (“Muchas Gracias”)
[email protected]
@eliezerfot123
https://github.com/eliezerfot123
[email protected]
@4KRodrigoxD
https://github.com/goidor