
Crescendo es un visor de eventos en tiempo real basado en Swift para macOS. Utiliza el Apple Endpoint Security Framework.


Apple ha introducido algunos mecanismos de seguridad nuevos que debemos habilitar para que Crescendo funcione.
Asegúrate de haber movido la aplicación a tu directorio /Applications, de lo contrario la extensión del sistema fallará al cargarse.
En la primera ejecución se te pedirá que apruebes la extensión del sistema después de hacer clic en el botón "Iniciar".
NOTA: He notado que hay un problema donde Preferencias del Sistema no muestra un botón de permitir. Supongo que es un problema interno que Apple debe resolver. Volver a Preferencias del Sistema y navegar nuevamente parece solucionar el problema.

Deberás habilitar el Acceso Completo al Disco para la extensión del sistema.

Crescendo solo es compatible con >=10.15.X y al menos Xcode 10.
Este proyecto consta de tres componentes principales:
Es altamente recomendable probar este código en una máquina virtual con SIP desactivado, ya que este proyecto requiere el entitlement de seguridad de endpoint, TCC y una firma adecuada cuando SIP está habilitado.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequestsystemextensionsctl developer on
Si deseas firmar tu propia aplicación, es muy recomendable leer la documentación de Apple sobre los requisitos de Extensión del Sistema y Notarización.
La firma y los entitlements no son un ejercicio trivial.
He incluido mi archivo .xproj en esta versión para que la gente pueda empezar. En el futuro probablemente pasaré a usar el nuevo archivo xcconfig, ya que parece un enfoque mucho más sensato que confirmar archivos xproj. Si deseas simplemente construir la aplicación de ejemplo en línea de comandos, puedes hacerlo con Xcode.
Para construir esta aplicación y ejecutarla en un sistema macOS de producción, necesitarás el entitlement de seguridad de endpoint y un certificado de desarrollador de Apple.
El framework Crescendo se puede empaquetar fácilmente con cualquier aplicación Swift. Puede que en el futuro me pase a CocoaPods, pero ahora no estoy familiarizado con ellos.
No dudes en abrir un issue si deseas ver una característica añadida o encuentras un problema. Si deseas contribuir con un pull request, asegúrate de ejecutar swiftlint sobre tu código antes de contribuir.
Lanzaré versiones para la aplicación compilada y firmada y las incluiré en la pestaña Releases según sea necesario.
Si estás ejecutando en una Mac de producción, NO debes desactivar SIP o AMFI. Esas instrucciones son para desarrolladores que deseen realizar cambios en el código.
¿Has habilitado la extensión del sistema haciendo clic en el botón "Permitir" en Preferencias del Sistema -> Seguridad y Privacidad? Si no, no verás ningún evento.
¿Has habilitado el acceso completo al disco en Preferencias del Sistema -> Seguridad y Privacidad -> Pestaña Privacidad? Si no, no verás ningún evento.
Si encuentras algún problema, abre Console.app y busca crescendo o <your_bundle_id>/com.suprhackersteve como filtro; eso te ayudará a solucionar posibles problemas. También es buena idea revisar CrashReporter para ver si la extensión ha fallado o ha salido con fatalError.
Si deseas forzar la descarga de la extensión del sistema, hay un elemento de menú llamado "Descargar Extensión del Sistema" que la descargará. Esta acción puede provocar efectos secundarios extraños, solo hazlo si sabes lo que estás haciendo.
Si has añadido un proceso a la lista negra y aún se le permite ejecutarse, recuerda verificar la ruta real completa. Simplemente usar /Applications/Foo.app no será suficiente para evitar la ejecución. Además, muchas aplicaciones de macOS se lanzan a través de xpcproxy.