Seguridad en el Desarrollo de Software: Lenguajes, Metodologías y Estándares

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 2,95 KB

Seguridad en los lenguajes de programación

Los lenguajes de programación presentan distintas ventajas e inconvenientes desde el punto de vista de la seguridad:

  • Compilados: Ofrecen mayor control y permiten integrar medidas de seguridad robustas. Sin embargo, la gestión manual de la memoria puede provocar fallos críticos como buffer overflows o use-after-free, especialmente en lenguajes como C y C++.
  • Interpretados: La gestión automática de la memoria reduce errores críticos. No obstante, son más vulnerables a ataques de inyección y su seguridad depende totalmente de la integridad del intérprete.

Entornos de Desarrollo (IDE) y funcionalidad

Un entorno de desarrollo facilita la creación de software seguro al permitir editar código, destacar la sintaxis, autocompletar funciones y depurar errores de forma eficiente.

Metodologías de desarrollo seguro

Modelo en V

El modelo en V organiza el desarrollo en dos ramas: diseño y pruebas. A cada fase de diseño (requisitos, análisis, diseño del sistema y de módulos) le corresponde una fase de prueba (aceptación, sistema, integración y unidad). La forma de "V" simboliza que cada etapa de desarrollo tiene su verificación asociada para asegurar que el software cumple con lo especificado.

TDD (Test Driven Development)

El TDD es un método donde primero se escriben las pruebas y después el código, siguiendo un ciclo iterativo:

  1. Crear una prueba.
  2. Verla fallar.
  3. Escribir el mínimo código necesario para que pase la prueba.
  4. Comprobar.
  5. Refactorizar.

Arquitectura de bloques

Todo sistema se compone de tres bloques fundamentales:

  • Entrada: Recibe los datos del exterior.
  • Proceso: Realiza los cálculos o acciones con dichos datos.
  • Salida: Muestra o guarda el resultado obtenido.

Inteligencia y estándares de seguridad

OSINT (Open Source Intelligence)

El OSINT consiste en la inteligencia obtenida a partir de información pública. Es fundamental para descubrir datos expuestos, configuraciones erróneas y vulnerabilidades que podrían comprometer una aplicación.

ISO 15408

Es el estándar internacional que evalúa la seguridad del software mediante niveles de garantía.

CWE y CVE

  • CWE (Common Weakness Enumeration): Lista debilidades de software (fallos de diseño o programación) y sirve para prevenir errores durante el desarrollo.
  • CVE (Common Vulnerabilities and Exposures): Lista vulnerabilidades reales encontradas en productos concretos y se utiliza para identificar fallos explotables en software ya publicado.

Entradas relacionadas: