Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas
Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas

Conoce lo que debes revisar cuando desarrollas una aplicación web

En este post vamos a hablar acerca del tipo de pruebas que debes realizar cuando desarrollas una aplicación web.

Empezaré por decir que el tema de la seguridad debe ser tenido en cuenta desde el inicio del desarrollo de la aplicación e irá de la mano del desarrollo durante todo el ciclo de vida del software. Aquí vamos a ver cuáles son las principales clase de pruebas que debes tener en cuenta durante el desarrollo.

Las pruebas más comunes son las que generalmente se ejecutan al final del ciclo y son conocidas como pruebas DAST o pruebas dinámicas. Aquí se buscan vulnerabilidades en el software en operación. 

Te recomiendo llevar a cabo pruebas a medida que se desarrollan cada componente operativo para tratar las vulnerabilidades a medida que se desarrollan el software y no dejar esta carga al final donde todo se puede poner más complicado.

La segunda clase de pruebas son las llamadas pruebas SAST o pruebas estáticas. Estas pruebas se realizan al código desarrollado para la operación de la aplicación. Lo más recomendado es tener un software que puedas correr frecuentemente para evidenciar posibles vulnerabilidades a medida que se desarrollan el código. 

Las dos clases de pruebas son importantes, ya que en las pruebas estáticas pueden llegar a no evidenciar todas las vulnerabilidades del aplicativo y lo mismo pasa con las pruebas dinámicas. Recomendación, ejecutas las dos pruebas, DAST y SAST.

La tercera clase de pruebas son dos en una, pruebas de carga y estrés, se mide cuál es el nivel de carga soportada por el aplicativo y cuál es su punto de quiebre, es decir, cuánta carga puede soportar y cuál es la carga máxima antes de quebrarse.

La última clase de pruebas es el análisis de seguridad a la infraestructura, muchas veces el aplicativo desarrollado está bien, pero la infraestructura sobre la cual está desplegada la app es vulnerable, por lo que se ve comprometido el software.

En resumen, prueba el código desarrollado, el aplicativo en operación, el nivel de carga que soporta junto con su punto de quiebre y la infraestructura sobre la cual está desplegado.

Te deseo un desarrollo seguro.


Conozca la actualización más reciente del TOP 10 OWASP para desarrollo seguro de aplicaciones web

El Open Web Application Security Project® (OWASP) es una fundación sin ánimo de lucro que trabaja para mejorar la seguridad del software. Dentro de su inventario posee un gran número de aplicaciones orientadas a aumentar la seguridad en el desarrollo, uso y mantenimiento de las aplicaciones.

Uno de los proyectos más emblemáticos es el TOP 10 OWASP, el cual enlista los diez riesgos más críticos para las aplicaciones y servicios web, llamativamente esta semana actualizó su listado, quedando en su versión 2021 con los siguientes riesgos:

  • A01: 2021 Inadecuado control de acceso (anteriormente A05 OWASP Top 10 2017)
  • A02: 2021 Fallos criptográficos (anteriormente A03 OWASP Top 10 2017)
  • A03: 2021 Inyección (anteriormente A01 OWASP Top 10 2017)
  • A04: 2021 Diseño inseguro (NUEVO)
  • A05: 2021 Configuración incorrecta de seguridad (anteriormente A06 OWASP Top 10 2017)
  • A06: 2021 Componentes vulnerables y obsoletos
  • A07: 2021 Fallos de identificación y autenticación (anteriormente A02 OWASP Top 10 2017)
  • A08: 2021 Fallos de integridad de datos y software (NUEVO)
  • A09: 2021 Fallos de seguimiento y registro de seguridad (anteriormente A10 OWASP Top 10 2017)
  • A10: 2021 Falsificación de solicitudes del lado del servidor (NUEVO)
En el siguiente gráfico puedes ver la evolución de los riesgos desde la versión anterior 2017 hasta la versión actual, la 2021:

Un ítem bastante interesante a tener en cuenta, es la inclusión del riesgo 4, el cual tiene que ver con el diseño inseguro y el apartado 8, fallos de integridad de datos y software, la inclusión de estos dos elementos se alinean con el tema del ciclo de vida del desarrollo de software seguro.

Si desea tener más datos al respecto, por favor visite el sitio web www.owasp.org


Tres aspectos que debes cuidar cuando desarrollo de software debes abordar.

Aparte del diseño, código, lenguaje de programación, modelo de desarrollo, ciclo de vida y otros menesteres, estas son las tres cosas que debes tener en cuenta cuando desarrollas software y debes tener en cuenta la parte de seguridad. 

Al día de hoy, se hace completamente necesario que desarrolles software de forma segura y que entregues el aplicativo libre de vulnerabilidades, para esto debes tener en cuenta estos aspectos antes de entregar el producto final:

Análisis de vulnerabilidades en código fuente

Este es una de las cosas que debes tener en cuenta casi que desde el inicio del proyecto, los desarrolladores deben tener acceso a este servicio para ir probando su código a medida que avanzan en el desarrollo. Al finalizar la entrega del producto, deberás estregar el resultado final del análisis del código fuente para garantizar la seguridad del aplicativo.

Pruebas de carga y estrés 

Saber cuál es el punto de quiebre del aplicativo es sumamente importante, ya que con ello podrás tomar las acciones necesarias para evitar una no disponibilidad del servicio. Con las tecnologías actuales, el aprovisionamiento de nuevos nodos al vuelo es muy fácil de implementar para evitar del deterioro en la prestación de un servicio.

Pruebas de pentest

Debes evaluar el aplicativo en búsqueda de vulnerabilidades en el aplicativo en operación, algunas de ellas solo son posibles evaluarlas cuando el software es desplegado. 

Ten en cuenta que acá nos referimos solamente a lo que le concierne al aplicativo web, pero, es igualmente importante que evalúes la plataforma sobre la cual está alojada el servicio, ya que puedes tener un excelente aplicativo con todos los aspectos bien cuidados, montado sobre una plataforma descuidada lo cual dará como resultado un escenario catastrófico.

Existen muchos servicios adicionales que puedes tener en cuenta para proteger tu aplicativo, los cuales varían de acuerdo a tus necesidades y presupuesto, algunos de ellos son balanceadores de carga, dockers, WAF, honey pots, identificadores de tráfico válido, protectores de ataques DDOS entre otros. 

Si eres desarrollador, te recomiendo entregar el producto final con el resultado de las tres pruebas que te recomendé, esto será un plus para tu cliente y te diferenciara de tu competencia, y si eres el cliente, deberás incluir dentro de tus contratos el que se te entreguen los resultados de estas pruebas cuando recibas el aplicativo. Si no conoces del tema, te recomiendo una auditoría por un tercero.

Incluye siempre el componente de seguridad en todo desarrollo, con esto, estarás un poco más seguro.