Soluciona las vulnerabilidades top de OWASP y aprende a prevenirlas

Soluciona las vulnerabilidades top de OWASP y aprende a prevenirlas

Lorena Fernández

Existen múltiples aplicaciones que utilizamos a diario. Especialmente, las aplicaciones web. Así como van aumentando su nivel de adopción, las vulnerabilidades también. A pesar de que no es posible que un cibercriminal ataque a todas las aplicaciones existentes alrededor del mundo, todas deberían contar con las medidas de seguridad correspondientes para evitar los principales ataques. Por desgracia, los ciberataques se dan en cualquier momento y generalmente, no percibimos las señales a tiempo.

Hoy en RedesZone hemos creado esta guía para que puedas tener un panorama general sobre las principales vulnerabilidades del top de OWASP, y cómo podemos proceder para solucionarla o mitigarla lo mejor posible. También os enseñaremos qué es lo mejor que puedes hacer en cada caso, aunque hay algunas que son algo más complejas. Es bueno tener presente que las vulnerabilidades que citaremos a continuación, están basadas en el popular proyecto OWASP de vulnerabilidades en aplicaciones.

Exposición de datos sensibles

Una de las situaciones que preocupa tanto a los usuarios como a las organizaciones, es la seguridad y privacidad de los datos sensibles. Recordemos que un dato sensible puede referirse a algo personal, laboral, bancario, financiero o de salud. Cualquier tipo de dato que pueda generar información sobre ti es de gran provecho para los cibercriminales. Los datos sensibles no sólo tienen el riesgo de que se expongan, sino también que sean modificados, robados o vendidos a entidades dedicadas a la manipulación de datos sensibles.

Si tienes la responsabilidad de administrar datos sensibles, una de las mejores prácticas es la clasificación. Un ejemplo aleatorio, datos sensibles y datos no sensibles. Si fuesen datos sensibles, a estos se deberían aplicar medidas de seguridad adicionales, como, por ejemplo, métodos de cifrado más robustos y el evitar almacenarlos si no es estrictamente necesario, además de necesitar una autenticación fuerte para poder acceder a ellos, e incluso doble factor de autenticación para fortalecer el esquema de autenticación. Por otro lado, debes prestar atención a los datos que están en tránsito: se recomiendan aplicar protocolos seguros como TLS (Transport Layer Security) y PFS (Perfect Forward Secrecy).

Malas configuraciones de seguridad

Es uno de las vulnerabilidades que se da con más frecuencia, principalmente por las malas prácticas al momento de desarrollar las aplicaciones. Configuraciones por defecto, inseguras o incompletas, implementación de servicios en la nube de carácter abierto cuando hay datos sensibles. Casos como estos pueden implicar un alto riesgo para la integridad de las aplicaciones en general.

Una de las medidas que se pueden poner en práctica más fácilmente es el borrado de servicios y cualquier otro complemento de la aplicación que no necesitas utilizar. Recuerda que estos componentes «inactivos» suponen una gran ventaja para los cibercriminales. Varios de estos ataques se dan a razón de la falta de control de este aspecto. Así también, verifica con frecuencia qué potenciales agujeros en la configuración pueden presentarse. Una facilidad para este aspecto es recurrir a la documentación y soporte de tu proveedor. En muchos casos, cuentan con una buena cantidad de recursos para ayudarte a sacar mayor provecho de la infraestructura de la aplicación, así también a elevar los niveles de seguridad.

Pérdida de control de acceso

Como administradores de usuarios, nunca debemos subestimar a los usuarios finales. Lo decimos de esa manera porque hay casos en que usuarios «normales» cuentan con más permisos de los que deberían. En consecuencia, esto puede servir de trampolín para que pueda llevar a cabo múltiples actividades maliciosas. Lo más grave de esto es que esto podría pasar por encima ciertos controles de seguridad, a razón de que cuenta con los permisos para hacerlo. La escalada de privilegios es un problema para las redes de todo tipo de organizaciones. Los ataques de tipo «insider» (dentro de la organización) tienen estadísticas escalofriantes, por lo que es obligatorio ajustar los permisos que cada tipo de usuario tiene.

Por otro lado, no debemos descuidar a los usuarios con permisos de administrador en cuestión. En RedesZone hemos comentado en detalle al respecto, y puedes echar un vistazo a lo que debes hacer para mejorar los mecanismos de control.

Inyección en base a motores de bases de datos

La inyección consiste en la inserción de datos que contienen código con capacidad de ejecutar acciones maliciosas. Se pueden dar en los distintos motores de bases de datos como SQL, NoSQL e incluso en LDAP (Lightweight Directory Access Protocol). Un ejemplo práctico es cuando iniciamos sesión en una aplicación determinada y en vez de ingresar nuestras credenciales de acceso, escribimos sentencias SQL que ejecutan acciones maliciosas. Esto, en algunas ocasiones, no es fácil de de detectar. Sin embargo, existen casos de inyecciones en los que la aplicación queda prácticamente inservible. Así también, los datos presentes en las aplicaciones pueden exponerse o quedar no disponibles para los dueños de los mismos.

La medida principal de prevención que debes contemplar es aplicar validación de ingreso (input) de datos a las aplicaciones. Esto permitirá que el usuario no ingrese cualquier tipo de texto en cada uno de los campos de un formulario de inscripción, inicio de sesión, registro, etc. Aparenta ser una práctica bastante elemental, pero por desgracia, muchas aplicaciones y servicios en general subestiman esta amenaza. Por ejemplo, si tu formulario requiere de datos numéricos, restringe el ingreso de datos a sólo números. Si es texto, limita el ingreso de comandos que puedan significar sentencias de bases de bases de datos.

Como hemos visto, estas son sólo algunas de las vulnerabilidades mencionadas por OWASP. Sin embargo, consideramos que estas son algunas de las más importantes en relación al impacto que tienen en la infraestructura de las aplicaciones y los usuarios de las mismas. Debemos tener presente que no sólo debemos aumentar las medidas de seguridad ante un riesgo inminente de ataque, sino que debemos hacerlo en todo momento. Las buenas prácticas de desarrollo e implementación de aplicaciones forman el escudo protector más eficaz ante tantas vulnerabilidades.