Para ejecutar fácilmente PrivacyFlash Pro, obtenga el último lanzamiento empaquetado.
Obtenga más información sobre PrivacyFlash Pro en nuestro trabajo de investigación (Bibtex).
PrivacyFlash Pro analiza el código de las aplicaciones de iOS Swift y sus bibliotecas para generar políticas de privacidad. Con PrivacyFlash Pro, tenemos la intención de ayudar a los desarrolladores a crear políticas de privacidad para sus aplicaciones y hacer que las prácticas de privacidad de las aplicaciones sean más transparentes para los usuarios.
PrivacyFlash Pro cubre las disposiciones de las siguientes leyes:
PrivacyFlash Pro es un proyecto de investigación académica. Fue diseñado y desarrollado por David Baraka (@Davebaraka), Rafael Goldstein (@rgoldstein01), Sarah Jin (@SJ-in) y Sebastian Zimmeck (@sebastiangimmeck) del Privacy-Tech-Lab. Kuba Alicki (@Kalicki1) escribió las pruebas unitarias.
1. Instalación, ejecución y embalaje PrivacyFlash Pro
2. Video de demostración
3. Participar
4. Prueba
5. Archivos y directorios en este repositorio
6. Bibliotecas de terceros
7. ¡Gracias!
Puede instalar y ejecutar PrivacyFlash Pro desde la versión empaquetada o desde los archivos de origen. También puede crear una nueva versión empaquetada de PrivacyFlash Pro.
Encontrará las versiones de PrivacyFlash Pro en la sección de versiones (es posible que deba permitir la descarga del archivo ZIP en la configuración de su navegador, por ejemplo, en la configuración de descargas de Google Chrome). Descomprima el privacyflash-pro.zip descargado y luego haga clic en el icono PrivacyFlash Pro. Tendrá que aceptar abrir PrivacyFlash Pro en su configuración de seguridad de MacOS. Después de unos segundos, PrivacyFlash Pro debe ejecutarse en su navegador predeterminado.
Asegúrese de que se instale Python 3. PrivacyFlash Pro no admite Python 2. Puede verificar su terminal si tiene Python 3 instalado ejecutando python3 . Puede obtener Python 3 en el sitio web oficial de Python.
Clone este repositorio en el directorio en el que desea almacenar PrivacyFlash Pro y ejecutar git clone [email protected]:privacy-tech-lab/privacyflash-pro.git cd
Muy recomendable : Cree y active un entorno virtual de Python, pfp-venv , con python3 -m venv pfp-venv , y ejecutarlo con source pfp-venv/bin/activate (suponiendo que está utilizando el shell predeterminado). Asegúrese de que su entorno virtual esté fuera del directorio privacyflash-pro para evitar el seguimiento de GIT.
cd en el directorio privacyflash-pro/policygenerator . Si está utilizando un entorno virtual de Python, ejecute pip3 install -r requirements.txt . De lo contrario, ejecute pip3 install --user -r requirements.txt . Si recibe un error, ejecute pip3 install -r requirements.txt . Si aún recibe un error, ejecute sudo pip3 install -r requirements.txt .
Ejecute PrivacyFlash Pro con python3 app.py
Usando la navegación del directorio de PrivacyFlash Pro, navegue a su directorio de proyecto iOS Swift (el directorio que contiene su .xcodeproj ) y haga clic en Aceptar para iniciar el análisis. Dependiendo del tamaño de su base de código, los resultados del análisis deben estar disponibles en un minuto. Ahora serás guiado a través de un mago. Una vez que haya finalizado el cuestionario del asistente, puede exportar la Política de privacidad de su aplicación.
Puede probar PrivacyFlash Pro en los proyectos en los proyectos de iOS-Sample. Por ejemplo, puede analizar el proyecto de muestra de adcolony. Inicie PrivacyFlash Pro, en su navegador navegue al directorio de Adcolony utilizando la navegación del directorio de PrivacyFlash Pro, y haga clic en Aceptar para iniciar el análisis. Los resultados del análisis deben estar disponibles en un minuto.
Si su navegador no se conecta al localhost, intente deshabilitar cualquier software antivirus (por ejemplo, ESET) que pueda estar ejecutando.
PrivacyFlash Pro analiza el código fuente de la aplicación iOS en Swift y sus bibliotecas integradas de terceros en Swift y Objective-C. El análisis de la biblioteca funciona para bibliotecas no compiladas y compiladas. PrivacyFlash Pro no analiza el código fuente de la aplicación iOS en Objective-C.
También puede crear una nueva versión empaquetada de PrivacyFlash Pro. Después de instalar y funcionar con éxito desde la fuente, ejecute python3 package.py dentro del directorio privacyflash-pro/policygenerator . Se generará un archivo con cremallera que contenga una aplicación distribuible MACOS en el directorio privacyflash-pro/policygenerator/dist .
Nota : Si está utilizando un entorno virtual de Python, como recomendamos, ejecute python3 package.py después de activar el entorno.
Nota : Si el embalaje para la distribución pública, recuerde actualizar el número de versión en privacyflash-pro/policygenerator/interface/index.html y privacyflash-pro/policygenerator/package.py . Además, identifique a sus usuarios que empaquetó la versión y que la versión no es oficial.
Si experimenta un embalaje de errores o ejecutando la aplicación empaquetada, intente actualizar el pyinstaller de dependencia ejecutando pip3 install pyinstaller -U y luego ejecute el script de empaque nuevamente.
PrivacyFlash Pro es de la gente para la gente. Todos pueden contribuir. En particular, no dude en abrir una solicitud de extracción para agregar prácticas de privacidad adicionales y bibliotecas de terceros. Si tiene otras ideas o comentarios, háganoslo saber. ¡Esperamos tener noticias tuyas!
La especificación para el análisis de práctica de privacidad está contenida en policygenerator/spec/privacy_practices.yaml . Privacyflash pro indica una práctica de privacidad en una aplicación o una biblioteca si identifica el uso de una API relevante, es decir, todo lo siguiente está presente para la aplicación o una biblioteca:
NSLocationWhenInUseUsageDescription )CoreLocation )CLLocationManager )requestWhenInUseAuthorization ) Para el análisis del código de la aplicación, el método de autorización también puede estar en una biblioteca siempre que haya evidencia adicional (por ejemplo, startUpdatingLocation ) en el código de la aplicación. Viceversa, para el análisis de una biblioteca, el método de autorización también puede estar en el código de la aplicación siempre que haya evidencia adicional (por ejemplo, startUpdatingLocation ) en la biblioteca.
Además, para algunas prácticas, por ejemplo, la salud, se requiere un derecho (por ejemplo, com.apple.developer.healthkit). Para más detalles, consulte Privacy_Practices.yaml.
PrivacyFlash Pro identifica cualquier biblioteca integrada en la aplicación analizada. La especificación para el análisis de la biblioteca de terceros está contenida en policygenerator/spec/third_parties.yaml . PrivacyFlash Pro está utilizando esta especificación para determinar el propósito de una biblioteca. El nombre de una biblioteca está dada por su nombre en Cocoapods. Por ejemplo, AdColony tiene la Advertising de propósito. PrivacyFlash Pro identifica actualmente los propósitos de 300 bibliotecas utilizando las siguientes categorías de propósito:
AuthenticationAdvertisingAnalyticsDeveloper SupportPayment ProcessingSocial Network Integration Tenga en cuenta que incluso si una biblioteca no está contenida en policygenerator/spec/third_parties.yaml , PrivacyFlash Pro todavía analiza sus archivos contenidos en un proyecto. Sin embargo, deberá ingresar el propósito de la biblioteca manualmente en la Política de privacidad que está generando.
Nuestras pruebas unitarias para PrivacyFlash Pro se han construido con el marco Python Unittest. Para ejecutar las pruebas incorporadas para PrivacyFlash Pro, use python3 -m unittest desde el directorio raíz de su copia local de este repositorio.
iOS-sample-projects : proyectos de muestra para PrivacyFlash Pro para analizar y probar.policygenerator/ : contiene el código de privacyflash pro.policygenerator/app.py : punto de entrada principal para generar una política de privacidad.policygenerator/package.py : Script para crear un paquete distribuible de PrivacyFlash Pro.policygenerator/interface : contiene todo el código relacionado con la interfaz de usuario para mostrar la política al usuario.policygenerator/spec : ESPECIFICACIONES DE PRISTAS DE TERCER Y PRIVACIÓN.policygenerator/spec/privacy_practices.yaml : contiene la especificación para detectar el uso de la práctica de privacidad.policygenerator/spec/third_parties.yaml : contiene la especificación de redes publicitarias y otras bibliotecas de terceros.policygenerator/src/analysis.py : el módulo para analizar el proyecto busca casos de uso de la práctica de privacidad.policygenerator/src/configure_data.py : puente entre el código Python y el código JavaScript para la UI; Configura los resultados del motor del generador a los archivos/objetos JSON adecuados que se utilizarán para la interfaz de usuario.policygenerator/src/constants.py : la clase Constants se usa internamente para identificar una práctica de privacidad mediante un valor de índice.policygenerator/src/evidence.py : la clase de evidencia se utiliza para realizar un seguimiento de los usos de práctica de privacidad en los archivos de una aplicación.policygenerator/src/privacy_practices.py : Carga los datos del proyecto de la aplicación que se analizarán.policygenerator/requirements.txt : Dependencias de PrivacyFlash Pro. PrivacyFlash Pro utiliza las siguientes bibliotecas de terceros. Agradecemos a los desarrolladores.
¡Nos gustaría agradecer a nuestros seguidores!
Apoyo financiero proporcionado por la Universidad Wesleyan y el Anil Fernando Endowment.

Las conclusiones alcanzadas o las posiciones tomadas son nuestras y no necesariamente las de nuestros partidarios financieros, sus fideicomisarios, oficiales o personal.
