forumAbrir tema

Intentamos revisar la seguridad de nuestro propio código y nos trabamos: ¿cuáles son las trampas más comunes?

EEbru K***Participante
Cargo
Especialista en recursos humanos
Sector
Fabricación de muebles
Tipo de organización
negocio unipersonal
Miembro desde
oct 2024
Mensaje
105
#1

Desarrollamos una plataforma B2B de analítica de datos financieros en Austin con un equipo básico de 4 desarrolladores. Ante la solicitud de auditoría de seguridad de un cliente corporativo, quisimos hacer una revisión interna de código enfocado en seguridad para unos 12.000 renglones de código nuevo, centrados en las consultas a la base de datos y la capa de autenticación. Ahora mismo no tenemos presupuesto para contratar una consultoría externa.

Nos pusimos manos a la obra hace tres semanas y terminamos en un cuello de botella operativo total. Al pasar una herramienta de análisis estático open source nos salieron más de 320 advertencias. Mientras el equipo discutía cuáles eran falsos positivos y cuáles amenazas reales, la velocidad del sprint cayó casi a la mitad. Los devs se pusieron a la defensiva, todo se volvió lentísimo y nos quedó la sensación de que igual se nos pasaron fallas de lógica de negocio que era lo que más nos daba miedo.

¿Cuáles son los errores más comunes en los que caen los equipos pequeños al revisar la seguridad de su propio código? ¿Cómo podemos convertir este proceso en una rutina manejable sin agotar al equipo ni paralizar el calendario de entregas?

HHakan U***ParticipanteMiembro de la comunidad
Miembro desde
abr 2024
Mensaje
43
Más útil#2

Respuesta corta: La trampa más común es intentar resolver de golpe cientos de alertas de herramientas automáticas sin priorizar y tratar todo el código con el mismo nivel de exigencia. La revisión de código seguro solo es sostenible si se reducen las zonas de riesgo con un modelado de amenazas y se filtran las reglas de análisis estático.

El primer paso es reducir el ruido del analizador estático. Es normal que salgan 320 alertas; muchas son estándares de código muy estrictos o avisos de estilo de bajo riesgo. Ajusta las reglas de la herramienta para enfocarla únicamente en vulnerabilidades críticas y altas (inyección SQL, acceso no autorizado a datos gestión insegura de sesiones y errores de cifrado). Desactiva de entrada los avisos informativos y medios para bajar el volumen de hallazgos a un número manejable.

Como segundo paso, reduce el alcance del análisis de los 12.000 renglones a las zonas verdaderamente críticas. Meter en una auditoría de seguridad completa clases auxiliares que no sean funciones de escritura directa en BD, endpoints que procesan datos de entrada o controles de autorización agota al equipo. En lugar de 12.000 renglones, tal vez solo debas revisar 1.500 renglones de puntos de contacto clave.

Por último, recuerda que los escáneres estáticos jamás detectarán fallos lógicos de autorización (por ejemplo, que un usuario cambie un parámetro y vea la factura de otra empresa). Para encontrar este tipo de fallas en la lógica de negocio, hagan pruebas cruzadas internas: un dev debe preguntarse manualmente sobre el endpoint del otro: "¿qué pasa si falta el control de roles aquí?".

FFeyza S***ParticipanteMiembro de la comunidad
Miembro desde
ago 2023
Mensaje
251
#3

Configura bien la opción de 'taint analysis' (rastreo de datos no confiables) en los analizadores estáticos. Sigue el rastro del parámetro introducido por el usuario hasta ver si se sanitiza antes de llegar a la BD o a un comando del sistema. Si apagas las reglas que marcan cualquier concatenación de cadenas como inyección SQL, te limpias al menos dos tercios de las alertas al instante.

NNuri E***Experto
Cargo
Coordinador general
Sector
cuero
Tipo de organización
distribuidor regional
Miembro desde
feb 2023
Mensaje
386
#4

Hacer que un desarrollador sin formación en seguridad revise su propio código es un mero trámite. Quien escribe el código no ve sus propios errores de diseño. Si el presupuesto es ajustado, contratar una auditoría externa enfocada de 2 o 3 días solo para los módulos de autenticación y pagos es mucho más barato y efectivo que intentar cubrir todo el sistema.

EErcan T***Participante
Cargo
Director de tecnología
Sector
Electricidad-electrónica
Tipo de organización
distribuidor regional
Miembro desde
ene 2023
Mensaje
1

Doki · Escaneo de vulnerabilidades · 2024

#5

No volváis a cometer el error de revisar 12.000 líneas de golpe. Dividid la revisión de seguridad en pull requests. Que no haya más de 300 líneas por merge y que la lista de verificación solo tenga 5 puntos críticos de seguridad. Que lo miren mientras se escribe el código, no cuando el sprint se esté acabando.

OOrhan D***Experto
Cargo
Empleado de tienda
Sector
Servicios de TI
Tipo de organización
startup recién creada
Miembro desde
nov 2024
Mensaje
228
#6

En nuestro primer escaneo nos salieron 410 alertas. Estuvimos dos semanas dándonos de cabezazos todo el equipo. Luego configuramos el filtro de seguridad solo para las 10 vulnerabilidades web más críticas y la cifra bajó de golpe a 19. De esos 19 hallazgos, solo 4 representaban un riesgo real que de verdad había que corregir.

AAhmet Z***Experto
Cargo
Técnico de servicio
Sector
Distribución alimentaria
Tipo de organización
empresa familiar
Miembro desde
dic 2023
Mensaje
159
#7

las herramientas de automatizacion no saben lo q hace el codigo solo buscan patrones. si en las consultas a la bd usas librerias parametrizadas ya eliminas de cajon la mayoria del riesgo de sql injection, no te obsesiones con cada alerta de la herramienta.

SSinan B***Nuevo miembro
Cargo
Planificación de producción
Sector
Publicidad y promoción
Tipo de organización
mediana empresa
Miembro desde
sept 2026
Mensaje
59
#8

En nuestro primer producto nos tiramos días discutiendo reglas complejas de validación con regex y nos celebramos haber hecho una revisión de código segura. Al tercer día de salir a producción, un cliente cambió el id en el parámetro de la url y se bajó los estados financieros de otra empresa. Eso es exactamente el tipo de error de lógica que las herramientas no ven.

HHande B***Participante
Cargo
Director de operaciones
Sector
Deportes y fitness
Tipo de organización
agencia boutique
Miembro desde
jun 2023
Mensaje
353
#9

Caéis en tres trampas clásicas: 1) Tomar el reporte de la herramienta como verdad absoluta y perder horas en falsos positivos, 2) Hacer que la revisión de seguridad parezca una evaluación de desempeño del dev generando una reacción defensiva, 3) Confundir el estilo de código con una vulnerabilidad de seguridad.

FFiliz A***ExpertoMiembro de la comunidad
Miembro desde
may 2025
Mensaje
14
#10

El resumen de lo hablado es este: subid el umbral de alerta de los escáneres automáticos para reducir el ruido, dividid la revisión en partes pequeñas y probad manualmente con escenarios los fallos de lógica de autorización que las herramientas no van a detectar.

LLevent K***ParticipanteMiembro de la comunidad
Miembro desde
jul 2024
Mensaje
2
#11

yo también estaba pensando en lo mismo. si decidimos sin medir siempre acabamos en el mismo punto.

todo lo que no está por escrito, ambas partes lo recordarán de forma distintta en el futuro. bueno lo dejo como nota, por si sirve.

MMehmet K***ParticipanteMiembro de la comunidad
Miembro desde
ene 2025
Mensaje
237
#12

A mí me pasó justo al revés, por eso escribo. La seguridad no es absoluta; significa hacer que el ataque no merezca la pena.

Por supuesto, cambia si tu situación es diferente.

TTolga G***Veterano
Cargo
Secretaria
Sector
Plástico
Tipo de organización
distribuidor regional
Miembro desde
ene 2024
Mensaje
138
#13

estoy de acuerdo.

CCaner Z***Participante
Cargo
Representante de ventas de campo
Sector
vidrio
Tipo de organización
negocio de dos sucursales
Miembro desde
ene 2024
Mensaje
155
#14

Resumen breve para nuevos usuarios: Los cambios en los datos de pago nunca se verifican por el mismo canal por el que llegan.

La seguridad no es absoluta; significa hacer que el ataque no merezca la pena. Ánimo.

PPolat S***VeteranoMiembro de la comunidad
Miembro desde
sept 2024
Mensaje
9
#15

A nosotros nos pasó esto. Una copia de seguridad no probada no es una copia de seguridad.

Si escribís el resultado aquí, también servirá de ayuda a otros.

GGökhan A***Participante
Cargo
Fabricante · muebles
Miembro desde
oct 2023
Mensaje
74
#16

Tienes razón, yo también pasé por lo mismo. La gente no defiende el proceso, defiende la costumbre. La resistencia viene de ahí.

Ánimo.

FFiliz P***ExpertoMiembro de la comunidad
Miembro desde
nov 2024
Mensaje
14
#17

Estoy totalmente de acuerdo. Al tomar decisiones, escribe también el peor escenario, no solo el mejor.

Si tenéis dudas, escribid, os responderé en la medida de lo posible.

DDuyguParticipante
Cargo
Investigador de mercado
Miembro desde
jun 2024
Mensaje
102
#18

Voy a resumir el tema, porque se han dado varias respuestas diferentes. La gente no defiende el proceso, defiende la costumbre. La resistencia viene de ahí.

SSedaNuevo miembro
Cargo
Profesor · trabajo secundario
Tipo de organización
cooperativa
Miembro desde
oct 2024
Mensaje
42
#19

estoy en la misma situación por eso pregunto. la verdad si es la primera vez que lo hacéis empezad poco a poco la escala llegará después.

si regañas las falsas alarmas, nadie volerá a reportar... esta es mi opinión, no lo escribo como una verdad absoluta.

UUğur K***ExpertoMiembro de la comunidad
Miembro desde
mar 2023
Mensaje
44
#20

No te olvides de: La mayor parte de la pérdida de tiempo se acumula en los trabajos pendientes de aprobación.

Empezad con una pequeña prueba no lo integréis todo de golpe. Ánimo.

Responder