0% encontró este documento útil (0 votos)
106 vistas19 páginas

Seguridad en Programación con Python

Este documento trata sobre programación segura en Python. Cubre temas como riesgos de seguridad en aplicaciones, desarrollo de software seguro, pruebas unitarias en Python, y PEPs (Propuestas de Mejoras) de Python. También incluye biografías breves de los oradores Eliezer Romero y Rodrigo Bravo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
106 vistas19 páginas

Seguridad en Programación con Python

Este documento trata sobre programación segura en Python. Cubre temas como riesgos de seguridad en aplicaciones, desarrollo de software seguro, pruebas unitarias en Python, y PEPs (Propuestas de Mejoras) de Python. También incluye biografías breves de los oradores Eliezer Romero y Rodrigo Bravo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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 Impactos Impacto
seguridad Seguridad técnicos A la institución

Ataque Debilidad Control Impacto


Recurso
Ataque Debilidad Control Impacto

Recurso
Ataque Impacto

Recurso
Debilidad Control

Atacante Defectos
Vectores de Error (Bugs) Fallas (Flaw)
s ataques

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 Autenticación
usuario Fuerza Bruta

Incluir
Hacker/ Usuario
Aplicaciones/ Malicioso
Server Muestra de Cosecha de
errores genéricos cuentas

Incluir

Bloqueo de
cuenta ante
muchos intentos Diccionario de
de inicio de Ataques
sesión

Incluir

Validar la
contraseña con
una tamaño
mínimo y Configuración de Seguridad
compleja
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 6 PEP 20

Versiones de El Zen de Python


Correcciones de por Tim Peters
Errores
PEP 8
Guía de Estilo
para Escribir
Código
PEP 101 PEP 247

Haciendo Versiones API para


de Python 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 Test Runner

Ejecución

Código Unittest

python
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
Buffer Overflow
datos

Errores Inesperados Atributos Privados


>> print (“Muchas Gracias”)

Eliezerfot123@[Link] [Link]@[Link]
@eliezerfot123 @4KRodrigoxD
[Link] [Link]

Common questions

Con tecnología de IA

Weak password policies increase the risk of unauthorized access, often through attacks such as brute force or dictionary attacks. Mitigation measures include enforcing strong password requirements (minimum length and complexity), employing account lockout mechanisms after multiple failed attempts, and implementing multi-factor authentication .

Avoiding duplicate code is crucial because it is a common source of errors and maintenance issues. Duplicate code can lead to inconsistencies and bugs, especially when changes are made in one instance but not propagated properly across others. Maintaining code quality and reducing error rates rely on eliminating redundancies .

'The Zen of Python,' a collection of aphorisms by Tim Peters, influences Python development and coding practices by promoting simplicity, readability, and the explicit over the implicit in design and coding. This philosophy serves as a guide for developers to write clean, efficient, and maintainable code .

The cycle of Python development and versioning plays a critical role in maintaining software security by continually addressing and patching vulnerabilities. Regular updates and version improvements ensure that security flaws are corrected, and the language adapts to new threats, thereby reducing the risk of exploitation .

Core principles for developing secure software include designing, building, and testing with security in mind to ensure the software continues functioning correctly under attack. This involves a systematic examination of the program's source code to verify security controls and encourage good practices. Additionally, avoiding code duplication is crucial as it can lead to numerous errors .

Unit testing is crucial for verifying that individual parts of a program work as intended. Python supports unit testing through modules like 'unittest', which automates the testing process, ensuring that code changes do not introduce errors. Inspired by JUnit, it includes features such as Test Fixtures, Test Cases, Test Suites, and Test Runners, which facilitate comprehensive testing .

Multi-purpose Python applications, which include web, GUI, and scripting functionalities, face several security concerns. These include improper input validation, buffer overflows, and data type comparison errors that can lead to vulnerabilities. Maintaining application security involves careful consideration of module and function security .

PEPs (Python Enhancement Proposals) act as design documents providing information to the Python community about proposed enhancements. They contribute by outlining new features or standards, thereby guiding the language's development. Important PEPs include PEP 6, PEP 20, PEP 8, PEP 101, and PEP 247, which cover subjects from error handling to style guides .

Systematic examination of source code involves thoroughly reviewing the code to identify and correct security vulnerabilities before deployment. Its purpose is to ensure software reliability, identify potential risks, and comply with security standards. This process is fundamental in verifying that security controls are properly implemented .

Attackers can exploit application weaknesses through various vectors such as input validation failures, buffer overflows, and inadequate authentication mechanisms. Developers mitigate these threats by implementing robust security practices like input sanitization, using secure coding standards, performing regular security audits, and employing encryption for sensitive data .

También podría gustarte