Pour exécuter facilement Privacyflash Pro, obtenez la dernière version emballée.
En savoir plus sur Privacyflash Pro dans notre article de recherche (Bibtex).
Privacyflash Pro analyse le code des applications Swift iOS et leurs bibliothèques pour générer des politiques de confidentialité. Avec Privacyflash Pro, nous avons l'intention d'aider les développeurs à créer des politiques de confidentialité pour leurs applications et à rendre les pratiques de confidentialité des applications plus transparentes pour les utilisateurs.
Privacyflash Pro couvre les dispositions des lois suivantes:
Privacyflash Pro est un projet de recherche universitaire. Il a été conçu et développé par David Baraka (@davebaraka), Rafael Goldstein (@ rgoldstein01), Sarah Jin (@ sj-in) et Sebastian Zimck (@sebastianzimmeck) de la confidentialité-Tech-Lab. Kuba Alicki (@ Kalicki1) a écrit les tests unitaires.
1. Installation, course et emballage Privacyflash Pro
2. Vidéo de démonstration
3. Impliquez-vous
4. Test
5. Fichiers et répertoires dans ce repo
6. Bibliothèques tierces
7. Merci!
Vous pouvez installer et exécuter Privacyflash Pro à partir de la version emballée ou à partir des fichiers source. Vous pouvez également créer une nouvelle version emballée de Privacyflash Pro.
Vous trouverez les versions de Privacyflash Pro dans la section des versions (vous devrez peut-être permettre le téléchargement du fichier zip dans les paramètres de votre navigateur, par exemple, sous les paramètres de téléchargements de Google Chrome). Décompressez l'icône privacyflash-pro.zip téléchargée, puis cliquez sur l'icône Privacyflash Pro. Vous devrez accepter d'ouvrir Privacyflash Pro dans vos paramètres de sécurité macOS. Après quelques secondes, Privacyflash Pro devrait s'exécuter dans votre navigateur par défaut.
Assurez-vous que Python 3 est installé. Privacyflash Pro ne prend pas en charge Python 2. Vous pouvez vérifier votre terminal si vous avez installé Python 3 en exécutant python3 . Vous pouvez obtenir Python 3 sur le site officiel de Python.
Clone ce repo par cd ing dans le répertoire dans lequel vous souhaitez stocker Privacyflash Pro et exécuter git clone [email protected]:privacy-tech-lab/privacyflash-pro.git .
Recommandé fortement : créer et activer un environnement virtuel Python, pfp-venv , avec python3 -m venv pfp-venv , et l'exécutez avec source pfp-venv/bin/activate (en supposant que vous utilisez le shell par défaut). Assurez-vous que votre environnement virtuel est en dehors du répertoire privacyflash-pro pour éviter le suivi GIT.
cd dans le répertoire privacyflash-pro/policygenerator . Si vous utilisez un environnement virtuel Python, exécutez pip3 install -r requirements.txt . Sinon, exécutez pip3 install --user -r requirements.txt . Si vous obtenez une erreur, exécutez pip3 install -r requirements.txt . Si vous obtenez toujours une erreur, exécutez sudo pip3 install -r requirements.txt .
Exécutez Privacyflash Pro avec python3 app.py
En utilisant la navigation du répertoire de Privacyflash Pro, accédez à votre répertoire de projet SWIFT iOS (le répertoire qui contient votre .xcodeproj ), puis cliquez sur OK pour démarrer l'analyse. Selon la taille de votre base de code, les résultats de l'analyse doivent être disponibles dans une minute. Vous serez maintenant guidé à travers un sorcier. Une fois que vous avez finalisé le questionnaire Wizard, vous pouvez exporter la politique de confidentialité de votre application.
Vous pouvez tester Privacyflash Pro sur les projets dans les projets iOS-échantillon. Par exemple, vous pouvez analyser le projet d'échantillon AdColony. Démarrez Privacyflash Pro, dans votre navigateur, accédez au répertoire AdColony à l'aide de la navigation du répertoire de Privacyflash Pro, et cliquez sur OK pour démarrer l'analyse. Les résultats de l'analyse doivent être disponibles dans une minute.
Si votre navigateur ne se connecte pas au localhost, essayez de désactiver un logiciel antivirus (par exemple, ESET) que vous pouvez exécuter.
Privacyflash Pro analyse le code source de l'application iOS dans Swift et ses bibliothèques tierces intégrées dans Swift et Objective-C. L'analyse de la bibliothèque fonctionne pour les bibliothèques non compilées et compilées. Privacyflash Pro n'analyse pas le code source de l'application iOS dans Objective-C.
Vous pouvez également créer une nouvelle version emballée de Privacyflash Pro. Après avoir réussi à installer et à exécuter à partir de la source, exécutez python3 package.py dans le répertoire privacyflash-pro/policygenerator . Un fichier zippé contenant une application distribuable macOS sera généré dans le répertoire privacyflash-pro/policygenerator/dist .
Remarque : Si vous utilisez un environnement virtuel Python, comme nous le recommandons, exécutez python3 package.py après l'activation de l'environnement.
Remarque : Si l'emballage pour la distribution publique, n'oubliez pas de mettre à jour le numéro de version dans privacyflash-pro/policygenerator/interface/index.html et privacyflash-pro/policygenerator/package.py . Veuillez également identifier à vos utilisateurs que vous avez emballé la version et que la version n'est pas officielle.
Si vous ressentez des erreurs d'emballage ou exécutez l'application emballée, essayez de mettre à jour la dépendance pyinstaller en exécutant pip3 install pyinstaller -U , puis exécutez à nouveau le script d'emballage.
Privacyflash Pro est issu du peuple pour le peuple. Tout le monde peut contribuer. En particulier, n'hésitez pas à ouvrir une demande de traction pour ajouter des pratiques de confidentialité supplémentaires et des bibliothèques tierces. Si vous avez d'autres idées ou commentaires, faites-le nous savoir. Nous sommes impatients de vous entendre!
La spécification pour l'analyse de pratiques de confidentialité est contenue dans policygenerator/spec/privacy_practices.yaml . Privacyflash Pro signale une pratique de confidentialité dans une application ou une bibliothèque si elle identifie l'utilisation d'une API pertinente, c'est-à-dire que toutes les éléments suivants sont présents pour l'application ou une bibliothèque:
NSLocationWhenInUseUsageDescription )CoreLocation )CLLocationManager )requestWhenInUseAuthorization la réautorisation) Pour l'analyse du code d'application, la méthode d'autorisation peut également être dans une bibliothèque tant qu'il existe des preuves supplémentaires (par exemple, startUpdatingLocation ) dans le code d'application. Vice versa, pour l'analyse d'une bibliothèque, la méthode d'autorisation peut également être dans le code d'application tant qu'il existe des preuves supplémentaires (par exemple, startUpdatingLocation ) dans la bibliothèque.
De plus, pour certaines pratiques, par exemple, la santé, un droit (par exemple, com.apple.developper.healthkit) est nécessaire. Pour plus de détails, consultez le privacy_practices.yaml.
Privacyflash Pro identifie toute bibliothèque intégrée dans l'application analysée. La spécification pour l'analyse de la bibliothèque tierce est contenue dans policygenerator/spec/third_parties.yaml . Privacyflash Pro utilise cette spécification pour déterminer l'objectif d'une bibliothèque. Un nom de bibliothèque est donné par son nom sur Cocoapods. Par exemple, AdColony a la Advertising . Privacyflash Pro identifie actuellement les objectifs de 300 bibliothèques en utilisant les catégories d'objectifs suivantes:
AuthenticationAdvertisingAnalyticsDeveloper SupportPayment ProcessingSocial Network Integration Notez que même si une bibliothèque n'est pas contenue dans policygenerator/spec/third_parties.yaml , Privacyflash Pro analyse toujours ses fichiers contenus dans un projet. Cependant, vous devrez saisir manuellement l'objectif de la bibliothèque dans la politique de confidentialité que vous générez.
Nos tests unitaires pour Privacyflash Pro ont été construits avec le framework Python unittest. Afin d'exécuter les tests intégrés pour Privacyflash Pro, utilisez python3 -m unittest à partir du répertoire racine de votre copie locale de ce référentiel.
iOS-sample-projects : Exemples de projets pour Privacyflash Pro pour analyser et tester.policygenerator/ : contient le code de Privacyflash Pro.policygenerator/app.py : point d'entrée principal pour générer une politique de confidentialité.policygenerator/package.py : Script pour créer un package distribuable de Privacyflash Pro.policygenerator/interface : contient tout le code lié à l'interface utilisateur pour afficher la stratégie à l'utilisateur.policygenerator/spec : Spécifications des pratiques de tiers et de confidentialité.policygenerator/spec/privacy_practices.yaml : contient la spécification pour détecter l'utilisation de la pratique de la vie privée.policygenerator/spec/third_parties.yaml : contient la spécification pour les réseaux publicitaires et autres bibliothèques tierces.policygenerator/src/analysis.py : Le module pour analyser le projet recherche des instances d'utilisation de la pratique de la confidentialité.policygenerator/src/configure_data.py : pont entre le code Python et le code JavaScript pour l'interface utilisateur; Configure les résultats du moteur du générateur à des fichiers / objets JSON appropriés à utiliser pour l'interface utilisateur.policygenerator/src/constants.py : La classe Constantes est utilisée en interne pour identifier une pratique de confidentialité par une valeur d'index.policygenerator/src/evidence.py : La classe de preuves est utilisée pour garder une trace des usages de pratiques de confidentialité dans les fichiers d'une application.policygenerator/src/privacy_practices.py : charge les données du projet APP à analyser.policygenerator/requirements.txt : dépendances de Privacyflash Pro. Privacyflash Pro utilise les bibliothèques tierces suivantes. Nous remercions les développeurs.
Nous tenons à remercier nos supporters!
Soutien financier fourni par l'Université Wesleyan et la dotation d'Anil Fernando.

Les conclusions parvenues ou les positions prises sont les nôtres et pas nécessairement celles de nos partisans financiers, de ses administrateurs, officiers ou personnel.
