Numera es una solución desarrollada por NUMERA SAS, estamos en continuo desarrollo y comunicación con nuestro ecosistema. Por lo tanto, los informes de errores de la comunidad son una fuente importante de comentarios sobre la seguridad. Alentamos a los desarrolladores a auditar el código y reportar problemas de seguridad.
Los procesos de I+D de Numera tienen pasos de revisión de código que incluyen aspectos de seguridad, para piezas de código nuevas y aportadas.
Numera está diseñado de una manera que evita la introducción de las vulnerabilidades de seguridad más comunes:
Aquí es donde Numera se encuentra en el principal problema de seguridad para las aplicaciones web, según lo enumerado por el Proyecto de seguridad de aplicaciones web abiertas (OWASP):
Fallas de inyección: las fallas de inyección, particularmente la inyección de SQL, son comunes en las aplicaciones web. La inyección ocurre cuando los datos proporcionados por el usuario se envían a un intérprete como parte de un comando o consulta. Los datos hostiles del atacante engañan al intérprete para que ejecute comandos no deseados o cambie los datos.
Numera se basa en un marco de mapeo relacional de objetos (ORM) que abstrae la creación de consultas y evita las inyecciones de SQL de forma predeterminada. Los desarrolladores normalmente no elaboran consultas SQL manualmente, son generadas por el ORM y los parámetros siempre se escapan correctamente. En el módulo de nómina prevenimos la inyección SQL con sentencias preparadas.
Cross Site Scripting (XSS): las fallas de XSS ocurren cuando una aplicación toma datos proporcionados por el usuario y los envía a un navegador web sin primero validar o codificar ese contenido. XSS permite a los atacantes ejecutar secuencias de comandos en el navegador de la víctima que pueden secuestrar sesiones de usuario, desfigurar sitios web, posiblemente introducir gusanos, etc.
El marco de Numera escapa de todas las expresiones representadas en vistas y páginas de forma predeterminada, evitando XSS.
Falsificación de solicitud en sitios cruzados (CSRF): un ataque CSRF obliga al navegador de una víctima que ha iniciado sesión a enviar una solicitud HTTP falsificada, incluida la cookie de sesión de la víctima y cualquier otra información de autenticación incluida automáticamente, a una aplicación web vulnerable. Esto permite al atacante obligar al navegador de la víctima a generar solicitudes que la aplicación vulnerable cree que son solicitudes legítimas de la víctima.
El motor del sitio web de Numera incluye un mecanismo de protección JWT que se genera en cada log in y expira a las 12 horas de uso. Evita que cualquier controlador HTTP reciba una solicitud POST sin el token de seguridad correspondiente. Este token de seguridad solo se conoce y está presente cuando el usuario accedió realmente al formulario del sitio web correspondiente, y un atacante no puede falsificar una solicitud sin él.
Ejecución de archivos maliciosos: el código vulnerable a la inclusión remota de archivos (RFI) permite a los atacantes incluir código y datos hostiles, lo que resulta en ataques devastadores, como el compromiso total del servidor.
Numera no expone funciones para realizar la inclusión remota de archivos ejecutables. Sólo recibimos archivos en tipo PDF, CSV e imágenes.
Referencia de objeto directo inseguro: se produce una referencia de objeto directo cuando un desarrollador expone una referencia a un objeto de implementación interna, como un archivo, directorio, registro de base de datos o clave, como una URL o un parámetro de formulario. Los atacantes pueden manipular esas referencias para acceder a otros objetos sin autorización.
El control de acceso de Numera no está implementado en el nivel de la interfaz de usuario, por lo que no hay riesgo de exponer referencias a objetos internos en las URL. Los atacantes no pueden eludir la capa de control de acceso manipulando esas referencias, porque cada solicitud aún tiene que pasar por la capa de validación de acceso a datos.
Almacenamiento criptográfico inseguro: las aplicaciones web rara vez utilizan funciones criptográficas correctamente para proteger los datos y las credenciales. Los atacantes usan datos débilmente protegidos para realizar identidad.
En Numera usamos el almacenaminamiento criptográfico para la información de las contraseñas de los usuarios evitando un posible ataque a este punto.