Mayores Problemas durante la Indentificación
Identificar PP es un problema en cualquier lenguaje, especialmente en JavaScript debido a la forma con la que este permite que un objeto comparta sus funcionalidades con otro. Detectar este problema automáticamente con software es muy complicado porque no es preciso. Cada web o aplicación es diferente e intuir dónde puede ocurrir PP puede requerir que alguien examine de cerca el código.
Al contrario que otros problemas de seguridad que pueden ser encontrados buscando patrones específicos requiere que un pentester o desarrollador eche un vistazo exhaustivo al código.
Algunos Scripts Importantes
Muchas herramientas y proyectos han sido desarrollados por comunidades open source para ayudar en la identificación de estas vulnerabilidades. Aquí algunas cuantas con renombre en GitHub:
- NodeJsScan: Es un escáner estático de código para aplicaciones Node.js. Incluye comprobaciones de varias vulnerabilidades, incluyendo PP.
- Prototype Pollution Scanner: Es una herramienta diseñada para escanear código JavaScript en busca de vulnerabilidades de PP. Puede ser usada para analizar código en busca de patrones que son susceptibles de ella.
- PPFuzz: Es un fuzzer diseñado para automatizar el proceso de detectar PP en aplicaciones web. Fuzzeando vectores de input que puedan interactuar con propiedades de objetos,
PPFuzzpuede ayudar a identificar vectores de ataque. - BlackFan: Está enfocada en identificar vulnerabilidades de PP en el lado del cliente. Incluye ejemplos de cómo puede ser explotada en navegadores para realizar ataques XSS, por ejemplo.
Al identificar prototype pollution, el pentester debería buscar instancias donde el input controlado por el usuario pueda influir las claves o propiedades para que se mezclen, definan o clonen.
