Inyeccion en ORM
¿Qué es Inyeccion en ORM?
Inyeccion en ORMInyeccion contra aplicaciones que usan un ORM, abusando de consultas dinamicas, asignacion masiva o salidas a SQL crudo para manipular el acceso a datos.
La inyeccion en ORM ocurre cuando una entrada influida por el atacante llega a un ORM (Hibernate, Entity Framework, SQLAlchemy, ActiveRecord, Sequelize, Prisma, Django ORM) a traves de APIs que construyen consultas dinamicamente. Patrones vulnerables: concatenacion en HQL/JPQL, where(string) con interpolacion en ActiveRecord, Op.literal en Sequelize, text() con formato en SQLAlchemy, asignacion masiva de atributos no previstos, y parametros inseguros de ordenacion o filtrado en APIs JSON. Las consecuencias van desde la inyeccion SQL clasica hasta el bypass de autorizacion y la escalada de privilegios cuando los controles viven en la capa ORM. Defensas: query builders parametrizados, listas blancas estrictas para campos ordenables o filtrables, permiso explicito de atributos y evitar los escape hatches para entradas no confiables.
● Ejemplos
- 01
Una app Rails con User.where("name = '#{params[:q]}'") que abre SQL injection via el ORM.
- 02
Un endpoint Sequelize que acepta order desde el atacante y lo pasa por Op.literal.
● Preguntas frecuentes
¿Qué es Inyeccion en ORM?
Inyeccion contra aplicaciones que usan un ORM, abusando de consultas dinamicas, asignacion masiva o salidas a SQL crudo para manipular el acceso a datos. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Inyeccion en ORM?
Inyeccion contra aplicaciones que usan un ORM, abusando de consultas dinamicas, asignacion masiva o salidas a SQL crudo para manipular el acceso a datos.
¿Cómo defenderse de Inyeccion en ORM?
Las defensas contra Inyeccion en ORM combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Inyeccion en ORM?
Nombres alternativos comunes: Inyeccion HQL, Inyeccion JPQL.