• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to footer

Sucuri Español

Noticias de Seguridad de Sitios Web

  • Productos
    • Plataforma de Seguridad de Sitios Web
    • Firewall para Aplicaciones Web
    • Seguridad de Sitios Web Empresarial
    • Solución de Seguridad para Múltiples Sitios Web
  • Funciones
    • Detección
    • Protección
    • Optimización
    • Respuesta
    • Copias de Seguridad
  • Socios
    • Soluciones para Agencias
    • Socios
    • Ecommerce
  • Recursos
    • Guías
    • Webinars
    • Infografías
    • SiteCheck
  • Ayuda Rápida
  • Login
  • Languages
    • Inglés
    • Español
    • Portugués
Los 10 Principales Riesgos de Seguridad según OWASP - Parte I

Los 10 Principales Riesgos de Seguridad según OWASP – Parte I

October 9, 2018Gerson Ruiz0 ComentariosEnglishPortugues

5
COMPARTIDOS
CompartirTweetInscríbase

Estamos en el Mes de Concientización de la Seguridad Cibernética y para concientizar sobre lo que amenaza la integridad de los sitios web, nos gustaría comenzar una serie de publicaciones sobre Los 10 Principales Riesgos de Seguridad según OWASP.

OWASP significa Proyecto de Seguridad de Aplicaciones Web Abiertas (en inglés), una comunidad en línea que produce publicaciones, metodologías, documentación, herramientas y tecnologías en el campo de la seguridad de aplicaciones web.

El Top 10 de OWASP es la lista de las 10 vulnerabilidades de aplicaciones web más vistas. También muestra sus riesgos, impactos y contramedidas. Con actualizaciones de tres a cuatro años, la última lista se publicó este año. Vamos a entrar en detalles.

Los 10 Principales Riesgos de Seguridad según OWASP son:

  1. Injección
  2. Autenticación Rota
  3. Exposición de Datos Sensibles
  4. Entidades Externas de XML (XXE)
  5. Control de Acceso Roto
  6. Security misconfigurations
  7. Cross Site Scripting (XSS)
  8. Deserialización Insegura
  9. Usar Componentes con Vulnerabilidades Conocidas
  10. Registros y Monitoreos Insuficientes

Hoy nos vamos a enfocar en los primeros dos riesgos.

1. Injección

Una inyección de código ocurre cuando un atacante envía datos inválidos a la aplicación web con la intención de hacerla hacer algo distinto para lo que fue diseñada/programada para hacer.

Quizás el ejemplo más común alrededor de esta vulnerabilidad de seguridad es la consulta SQL consumiendo datos no confiables. Puedes ver uno de los ejemplos de OWASP a continuación:

String query = "SELECT * FROM accounts WHEREcustID = '" + request.getParameter("id") + "'";

Esta consulta se puede explotar entrando a la página web que la ejecuta a través de la siguiente URL: http://example.com/app/accountView?id=’or’1’=’1, causando el retorno de todas las filas almacenadas en la tabla de la base de datos.

El núcleo de una vulnerabilidad de inyección de código es la falta de validación y sanitización de los datos consumidos por la aplicación web. Lo que significa que esta vulnerabilidad puede estar presente en casi cualquier tipo de tecnología.

Todo lo que acepte parámetros como entradas puede ser potencialmente vulnerable a un ataque de inyección de código.

Tenemos muchas publicaciones sobre ataques de inyección de código. Uno de los ejemplos más recientes es la vulnerabilidad de inyección SQL en Joomla! 3.7.

Aquí hay otro ejemplo de una inyección SQL que infectó más de medio millón de sitios web con el plugin YITH WooCommerce Wishlist para WordPress:

Ejemplo de Inyección SQL

La inyección SQL anterior podría llegar a causar la filtración de datos sensibles y el compromiso completo de una instalación de WordPress:

¿Cómo se previenen las vulnerabilidades de inyecciones de código?

Prevenir las vulnerabilidades de inyección de código depende de la tecnología que estés utilizando en tu sitio web. Por ejemplo, si usas WordPress, podrías evitar las vulnerabilidades de inyección de código manteniendo al mínimo el número de plugins y temas instalados.

Si tienes una aplicación web a medida y tu propio equipo de desarrolladores, necesitas asegurarte de que tus desarrolladores tengan requerimientos de seguridad con los que diseñar y escribir software. Esto les permitirá seguir pensando en la seguridad durante todo el ciclo de vida del proyecto.

Estas son las recomendaciones técnicas de OWASP para prevenir inyecciones SQL:

Prevenir inyecciones requiere mantener los datos separados de los comandos y las consultas.

  • La opción preferida es usar una API segura que evite el uso del interprete de manera completa, o provea una interfaz parametrizada o migre para usar Herramientas de Mapeo de Objetos Relacional (ORMs por sus siglas en inglés).
    Nota: Incluso si las consultas son parametrizadas, los procedimientos almacenados pueden producir inyecciones SQL si el PL/SQL o T-SQL concatenan las consultas y los datos, o ejecuta datos hostiles con EXECUTE IMMEDIATE or exec().
  • Usa un “whitelist” como validación de datos del lado del servidor. Esta no es una defensa completa ya que muchas aplicaciones requieren caracteres especiales, como las áreas de texto o APIs para aplicaciones móviles.
  • Para cualquier consulta dinámica residual, escapa los caracteres residuales usando la sintaxis de escape específica para ese intérprete.
    Nota: Las estructuras SQL como nombres de tablas, nombres de columnas, etc, no pueden ser escapadas y por tanto, los nombres provistos por los usuarios son peligrosos. Este es un problema común en el software de escritura de reportes.
  • Usa LIMIT y otros controles SQL dentro de la consulta para prevenir la divulgación en masa de registros en el caso de una inyección SQL exitosa.

Se pueden abstraer dos cosas de estas recomendaciones:

  • Separación de datos con la lógica de la aplicación web
  • Ajustes para limitar la exposición de datos en caso de ataques de inyección exitosos

Las inyecciones de código representan un serio riesgo para los propietarios de sitios web porque si se llegan a cumplir los requerimientos, estos ataques podrían llevar a un compromiso completo o la filtración de información confidencial.

2. Autenticacion Rota

Una vulnerabilidad de autenticación rota le permite a los atacantes usar medios manuales y/o automáticos para tratar de ganar control sobre una de las cuentas en el sistema, o peor, para ganar control completo del sistema.

Los sitios web con vulnerabilidades de autenticación rota son muy comunes en la web. La autenticación rota usualmente se debe a problemas de lógica en el mecanismo de autenticación de la aplicación, como el mal manejo de sesiones o el listado de nombres de usuarios.

Para evitar problemas de autenticación rota no permitas que las páginas de inicio de sesión para administradores esté públicamente accesible para los visitantes de tu sitio web:

  • /administrator en Joomla!,
  • /wp-admin/ en WordPress,
  • /index.php/admin en Magento,
  • /user/login en Drupal.

La segunda forma más común de esta vulnerabilidad es permitir que los usuarios hagan ataques de fuerza bruta contra esas páginas utilizando combinaciones de nombres de usuario y contraseñas.

Tipos de Vulnerabilidades

Estas vulnerabilidades pueden presentarse de muchas formas. De acuerdo a OWASP, una aplicación web contiene una vulnerabilidad de autenticación rota si:

  • Permite ataques automáticos como credential stuffing, donde el atacante tiene una lista de nombres de usuario y contraseñas válidas.
  • Permite ataques de fuerza bruta u otros ataques automáticos.
  • Permite contraseñas por defecto, débiles o conocidas, como por ejemplo “Password1” o “admin/admin“.
  • Usa procesos de recuperación y contraseñas olvidadas ineficaces o débiles, como por ejemplo “respuestas basadas en conocimiento”, que es algo que no se puede proteger.
  • Usa contraseñas en texto plano, encriptadas o con hashes débiles.
  • No tiene o no cuenta con autenticación multi-factor inefectiva.
  • Expone los IDs de las Sesiones en la URL (p. ej., re-escritura de URLs).
  • No rota los IDs de las Sesiones luego de un login exitoso.
  • No invalida los IDs de Sesiones de manera adecuada. Las sesiones o los tokens de autenticación (particularmente tokens de inicio de sesión único (SSO)) no son invalidados durante el proceso de cierre de sesión o en un periodo de inactividad.

La escritura de software inseguro resulta en la mayoría de estas vulnerabilidades. Y escribir software inseguro puede ser atribuido a muchos factores, como la falta de experiencia de los desarrolladores. También puede ser como consecuencia de fallas institucionales, como por ejemplo, organizaciones apresurando el lanzamiento de nuevas versiones de un software, o en otras palabras, escogiendo software funcional sobre software seguro.

¿Cómo se previenen las vulnerabilidades de autenticación rota?

Para evitar las vulnerabilidades de autenticación rota, asegúrate de que tus desarrolladores apliquen las mejores prácticas de la seguridad de sitios web y apóyalos al proveer acceso a auditorías de seguridad externas y tiempo suficiente para poner a prueba el código antes de lanzarlo a producción.

Estas son las recomendaciones técnicas de OWASP:

  • Siempre que sea posible, implementa autenticación multi-factor para evitar ataques automáticos como credential stuffing, fuerza bruta y utilización de credenciales robadas.
  • No despliegues ninguna credencial por defecto, sobre todo para los usuarios administradores.
  • Implementa verificaciones de contraseñas débiles, como por ejemplo, probar contraseñas nuevas o actualizadas contra la lista de las 10,000 contraseñas más débiles.
  • Alinea la longitud, complejidad y las políticas de rotación de contraseñas con los lineamientos de la sección 5.1.1 del NIST 800-63 B para Secretos Memorizados u otra política de contraseñas moderna basada en evidencia.
  • Asegura que el registro, la recuperación de credenciales y las rutas de API están protegidas contra ataques de enumeración de cuentas al escoger el mismo mensaje para todos los resultados.
  • Limita o incrementa cada vez más los intentos de inicio de sesión fallidos. Registra todas los intentos fallidos y alerta a los administradores cuando se detecten ataques de credential stuffing, fuerza bruta u otros.
  • Usa un gestor de sesiones integrado y seguro del lado del lador que genere un nuevo ID de sesión aleatorio luego del inicio de sesión. Los IDs de Sesiones nunca deben estar incluidos en las URLs. Los IDs también deben estar almacenados de forma segura y ser invalidados luego de cerrar la sesión, tiempos de inactividad y tiempos absolutos.

Conclusión

En esta publicación, hablamos sobre los primeros dos riesgos de seguridad del top 10 de OWASP: Inyección y autenticación rota. Muy pronto continuaremos con el resto de las vulnerabilidades.

Ya que estamos en el Mes de Concientización de la Seguridad Cibernética, nos gustaría invitarte a probar nuestro Firewall de Seguridad de Sitios Web. Puedes registrarte para una prueba gratuita aquí y empezar a proteger tu sitio web de los hackers. Recibe otro mes gratis al chat con nuestro Equipo de Ventas durante el mes de Octubre.

También comenzamos un concurso para residentes de Estados Unidos. Vamos a regalar 3 suscripciones de un año del Firewall Sucuri al final de Octubre. Puedes participar enviando un video sobre: “¿Por qué la seguridad de sitios web es importante” en este enlace.

En conclusión, preparamos una serie de videos para darte consejos sobre seguridad de sitios web. Síguenos en nuestros canales sociales @sucuriseguridad. ¡Mantente seguro!

5
COMPARTIDOS
CompartirTweetInscríbase

Categorías: Consejo de Seguridad, Educación de Seguridad, Pregunte a Sucuri, Seguridad del Sitio WebTags: Inyección SQL, Sitio Web Hackeado, Tácticas de Black Hat

Sobre Gerson Ruiz

Gerson es el Evangelista de la Marca Sucuri en español. En el día ayuda a concientizar sobre seguridad de sitios web y contribuye a la comunidad de Sucuri en español, pero por las noches aprende a programar mientras escucha thrash metal o disfruta contenido de superhéroes. Los fines de semana probablemente lo encuentres comiendo en su fritanga más cercana. Síguelo en Twitter imgersonr

Reader Interactions

Share Your Comments: Cancel reply

Primary Sidebar

Relaciónate con Sucuri

Conéctate con el equipo de Sucuri vía redes sociales
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube
  • Instagram
  • RSS Feed

Ayuda rápida

Únete a Más de 20.000 Suscriptores!

Footer

Productos

  • Firewall de Sitios Web
  • Antivírus de Sitios Web
  • Copias de Seguridad de Sitios Web
  • Seguridad de WordPress
  • Servicios Enterprise

Soluciones

  • Protección contra DDoS
  • Detección de Malware
  • Remoción de Malware
  • Prevención de Malware
  • Remoción de Listas Negras

Soporte

  • Blog
  • Base de Conocimientos
  • SiteCheck
  • Labs
  • FAQ

Empresa

  • Sobre
  • Medios de Comunicanión
  • Eventos
  • Empleo
  • Contactos
  • Testimonios
  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

Login para Clientes

Sucuri Home

  • Termos de Uso
  • Política de Privacidade
  • Perguntas Mais Frequentes
© 2019 Sucuri Inc. Todos os direitos reservados.
Usamos herramientas, como cookies, para habilitar servicios y funcionalidades esenciales en nuestro sitio web, también para recopilar datos sobre cómo los visitantes interactúan con nuestro sitio, productos y servicios. Al hacer clic en Continuar, aceptas el uso de estas herramientas para publicidad, análisis y soporte.Continuar Más Información
Privacy & Cookies Policy