Page 2 - Programación Defensiva
P. 2
Laboratorio de Ciberseguridad
incluye verificar el cierre correcto de archivos, Programación Ofensiva: un complemento
el manejo adecuado de recursos y la esencial
liberación apropiada de recursos asignados. La programación ofensiva, complementaria a
la defensiva, detecta errores y provoca fallos
Gestión de recursos: Las personas tempranos durante el desarrollo, lo que
gestionan recursos cada vez que codifican: facilita la depuración del código. El uso de
memoria, transacciones, hilos, archivos, todo herramientas de terceros, como análisis
tipo de cosas con disponibilidad limitada. La estático y pruebas automatizadas, mejora aún
mayoría de las veces, el uso de recursos sigue más la eficacia de las técnicas de
un patrón predecible: asignar el recurso, programación defensiva.
utilizarlo y luego liberarlo. Sin embargo,
muchos desarrolladores no tienen un plan Conclusión
consistente para tratar con la asignación y des Es crucial concienciarse sobre la importancia
asignación de recursos. Así que el consejo es de adoptar la programación defensiva, ya que
terminar lo que se empieza. un código eficaz protege al sistema en su
conjunto y garantiza que pueda cumplir con
Herramientas los objetivos establecidos.
Las herramientas utilizadas en programación
defensiva tienen como objetivo principal Bibliografía
mejorar la calidad y seguridad del software al
prevenir y mitigar posibles errores y Pedreño, A., González, P., Mora, T., del Mar
vulnerabilidades. Estas herramientas, como Pérez, E., Ruiz, J., Torres, A. (2024). La
linters, analizadores estáticos, pruebas inteligencia artificial en las universidades:
unitarias y herramientas de análisis de código, retos y oportunidades.
identifican y corrigen problemas en el código Boulanger, J. (2016) Certifiable Software
antes de que se conviertan en errores en Applications 1: Main Processes. ISTE Press -
tiempo de ejecución. Por ejemplo, ESLint Elsevier: Estados Unidos.
para JavaScript, Pylint para Python y
RuboCop para Ruby analizan el código en Cecil, R. (2009) Clean Code: A Handbook of
busca de errores y malas prácticas. Agile Software Craftsmanship. Prentice Hall:
El análisis estático de código, realizado por Estados Unidos.
herramientas como SonarQube, busca
vulnerabilidades conocidas y patrones de Katrib, M; Fernández,D. (1998) JavaA:
código inseguros. El fuzzing envía datos Inclusión de Aserciones en Java. Universidad
aleatorios a una aplicación para encontrar de la Habana: Computación y Sistemas,
errores y vulnerabilidades. Además, la Vol. 2, No. 1
validación y sanitización de entradas, esencial McConnell, S. (1993) Code Complete: A
para prevenir ataques como la inyección de Practical Handbook of Software Construction.
SQL o XSS, puede realizarse con funciones Microsoft Press: Estados Unidos.
proporcionadas por los marcos de trabajo
(frameworks) como Django.