seguridad

January 08, 2019
blog

Cómo proteger tus aplicaciones de ciberataques

 

Proteger tus aplicaciones de ciberataques implica mejorar los problemas de seguridad durante el ciclo de vida de la entrega de la aplicación construyendo sistemas rápidos, flexibles y seguros.

El desarrollo de un software moderno debe contener un código que cumpla con los requisitos funcionales del cliente. Este código debe caracterizarse por su rapidez y flexibilidad para permitir la evolución de las demandas IT, pero siempre conservando la estabilidad y fiabilidad.

De esta manera, es necesario diseñar una interfaz fácil de usar, optimizar la base de datos y, a menudo, configurar y mantener un flujo de entrega. Pero ante todo debemos tener en cuenta la seguridad, ya que, no queremos construir un sistema con vulnerabilidades de seguridad.

Así, seguridad y rendimiento son dos conceptos básicos que todo desarrollador debería tener en mente a la hora de diseñar aplicaciones. El problema que se suelen encontrar es que los requisitos de seguridad acostumbran a ser vagos y la proliferación de amenazas se están incrementando, pero identificar esas amenazas requieren tiempo y dinero.

Seguridad en el desarrollo de aplicaciones web

A continuación vamos a señalar las áreas comunes de una aplicación web en cuanto a los riesgos de seguridad que los desarrolladores deben tener en cuenta proporcionando una orientación sobre cómo se debería abordar cada riesgo.

Confianza

Ante todo es importante no confiar en la integridad de la solicitud proveniente del navegador del usuario y tampoco confiar en que los servicios upstream han limpiado nuestros datos.

La conexión entre el navegador del usuario y nuestra aplicación puede ser alterada y los servicios y almacenes de datos de los que dependemos también pueden haber sido vulnerados.

En definitiva, es necesario identificar las vulnerabilidades y abordar las amenazas que vayan surgiendo.

Rechazo de entrada de formulario inesperado

Los formularios HTML parecen ser capaces de controlar la entrada, pero proporcionando o no el formulario, nuestra escala de confianza en la seguridad es prácticamente nula aunque la conexión esté protegida por HTTPS.

El usuario podría modificar el marcado muy fácilmente antes de enviarlo o usar una aplicación de línea de comandos para enviar datos inesperados. Es decir, un usuario inocente podría estar enviando de forma involuntaria una versión modificada de un formulario desde un sitio web hostil. Pero para garantizar la integridad de los datos entrantes la validación debe manejarse en el servidor.

Nos podemos enfrentarnos a un problema de seguridad si se depende de la lógica de la aplicación y de la codificación de salida, ya que puede conllevar un comportamiento inesperado, pérdida de datos e incluso un atacante podría encontrar una forma de romper los límites de los datos de entrada en código ejecutable.

La validación de datos

La validación de entrada o validación de datos es un test que se realiza para cualquier entrada proporcionada por un usuario o aplicación. La validación de entrada evita que los datos no aptos entren en un sistema de información. En ocasiones es difícil detectar a un usuario malintencionado que intenta atacar el software, por lo que,  las aplicaciones deben verificar y validar todas las entradas ingresadas en un sistema.

A través de la validación de datos conseguimos evitar que éstos produzcan resultados inesperados, por ejemplo, violaciones de la lógica empresarial, desencadenamiento de errores o la toma de control de los recursos por parte de un atacante o incluso la toma de control de la aplicación en sí. La entrada que se evalúa en el servidor como código ejecutable o como una consulta de base de datos o que se ejecuta en el cliente como HTML JavaScript es particularmente peligrosa.

Los desarrolladores a menudo crean aplicaciones con al menos alguna validación de entrada básica. A pesar de ello, un desarrollador puede minimizar el peligro de las entradas no confiables para evitar efectos no deseados en el código de la aplicación.

Codificar salida HTML

Además de limitar los datos que llegan a una aplicación, los desarrolladores de aplicaciones web deben prestar mucha atención a los datos de salida. Una aplicación web moderna generalmente tiene un marcado HTML básico para la estructura del documento, CSS para el estilo del documento, JavaScript para la lógica de la aplicación y contenido generado por el usuario que puede ser cualquiera de estas cosas.

Otras técnicas  para reducir la violación de seguridad

No debemos olvidar que, también existen algunas técnicas básicas que los desarrolladores podrían y deberían usar para reducir las posibilidades de una violación de la seguridad:

  • Precauciones y advertencias
  • Parámetros de enlace para consultas de base de datos
  • Protección de los datos en tránsito
  • Solicita contraseñas seguras a tus usuarios con uso de algoritmo criptográfico
  • Autenticar usuarios de forma segura
  • Proteger las sesiones de los usuarios
  • Autorizar acciones

Además de estos consejos para el desarrollo de aplicaciones web es conveniente integrar una estrategia de seguridad para protegerse contra ataques DDoS, Application Layer y los ataques de DNS.

 

Descargar eBook Cloudflare

 

Cloudflare, la protección e impulso que necesita tu negocio