Blog

Las 10 mejores API de la serie OWASP de Coders Conquer Security: exposición excesiva de datos

September 23, 2020
Matias Madou, Ph.D.

La vulnerabilidad de exposición excesiva de datos se diferencia de otros problemas de API de la lista de OWASP, ya que implica un tipo de datos muy específico. La mecánica real detrás de la vulnerabilidad es similar a la de otros, pero la exposición excesiva de datos, en este caso, se define como la exposición excesiva de datos que están protegidos legalmente o son altamente sensibles. Esto puede incluir cualquier información de identificación personal, que a menudo se denomina PII. O podría incluir información sobre el sector de las tarjetas de pago (PCI, por sus siglas en inglés). Por último, la exposición excesiva de datos puede incluir cualquier información que esté sujeta a las leyes de privacidad, como el Reglamento General de Protección de Datos (GDPR) en Europa o la Ley de Portabilidad y Responsabilidad de los Seguros Médicos (HIPAA) en los Estados Unidos.

Como se puede imaginar, esto es motivo de profunda preocupación, y es imperativo que los desarrolladores expertos aprendan a eliminar estos errores siempre que sea posible. Si ya estás preparado para enfrentarte al dragón de la exposición de datos, dirígete a nuestro desafío gamificado:

¿Cuál fue tu puntuación? Siga leyendo y obtenga más información:

¿Cuáles son algunos ejemplos de exposición excesiva de datos?

Una de las principales razones por las que se produce una exposición excesiva de los datos es porque los desarrolladores y programadores no tienen suficiente información sobre el tipo de datos que utilizarán sus aplicaciones. Por este motivo, los desarrolladores tienden a utilizar procesos genéricos en los que todas las propiedades de los objetos quedan expuestas a los usuarios finales.

A veces, los desarrolladores también asumen que los componentes de la interfaz filtrarán los datos antes de mostrar cualquier información a los usuarios. En el caso de la mayoría de los datos genéricos, esto rara vez supone un problema. Sin embargo, exponer a los usuarios datos confidenciales o protegidos legalmente como parte de un identificador de sesión, por ejemplo, puede generar grandes problemas tanto desde el punto de vista legal como de seguridad.

Como ejemplo de la facilidad con la que se pueden compartir accidentalmente datos confidenciales, el informe de OWASP prevé un escenario en el que un guardia de seguridad tenga acceso a cámaras específicas basadas en IoT en una instalación. Es posible que esas cámaras vigilen zonas cerradas y seguras, mientras que otras cámaras que vigilan a personas deberían estar restringidas a guardias o supervisores con permisos más altos.

Para dar acceso al guardia a las cámaras autorizadas, los desarrolladores pueden usar una llamada a la API como la siguiente.

/api/sites/111/cámaras

En respuesta, la aplicación enviaría detalles sobre las cámaras que el guardia puede ver en el siguiente formato:

{«id» :"xxx», "live_access_token» :"xxxxbbbbb», "building_id» :"yyy "}

A primera vista, esto parece funcionar bien. El guardia, que utiliza la interfaz gráfica de usuario de la aplicación, solo verá las imágenes de la cámara que esté autorizado a ver. El problema es que, debido al código genérico utilizado, la respuesta real de la API contendría una lista completa de todas las cámaras de la instalación. Cualquiera que rastree la red y capture esos datos, o ponga en peligro la cuenta del guardia, podrá descubrir las ubicaciones y la nomenclatura de cada cámara de la red. De este modo, podrían acceder a esos datos sin restricciones.

Eliminar la exposición excesiva de datos

La clave más importante para evitar la exposición excesiva de los datos es comprender los datos y las protecciones que los rodean. Crear API genéricas y dejar que el cliente clasifique los datos antes de mostrarlos a los usuarios es una opción peligrosa que conduce a muchas violaciones de seguridad evitables.

Además de comprender las protecciones de datos pertinentes, también es importante detener el proceso de enviar todo a un usuario con API genéricas. Por ejemplo, se deben evitar códigos como to_json () y to_string (). En su lugar, el código debe seleccionar específicamente las propiedades que deben devolverse a los usuarios autorizados y enviar esa información exclusivamente.

Como forma de garantizar que ningún dato protegido se comparta accidentalmente en exceso, las organizaciones deberían considerar la posibilidad de implementar un mecanismo de validación de respuestas basado en esquemas como una capa adicional de seguridad. Debe definir y hacer cumplir los datos que devuelven todos los métodos de API, incluidas las reglas para la notificación de errores.

Por último, todos los datos clasificados como que contienen PII o PCI, o la información que está protegida por normativas como el RGPD o la HIPAA, deben protegerse mediante un cifrado seguro. De este modo, incluso si la ubicación de esos datos se pierde debido a una vulnerabilidad de exposición excesiva de los datos, existe una buena línea de defensa secundaria que debería proteger los datos incluso si caen en manos de un usuario malintencionado o de un actor de amenazas.

Eche un vistazo a la Secure Code Warrior páginas de blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otras fallas de seguridad. También puedes prueba una demo de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Blog
Filter Label
This is some text inside of a div block.

The Future of AI Software Governance Is Built on Strong Partnerships

Discover why Secure Code Warrior is becoming a channel-first company and how trusted partners help organizations adopt AI Software Governance securely and at scale.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Citizen AI by Secure Code Warrior: Build an AI-Ready Workforce

Secure Code Warrior's AI literacy program for non-developer employees.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Why most CISOs are navigating AI adoption blindfolded (and how they can remove it)

Today, Secure Code Warrior issued an all-new white paper covering a prescriptive, directional AI adoption model that security leaders can use to identify their adoption stage and make real progress in bringing the AI security risks within their organization under control.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo