X
BLOG

Validación de entrada: inmunidad contra ataques web

Validación de entrada: inmunidad contra ataques web Tiempo de leer: 3 minutos

Por Arthur Hicken - Evangelista / Arquitecto de soluciones en Parasoft

Imagínese por un segundo que se enfrenta a una pandemia mortal. Tienes dos opciones:

  • Opción A: intente identificar y tratar todos los síntomas en los que se pueda manifestar la enfermedad.
  • Opción B: Adopte un nuevo régimen de salud que garantice que será completamente inmune a cualquier infección.

La elección parece obvia aquí. Sin embargo, muchas organizaciones están adoptando el equivalente de seguridad web de la "Opción A" mientras intentan proteger sus sitios a la luz de todos los recientes ataques de piratas informáticos (en sitios web como Sega, Sony, PBS, el Senado de los EE. UU., La CIA, el FBI y otras organizaciones gubernamentales).

Una erupción de inyecciones

La mayoría de estos ataques se han clasificado como un tipo de ataque de inyección: inyección SQL, inyecciones masivas de Lizamoon y otras inyecciones de malla que, según se informa, ya se han infiltrado en más de 30,000 sitios. Teniendo en cuenta que estos ataques ya han causado graves repercusiones financieras y una gran vergüenza para las organizaciones afectadas, no es sorprendente que muchos proveedores de herramientas de seguridad estén tratando de comercializar los escáneres como una fruta madura ... y que tantas organizaciones estén buscando esta tentadora opción.

Lamentablemente, he descubierto que este enfoque es tan precario como común. Hay un número casi infinito de rutas a través de incluso un sitio web simple. Para estar seguro de que todas esas rutas son inmunes a los ataques, necesitaría una herramienta para identificar todas las rutas posibles y luego probar exhaustivamente si cada ruta está libre de todas las vulnerabilidades que podrían explotarse para lanzar un ataque (incluidas las variantes de ataque que podrían no serlo). reconocido todavía). Esto simplemente no es factible. Incluso la cobertura del 100% del código fuente con una herramienta que escanea las últimas y más grandes vulnerabilidades no garantiza que el sitio web de su organización no sea la próxima víctima del régimen actual de "hactivistas".

Incorpore seguridad a su aplicación

En lugar de cruzar los dedos y esperar lo mejor con este enfoque reactivo de "prueba de vulnerabilidades", pruebe uno proactivo que haya demostrado que previene todas las variedades actuales y futuras de ataques de inyección: utilice la validación de entrada para crear seguridad. La validación de entrada implica garantizar que todos sus métodos de entrada están envueltos en un método de validación para que las entradas de usuario contaminadas no puedan alcanzar la capa de aplicación o la capa de base de datos, que puede ser explotada para acceder a información, alterar el contenido y controlar el flujo, o infectar a sus socios y clientes como parte de una esquema de mallado. Cuando cada entrada se valida correctamente inmediatamente después de recibida, nunca tendrá que preocuparse por cómo, cuándo o dónde se utiliza esta entrada del usuario.

Cómo realizar la validación de entrada

El enfoque de validación de entrada requiere algo de trabajo: requiere que realice ciertos cambios en su código. Aún así, esta es una práctica relativamente indolora de adoptar. Si realiza un pequeño cambio, siguiendo las convenciones de nomenclatura para los métodos de validación, puede identificar automáticamente cada instancia de validación de entrada incorrecta que debe corregirse.

La verificación de la validación de entrada generalmente se logra mediante el uso de reglas análisis estático para identificar cualquier invocación de método que devuelva datos peligrosos que no se pasen como un parámetro a las invocaciones de métodos de validación, así como para identificar instancias donde se pasan datos contaminados a los métodos. Si aplica una regla de validación de entrada mediante un análisis estático basado en reglas (encontrando y arreglando cada instancia en la que las entradas no se validan correctamente) puede garantizar que los ataques de inyección no tendrán éxito. Los atacantes pueden intentarlo y volver a intentarlo, pero al cambiar su código de la manera recomendada, esencialmente habrá generado un escudo deflector, evitando que causen daños sin importar cómo se lance el ataque.

Uso del análisis estático de flujo de datos

Si también tienes flujo de datos análisis estático a su disposición, le sugiero que lo use como un medio para verificar que su proceso de validación de entrada se esté siguiendo correctamente. Si está siendo religioso sobre la validación de cada entrada, no se deben informar problemas aquí porque será imposible que un camino conduzca a una inyección. Si por alguna razón el análisis del flujo de datos descubre un camino potencial hacia una vulnerabilidad de inyección, ¡no solucione ese problema específico y siga adelante! Utilice esto como una oportunidad para mejorar su proceso. Averigüe cómo esa área de código eludió su proceso de validación de entrada y qué puede hacer para que el proceso de validación de entrada sea a prueba de balas desde este punto en adelante.

***

Descargue el libro electrónico Fundamentos del desarrollo de aplicaciones seguras para saber por qué abordar la seguridad como un ejercicio de detección de errores es arriesgado e ineficiente, y luego explica cómo hacer que sus aplicaciones web sean inmunes a los ataques.

Crédito de la imagen: Sarah G…

Escrito por

Parasoft

Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft