¿Han notado que en Estados Unidos ya comenzaron a tocar música navideña en las tiendas? Aunque creo que es un poco temprano para celebrar la temporada navideña, su momento lo hace apropiado para mi analogía que usaré para explicar a todas las abuelas cómo funcionan las inyecciones SQL.
Permíteme presentarte los tres personajes principales de mi historia:
- el programador, interpretado por Santa Claus
- el programa jugado por el elfo principal
- the cracker (término correcto para hacker con malas intenciones) – jugado por Grinch
El Grinch encarna perfectamente las intenciones de una galleta: quiere destruir la Navidad y saquear todos los regalos de Navidad del mundo. En esta analogía, Navidad es su aplicación web y todos esos preciosos regalos de Navidad son todos los datos valiosos de su aplicación web: números de tarjeta de crédito de los clientes, PII, archivos personales, etc.
- Siendo un investigador de seguridad independiente, ¿cómo le gustaría liberar errores de seguridad?
- ¿Cómo hago una búsqueda inversa de DNS en una dirección IP?
- ¿Por qué estoy pirateado y quién lo está haciendo?
- Quiero aprender hackear. ¿Cómo debo comenzar?
- ¿Cómo sabe una empresa que sus sistemas han sido pirateados?
Solo por el bien de esta historia, creamos que la gente viene a Santa para recoger sus regalos en lugar de que él venga a la casa de todos.
Érase una vez, el día de Navidad, Santa preparó todos los regalos para las niñas y los niños del mundo. Ahora, le asignó al elfo jefe la tarea de dar un regalo a cada uno una vez que le dijeran sus nombres. Santa le dijo al elfo: ” Obtenga el regalo para () y llene el espacio en blanco con el nombre que sea del niño que está sirviendo ” .
El elfo principal hizo lo que le dijeron y los niños vinieron y le dieron sus nombres al elfo principal individualmente y cada uno recibió sus respectivos regalos. Sin embargo, el Grinch vino vestido de niño (¡porque obviamente nadie le daría la bienvenida al Grinch si lo reconocieran!) Y dijo: “ Mi nombre es Todos. “El elfo no estaba preparado para esta situación porque Santa dijo que solo obtuviera el regalo para lo que el niño se identifique como . El elfo está confundido y abrumado, así que en su estado de vulnerabilidad, el Grinch toma los dones de todos.
Esta es una inyección SQL . El programa estaba tratando de dar el conjunto de datos para un visitante típico, pero el cracker pudo encontrar una vulnerabilidad en la programación y manipular el programa para darle acceso a todos los datos.
Pero aquí está lo inteligente: digamos que cuando el elfo le pide su nombre a Grinch, y en lugar de decir ” todos “, dice: ” Grinch y quema todos los regalos “. Ahora, el elfo no solo consigue el regalo para el Grinch (aunque dudo que tenga uno), pero también quemará el resto de los regalos.
Entonces, ¿cómo protegen los programadores contra las inyecciones de SQL? Bueno, intentan programar caracteres especiales de escape (es decir, ignorar caracteres que no son respuestas esperadas) en la aplicación web. Un ejemplo de esto sería Santa diciéndole al elfo: “No debes destruir ningún regalo. Además, solo regale un regalo por persona “. Así que cuando Grinch venga y pida los regalos de todos o diga” Grinch y queme todos los regalos “, el elfo no se equivocará.
Es difícil encontrar todas las vulnerabilidades en un programa, por lo que muchas grandes empresas tienen programadores dedicados que trabajan para encontrar y remediar estas vulnerabilidades. Otra opción para que las empresas disminuyan estos riesgos es utilizar sofisticados sistemas de firewall que bloquean el tráfico dañino de su aplicación web, también conocido como Santa, contratando fuertes guardaespaldas frente a la tienda de regalos y verifican los ID de todas las entradas para asegurarse de que no haya Grinches alguna vez entrar.
Las grandes empresas gastan miles de dólares para mantener estos sistemas de firewall, pero creo que las pequeñas empresas pueden beneficiarse de los sistemas de firewall de aplicaciones web (WAF) la mayor parte del tiempo para evitar inyecciones SQL. Por supuesto, definitivamente se recomienda trabajar para asegurarse de que programe su aplicación web para limitar las vulnerabilidades, o pronto, terminará entregando muchos regalos a Grinches.