object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter." Eric Sheridan • Vector de ataque ID • Fallas de seguridad Complejidad de mecanismos Checks de autorización? • Impacto Compromiso de cuentas, divulgación, manipulación y pérdida de datos. Ileana Maricel Barrionuevo - Labsis - GSSIS
original por un hash. IDORUtil.java public class Movie { @JsonIgnore private String backendIdentifier; ... ... } How to prevent! Ileana Maricel Barrionuevo - Labsis - GSSIS
qué datos pueden ser devueltos por la API → incluye errores • Devolver errores genéricos • Gestionar mediante mensajes de excepciones Ileana Maricel Barrionuevo - Labsis - GSSIS
ataque API calls legítimas; reemplazo de métodos - is_Admin false-->true • Fallas de seguridad • Impacto Acceso a funcionalidades no autorizadas. Endpoints accesibles a usuarios anónimos - sin privilegios Checks de autorización mal implementados - confusos Ileana Maricel Barrionuevo - Labsis - GSSIS
cada función. Chequear permisos a recursos requeridos para cada función. 21 API5:2019 - Broken Function Level Authorization How to prevent! @permission_classes((IsAuthenticated, IsAdminUser)) AuthorizeAttribute Ileana Maricel Barrionuevo - Labsis - GSSIS
→ inputs, parámetros… • Fallas de seguridad • Impacto Divulgación, pérdida de datos - DoS - compromiso completo del host en la utilización de queries - ORM - comandos - parsers Ileana Maricel Barrionuevo - Labsis - GSSIS
de ORM cursor.execute('Select * from health_tracker where month=%s', (month_requested,)) activity_detail = cursor.fetchall() return JsonResponse(activity_detail, safe=False) activity_detail = Tracker.objects.filter(month=month_requested) final_serialized_data = [] for activity in activity_detail: serializer = TrackerSerializers(activity) final_serialized_data.append(serializer.data) return Response(final_serialized_data) Nunca confiar en la entrada provista por el usuario Ileana Maricel Barrionuevo - Labsis - GSSIS
- mecanismos complejos - implementación • Fallas de seguridad • Impacto Control de cuentas Acceso a información personal Ejecución de acciones en nombre de otros Ausencia de mecanismos No considera vectores de ataque Ileana Maricel Barrionuevo - Labsis - GSSIS
API y obj. • Exponer sólo lo necesario • Gestionar errores Ileana Maricel Barrionuevo - Labsis - GSSIS • No exponer IDs • ORMs - parametrized queries • Validar inputs NO CONFIAR EN API CONSUMERS!!