aproximadamente
Publicado el 18 de noviembre de 2020

Técnicas de desarrollo seguro de software

Técnicas de desarrollo seguro de software

¿A que te suena esta historia? Trabajas como desarrollador o desarrolladora en un proyecto de diseño e implantación de software. Los plazos de entrega son ajustados y, en consecuencia, se prevé un periodo corto para crear la aplicación, en el que se implica a un equipo de gran tamaño; y un tiempo largo de mantenimiento, en el que tan solo dos o tres personas se dedicarán a solucionar los problemas que surjan a posteriori. Por supuesto, con unas fechas tope tan draconianas, para que el proyecto salga adelante se va podando lo superfluo. ¿Las consecuencias? Adiós a las prácticas de desarrollo seguro de software, y hola a un futuro en el que el nuevo software será carne de cañón de los ciberataques.

Descuidar la seguridad informática en estos procesos no es ninguna tontería. El informe Cost of a Data Breach Report 2019 del Ponemon Institute para IBM subraya que poner coto a una brecha de datos inflige una herida de 3,9 millones de dólares de media en las finanzas de la empresa que la sufre. Además, el estudio cuantifica en 279 el número de días necesario para identificar y solucionar este fallo de seguridad.

Para evitar escenarios como este existen las técnicas de desarrollo seguro de software.

¿Qué es el desarrollo seguro de software?

El desarrollo seguro de software es un modelo de trabajo que se basa en la realización de chequeos de seguridad continuos del proyecto en construcción, incluso desde sus fases iniciales y antes de que se escriba una sola línea de código. Estas pruebas se centran en descubrir y corregir cualquier error en una etapa temprana, y comprenden tests de autentificación, autorización, confidencialidad, no repudio, integridad, estabilidad, disponibilidad o resiliencia.

El objetivo es, al fin y al cabo, asegurarnos de que impediremos el acceso al programa y a los datos almacenados por parte de usuarios carentes de permiso.

Amenazas que tener en cuenta cara al desarrollo seguro de software

El desarrollo seguro de software se lleva a cabo tomando medidas para combatir las amenazas informáticas. Este tipo de ataques maliciosos tienen como fin comprometer la actividad digital de un conjunto de personas, causar un daño o robar, bien sea dinero o bien información reservada.

La lista de ciberamenazas es larga y se nutre constantemente de nuevos peligros. Virus, troyanos, phishing, malware, bombas lógicas, screen scraping, amenazas avanzadas persistentes (APT), ransomware, spyware… Y suma y sigue. Basta con echar un vistazo a la web del proyecto OWASP, que actualiza continuamente su top 10 de los problemas de seguridad críticos para las aplicaciones web.

Por nuestra parte, en BETWEEN queremos poner el acento en tres tipos de ataques informáticos tremendamente dañinos que se pueden minimizar mediante el desarrollo seguro de software:

  • SQL Injection. Ocurre cuando una tercera parte inserta fragmentos de código intruso en, por ejemplo, el campo de entrada de un formulario. Esto le franqueará el acceso a la base de datos de la víctima.
  • XSS (Cross Site Scripting). Se basa en la inyección de scripts dentro de una web usando HTML, JavaScript u otro lenguaje de codificación. El script se ejecutará en el navegador del cliente con el fin de espiar sus sesiones, redirigirlo a sitios web dañinos, sustraer su información personal o manipular su actividad.
  • Ataques de denegación de servicios (DDoS). Tienen lugar cuando una red de dispositivos lanza un ataque simultáneo, realizando una solicitud masiva de peticiones que el servicio se ve incapaz de atender.

Las metodologías de desarrollo seguro de software deben incorporarse en el día a día del programador

H2: Metodologías para el desarrollo seguro de software

Las metodologías de desarrollo seguro de software sitúan a la seguridad en el centro del proceso. Existen distintos modelos, concebidos por grandes compañías, organizaciones nacionales y bajo paradigmas de código abierto. En BETWEEN te hablamos de algunos de los más destacados:

  • S-SDLC (Secure Software Development Life Cycle). Se basa en verificar los requisitos de seguridad a lo largo de las distintas fases de construcción del software: análisis, diseño, desarrollo, pruebas y mantenimiento. Sobre todo, durante las dos primeras, ya que gran parte de las debilidades de los sistemas se generan incluso antes de comenzar las tareas de programación. Las claves del S-SDLC son la atención al detalle, para favorecer la identificación inmediata de las vulnerabilidades; y la mejora continua.
  • CLASP (Comprehensive Lightweight Application Security Process). Proyecto del OWASP que establece una serie de actividades, roles y buenas prácticas dirigidas a coordinar los procesos de desarrollo seguro de software. La organización OWASP CLASP se asienta en cinco perspectivas o vistas que abordan los conceptos generales de esta metodología, la distribución de funciones, la valoración de las actividades aplicables, la implementación de estas actividades, y el listado de problemas que pueden dar lugar a la aparición de vulnerabilidades.
  • SSDF (Secure Software Development Framework). Iniciativa del NIST (National Institute of Standards and Technology de Estados Unidos), provee indicaciones para evangelizar a la organización acerca de la importancia de la seguridad informática; proteger el software de uso habitual ante hipotéticos ataques; orquestar un desarrollo seguro de software; y detectar y solucionar con rapidez cualquier vulnerabilidad.

Cualquier paso en falso puede desvelar datos personales o dejar un software a merced de mentes malintencionadas. Por ello, es imprescindible tener presentes las técnicas de desarrollo seguro de software en todo momento y en proyectos de todo tipo (desarrollo WordPress, programas de administración y contabilidad, controladores de maquinaria, banca online, etc.). Si te dedicas profesionalmente a esto, ¡en BETWEEN tenemos un hueco para ti! En nuestro listado de vacantes se encuentra tu próxima oportunidad laboral, ¡no la dejes escapar!

Etiquetas: Informática

Artículos Relacionados

¿Qué es el overfitting en machine learning y cómo evitarlo?

En cierto punto del aprendizaje del machine learning, la mayoría de los principiantes se encuentra con el mismo problema. Y entonces, surge una pregunta unánime. ¿Por qué, con el ...

Topics: Informática

HTTP/3, el protocolo que nos traerá (por fin) un Internet más rápido

Desde su nacimiento en los años 80 del siglo pasado, Internet ha utilizado siempre TCP como columna vertebral de su HTTP (Hypertext Transfer Protocol), el protocolo que organiza ...

Topics: Informática

Efecto 2038: ¿nos acecha un nuevo apagón informático?

En 2014, el artista coreano PSY rompió el contador de visualizaciones de YouTube al superar, con su vídeo del hit musical Gangnam Style, las 2.147.483.647 reproducciones. Una vez ...

Topics: Informática