
Una aplicación de macOS para escanear archivos de proyectos de Xcode en busca de posibles problemas de seguridad.
XcInspector es una app de macOS, y una herramienta de línea de comandos, para escanear archivos de proyectos de Xcode en busca de posibles problemas de seguridad.
Hay algunas formas en que los proyectos de Xcode pueden usarse para comprometer la seguridad y la privacidad.
Esta herramienta es un esfuerzo por intentar (no garantizar) detectar algunos riesgos conocidos con los proyectos de Xcode.
Nota: XcInspector no escaneará archivos fuente (Swift, Objective-C, etc.) en busca de ningún tipo de problema de seguridad en su código. Eso es una preocupación separada más allá del alcance de este proyecto.
XcInspector está disponible tanto como app como herramienta de línea de comandos para macOS. Ambas están en estado "alpha", lo que significa que son usables, pero todavía algo torpes e incompletas.
Aún no hay paquetes descargables, por lo que tendrás que usar Xcode para compilar y construir las herramientas a partir del código fuente en este proyecto.
El proyecto y las fuentes están en el directorio XcInspector.
Usamos un subdirectorio aquí porque nuestros archivos de ejemplo (directorio
TestSamples), usados por las pruebas unitarias y de UI, incluyen archivos de proyectos de Xcode, incluidos algunos archivos deliberadamente malformados. Tenerlos en el directorio del proyecto confundiría a Xcode (como aprendimos de la manera difícil).
~/Library/Developer/Xcode/DerivedDataXcodeProjectSecurity,
seguido de un montón de caracteres aparentemente aleatorios.Build/Products/DebugXcInspectorApp.app~/Library/Developer/Xcode/DerivedDataXcodeProjectSecurity,
seguido de un montón de caracteres aparentemente aleatorios.Build/Products/Releasexcinspector./usr/local/bin).Para escanear un proyecto de Xcode, selecciona el comando "Open…" (⌘-O) desde el menú "File"
en la app. Luego selecciona un directorio con un archivo de proyecto de Xcode
(.xcodeproj) en él, y pulsa el botón "Open".
Aparecerá una ventana de informe que te dirá cuántos, si es que hay alguno, posibles problemas se encontraron. La ventana de informe también listará cada problema identificado, incluyendo el archivo específico, y (si aplica) en qué número de línea se encontró el problema.
Asegúrate de que la herramienta de línea de comandos esté en algún lugar donde puedas acceder a ella
(como /usr/local/bin).
Para obtener instrucciones sobre las opciones disponibles al ejecutar la herramienta,
usa el comando: xcinspector --help
En general, puedes obtener un informe para un proyecto de Xcode dado pasando la ruta
al directorio del proyecto, o al propio archivo de proyecto (.xcodeproj).
Por ejemplo: xcinspector /User/me/Projects/MyApp
El informe resultante se mostrará en la terminal (stdout), y está en el
formato de advertencias de Xcode (filepath:linenumber:(error|warning|note):message).
Si no se encontraron problemas, el informe estará vacío (solo se mostrará una línea en blanco).
Opcionalmente puedes incluir un resumen al final del informe (que se
mostrará incluso si no se encontraron problemas).
xcinspector --stats path/to/project o xcinspector -s path/to/project
También puedes incluir opcionalmente detalles extendidos para cualquier problema encontrado.
(Actualmente, esto solo muestra el texto del script cuando se encuentra un script incrustado).
xcinspector --details path/to/project o xcinspector -d path/to/project
Aunque esta herramienta puede ayudar a identificar algunos posibles riesgos de seguridad, de NINGUNA MANERA PUEDE GARANTIZAR la seguridad de ningún proyecto de Xcode en particular, ni de ningún producto derivado.
Al usar este software, aceptas que eres el único responsable de garantizar la seguridad de cualquier proyecto de Xcode que uses o compartas, y eximes a todos los autores de, contribuyentes a, o distribuidores de, XcInspector de cualquier responsabilidad o obligación.
Copyright ©2023-2024 Grant Neufeld, et.al.
El código fuente de este proyecto se pone a disposición bajo los términos de la Mozilla Public License, v. 2.0.
El archivo de licencia se incluye con los archivos del proyecto.