Las aplicaciones web a nivel empresarial son el canal de conexión con el mundo y, en otros, el pilar fundamental de sus negocios. Por ello, es esencial que los desarrolladores de software estén al tanto de las vulnerabilidades más comunes.
OWASP son las siglas de “Open Web Application Security Project” o lo que es lo mismo: Proyecto abierto de seguridad de aplicaciones web. OWASP es una fundación sin fines de lucro que busca aumentar la seguridad del software. Es la fuente para que los desarrolladores y tecnólogos protejan la web, ya que representa un amplio consenso sobre los riesgos de seguridad más críticos para las aplicaciones web.
Teniendo en cuenta la importancia de las webs para los usuarios, las empresas e instituciones y los desarrolladores, la Fundación OWASP publica, periódicamente, las vulnerabilidades más comunes en aplicaciones web.
Para ello, OWASP lleva a cabo una compleja y ardua investigación para testear aplicaciones, detectar los ciber-riesgos más comunes y obtener las mejores prácticas en seguridad.
Las vulnerabilidades en aplicaciones web de OWASP categorizan los riegos más comunes:
- Pérdida de control de acceso
- Esta vulnerabilidad radica en la jerarquización, en los permisos, en los roles y en la propiedad de lo que el usuario debería de poder ver.
Por ejemplo, un usuario podría modificar los parámetros de la URL para acceder o alterar la información de otros usuarios.
Las aplicaciones necesitan corroborar el control de acceso en el servidor cuando se accede a cada función.
- Fallas criptográficas
- Es la principal causa de la exposición de datos confidenciales, como contraseñas, números de tarjetas de crédito y cualquier otra información personal. Esto es debido a que la encriptación no se implementa de forma correcta, como la transmisión de datos en texto simple, el uso de algoritmos criptográficos antiguos o débiles, o el uso de protocolos no seguros como HTTP (Protocolo de Transferencia de Hipertexto), SMTP (Protocolo Simple de Transferencia de Correo) o FTP (Protocolo de Transferencia de Archivos) para transportar datos confidenciales.
- Inyección
- Es una vulnerabilidad en la que el atacante logra inyectar código malicioso en la aplicación logrando que esta ejecute código no deseado o acceda a datos sin la debida autorización.
El mecanismo más común de ingreso de este ataque son los formularios a través de los cuales se hace la inyección.
- Diseño inseguro
- Se refiere a la mala arquitectura o diseño del software desde el inicio, si se tiene un mal diseño se puede tener muchas vulnerabilidades, se recomienda a los desarrolladores conocer buenas prácticas de codificación, trabajar con lineamientos y políticas de desarrollo (implementación de patrones de diseño, pruebas unitarias), contar con un líder técnico que este revisando la calidad del código y herramientas como SonarQube para evaluar el código fuente.
- Configuración de seguridad incorrecta
- Una buena configuración de seguridad requiere tener definida e implementada una configuración segura para la aplicación, marcos de trabajo, servidores de aplicaciones, base de datos, y plataforma. Todas estas configuraciones deben ser definidas, implementadas y mantenidas ya que por lo común no son seguras por defecto. Esto incluye tener todo el software actualizado, incluidas las librerías de código utilizadas por la aplicación.
- Componentes vulnerables y desactualizados
- Se deriva por la utilización de componentes dentro de una aplicación o infraestructura web obsoletos o con vulnerabilidades conocidas. Por ejemplo el uso de librerías que ya no cuentan con soporte o actualizaciones.
- Fallas de identificación y autenticación
- Se debe de prestar mucha atención a como se realiza la confirmación de la identidad, la autenticación y la administración de sesiones del usuario que es fundamental para proteger contra los ataques relacionados con la autenticación.
- Fallas en el software y en la integridad de los datos
- Las fallas en la integridad y los datos en las aplicaciones web se relacionan con el código y la infraestructura que no protegen contra las violaciones en la integridad. Un ejemplo de esto es cuando una aplicación depende de complementos, bibliotecas o módulos de fuentes, repositorios y redes de entrega de contenido (CDN) que no son seguras.
- Fallas en el registro y monitoreo
- Esta categoría es para detectar, escalar y responder a los incidentes de seguridad que se producen en los sistemas. Sin registro y monitoreo, los incidentes no se pueden detectar y solucionar.
- Falsificación de solicitudes del lado del servidor (SSRF).
- Ocurre cuando una aplicación web está obteniendo un recurso remoto sin validar la URL proporcionada por el usuario. Permite que un atacante coaccione a la aplicación para que envíe una petición falsificada a un destino inesperado, incluso cuando está protegido por un firewall, VPN u otro tipo de lista de control de acceso a la red.
Concluyendo, es importante que los desarrolladores de software conozcan los riesgos más comunes que se pueden presentar en las aplicaciones web y así poder proteger sus desarrollos y contar con software más seguro.
¿Tienes dudas? Acércate a mysourcing, ¡te podemos ayudar!