Fork de Monkey365 reduce el tiempo de evaluación de M365 en un 62 %
Un administrador de sistemas optimizó el motor de seguridad de Microsoft 365, logrando más del doble de velocidad sin perder precisión en los resultados.
El autor, que se identifica como Suitable‑Finance4205, notó que las evaluaciones con Monkey365 tardaban alrededor de 30 minutos en su entorno. Tras analizar el código descubrió que la mayor parte del tiempo se consumía en peticiones repetidas a Microsoft Graph, gestión de caché, planificación de colectores y manejo de reintentos HTTP.
Implementó una serie de mejoras: consolidación de peticiones Graph, mejor uso de la caché, ajuste del scheduler y eliminación de esperas fijas en la recolección de SharePoint/Purview. En pruebas idénticas sobre el mismo tenant, la versión oficial v1.0.0 tardó 1.888 s (≈31 min 28 s), mientras que el fork optimizado completó la tarea en 722 s (≈12 min 2 s), lo que representa una reducción del 61,8 % o una aceleración de 2,6×.
Curiosamente, la versión oficial v1.0.0 había salido justo el día anterior, lo que obligó al autor a rehacer el fork sobre esa base y volver a aplicar solo las optimizaciones válidas. Validó que los resultados de reglas, hallazgos y semántica de permisos se mantuvieran idénticos, aunque reconoce que las APIs de Microsoft 365 pueden devolver datos dependientes del tiempo y la sesión, por lo que la igualdad estricta de respuestas crudas no se garantiza.
El fork está disponible en GitHub y incluye documentación de los cambios y pruebas de validación: Repositorio en GitHub. No hay intención comercial ni se sugiere sustituir el proyecto oficial, sino compartir una experiencia que puede servir a otros administradores que enfrenten latencias similares.
¿Por qué importa?
La mayoría de los equipos de seguridad de Microsoft 365 utilizan herramientas de código abierto para auditorías y cumplimiento. Una mejora del 60 % en tiempo de ejecución puede traducirse en menores costos operativos, mayor frecuencia de escaneos y menos impacto en los servicios productivos. Además, el caso muestra cómo una revisión de código dirigida a cuellos de botella comunes (peticiones Graph y caché) puede ser replicable en otros proyectos que dependen de la API de Microsoft.
Queda pendiente validar si estas optimizaciones se mantienen en entornos con mayor número de usuarios o configuraciones más complejas, y si la comunidad adoptará el fork o incorporará los cambios al proyecto principal.

