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.
   1   2