INTRODUCCIÓN
Existen muchos vectores de ataque comunes que se utilizan para explotar vulnerabilidades en aplicaciones de software. En este artículo, exploraremos algunas de las vulnerabilidades más comunes y cómo las abordamos en Workvivo.
Inyección SQL
"La inyección SQL es una técnica de inyección de código que se utiliza para atacar datos basados en datos.
aplicaciones en las que se insertan sentencias SQL maliciosas en un campo de entrada para su ejecución (por ejemplo, para volcar el contenido de la base de datos al atacante)" - Wikipedia
El código fuente de Workvivo abstrae por completo toda la interacción con la base de datos a través de una biblioteca Object Relational Mapper (ORM) que desinfecta automáticamente la entrada del usuario y utiliza consultas parametrizadas para garantizar que la inyección de SQL no sea posible. No hay consultas SQL directas en el código fuente de Workvivo y nuestras pautas de revisión de código exigen que toda interacción con la base de datos debe pasar por el ORM.
Protección XSS
"Los ataques de secuencias de comandos entre sitios (XSS) son un tipo de inyección en el que
Se inyectan scripts maliciosos en sitios web que, de otro modo, serían inofensivos y confiables. Los ataques XSS ocurren cuando un atacante utiliza una aplicación web para enviar código malicioso, generalmente en forma de script del navegador, a otro usuario final. - Fuente
Workvivo protege contra XSS desinfectando todas las entradas del usuario y validándolas para garantizar que no contengan ningún código malicioso. También desinfectamos y escapamos toda la salida para garantizar que si un código malicioso llegara a la base de datos, no se ejecutaría cuando se generara en el navegador.
Protección CSRF
La falsificación de solicitudes entre sitios (CSRF) es un ataque que obliga a un usuario final a ejecutar acciones no deseadas en una aplicación web en la que está autenticado. Los ataques CSRF se dirigen específicamente a solicitudes de cambio de estado, no al robo de datos, ya que el atacante no puede ver la respuesta a la solicitud falsificada.
Workvivo protege contra CSRF generando automáticamente un token CSRF para cada sesión de usuario activa administrada por la aplicación. Este token se utiliza luego para verificar que el usuario autenticado es el que realmente realiza las solicitudes a la aplicación. Pasamos este token a cada solicitud de API en los encabezados de solicitud. El token se actualiza con cada solicitud y una solicitud de API que no pasa el token correcto devolverá una respuesta de error.
HTTPS
Workvivo solo admite el funcionamiento mediante el protocolo HTTPS, lo que significa que todas las comunicaciones entre el cliente y el servidor se procesan a través de un canal seguro y encriptado que no puede ser rastreado ni interceptado. Si un usuario intenta acceder a Workvivo a través de HTTP no cifrado, será redirigido automáticamente a la versión HTTPS de la URL.
Usamos AWS Certificate Manager para generar automáticamente nuevos certificados TLS cuando el certificado actual está a punto de vencer. Esto incluye el suministro de certificados para nombres de dominio personalizados. Este enfoque garantiza que nunca se produzca un escenario en el que el certificado TLS caduque.
Detección de intrusiones
Workvivo incluye un sistema de detección de intrusiones de última generación que registra todos los intentos de intrusión a la aplicación y previene activamente los intentos de alto riesgo según su nivel de amenaza.