Чтобы легко запустить PrivacyFlash Pro, получите последний упакованный выпуск.
Узнайте больше о Privaceflash Pro в нашей исследовательской работе (Bibtex).
PrivacyFlash Pro анализирует код приложений iOS Swift и их библиотек для получения политики конфиденциальности. С помощью PrivacyFlash Pro мы намерены помочь разработчикам создавать политики конфиденциальности для своих приложений и сделать практику конфиденциальности приложений более прозрачными для пользователей.
PrivacyFlash Pro охватывает положения следующих законов:
PrivacyFlash Pro - это академический исследовательский проект. Он был разработан и разработан Дэвидом Барака (@Davebaraka), Рафаэлем Гольдштейном (@Rgoldstein01), Сарой Джин (@SJ-In) и Себастьяном Зиммиком (@Sebastianzimmeck) из-за лабла-лаб. Куба Алики (@Kalicki1) написал модульные тесты.
1. Установка, запуск и упаковка PrivacyFlash Pro
2. Демо -видео
3. Примите участие
4. Тестирование
5. Файлы и каталоги в этом репо
6. Сторонние библиотеки
7. Спасибо!
Вы можете установить и запустить PrivacyFlash Pro из упакованного выпуска или из исходных файлов. Вы также можете создать новую упакованную версию Privacyflash Pro.
Вы найдете релизы PrivacyFlash Pro в разделе «Выпуск» (вам, возможно, потребуется разрешить загружать файл ZIP в настройках браузера, например, в настройках загрузки Google Chrome). Разируйте загруженный privacyflash-pro.zip , а затем нажмите значок PrivacyFlash Pro. Вы должны согласиться открыть PrivacyFlash Pro в ваших настройках безопасности MacOS. Через несколько секунд PrivacyFlash Pro должен работать в браузере по умолчанию.
Убедитесь, что Python 3 установлен. Privacyflash Pro не поддерживает Python 2. Вы можете проверить свой терминал, если у вас установлен Python 3, работающий python3 . Вы можете получить Python 3 на официальном веб -сайте Python.
cd это репо, в каталог, в котором вы хотите хранить Privacyflash Pro и запустить git clone [email protected]:privacy-tech-lab/privacyflash-pro.git .
Настоятельно рекомендуется : создать и активировать виртуальную среду Python, pfp-venv , с python3 -m venv pfp-venv , и запустите ее с source pfp-venv/bin/activate (при условии, что вы используете оболочку по умолчанию). Убедитесь, что ваша виртуальная среда находится вне каталога privacyflash-pro чтобы избежать отслеживания GIT.
cd в каталог privacyflash-pro/policygenerator . Если вы используете виртуальную среду Python, запустите pip3 install -r requirements.txt . В противном случае, запустите pip3 install --user -r requirements.txt . Если вы получите ошибку, запустите pip3 install -r requirements.txt . Если вы все еще получите ошибку, запустите sudo pip3 install -r requirements.txt .
Запустите PrivacyFlash Pro с python3 app.py
Используя навигацию по каталогу PrivacyFlash Pro, перейдите в свой каталог проектов iOS Swift (каталог, который содержит ваш .xcodeproj ), и нажмите OK, чтобы начать анализ. В зависимости от размера вашей кодовой базы, результаты анализа должны быть доступны в течение минуты. Теперь вы будете руководить волшебником. После того, как вы завершили анкету Wizard, вы можете экспортировать политику конфиденциальности для вашего приложения.
Вы можете протестировать Privacyflash Pro на проектах в проектах iOS-Sample. Например, вы можете проанализировать проект выборки Adcolony. Начните PrivacyFlash Pro, в вашем браузере перейдите в каталог Adcolony, используя навигацию PrivacyFlash Pro и нажмите OK, чтобы начать анализ. Результаты анализа должны быть доступны в течение минуты.
Если ваш браузер не подключается к Localhost, попробуйте отключить любое антивирусное программное обеспечение (например, ESET), которое вы можете запускать.
PrivacyFlash Pro анализирует исходный код приложения iOS в Swift и его интегрированные сторонние библиотеки в Swift и Objective-C. Анализ библиотеки работает для некомпилированных и составленных библиотек. PrivacyFlash Pro не анализирует исходный код приложения iOS в Objective-C.
Вы также можете создать новую упакованную версию Privacyflash Pro. После успешной установки и запуска из источника запустите python3 package.py в каталоге privacyflash-pro/policygenerator . Застегиваемый файл, содержащий распределяемое приложение MacOS, будет создан в каталоге privacyflash-pro/policygenerator/dist .
Примечание . Если вы используете виртуальную среду Python, как мы рекомендуем, запустите python3 package.py после активации среды.
ПРИМЕЧАНИЕ . Если упаковка для публичного распространения, не забудьте обновить номер версии в privacyflash-pro/policygenerator/interface/index.html и privacyflash-pro/policygenerator/package.py . Кроме того, пожалуйста, укажите своим пользователям, что вы упаковали версию и что версия не является официальной.
Если вы испытываете ошибки в упаковке или запускаете упакованное приложение, попробуйте обновить зависимость pyinstaller , запустив pip3 install pyinstaller -U , а затем снова запустите сценарий упаковки.
PrivacyFlash Pro от людей для людей. Каждый может внести свой вклад. В частности, не стесняйтесь открыть запрос на привлечение, чтобы добавить дополнительную практику конфиденциальности и сторонние библиотеки. Если у вас есть другие идеи или отзывы, дайте нам знать. Мы с нетерпением ждем вас!
Спецификация для анализа практики конфиденциальности содержится в policygenerator/spec/privacy_practices.yaml . PrivacyFlash Pro Flags практика конфиденциальности в приложении или в библиотеке, если он определяет использование соответствующего API, то есть все следующие представлены для приложения или библиотеки:
NSLocationWhenInUseUsageDescription )CoreLocation )CLLocationManager )requestWhenInUseAuthorization ) Для анализа кода приложения метод авторизации также может находиться в библиотеке, если в коде приложения есть дополнительные доказательства (например, startUpdatingLocation ). Наоборот, для анализа библиотеки метод авторизации также может находиться в коде приложения, если в библиотеке есть дополнительные доказательства (например, startUpdatingLocation ).
Кроме того, для некоторых практик требуется здоровье, право (например, com.apple.developer.healthkit). Для получения более подробной информации см. Privacy_practices.yaml.
PrivacyFlash Pro идентифицирует любую библиотеку, интегрированную в анализируемое приложение. Спецификация для анализа третьей стороны библиотеки содержится в policygenerator/spec/third_parties.yaml . PrivacyFlash Pro использует эту спецификацию для определения цели библиотеки. Название библиотеки определяется по названию на кокоподах. Например, у AdColony есть цель Advertising . PrivacyFlash Pro в настоящее время определяет целей 300 библиотек, используя следующие категории целей:
AuthenticationAdvertisingAnalyticsDeveloper SupportPayment ProcessingSocial Network Integration Обратите внимание, что даже если библиотека не содержится в policygenerator/spec/third_parties.yaml , Privacyflash Pro все еще анализирует свои файлы, содержащиеся в проекте. Тем не менее, вам придется ввести цель библиотеки вручную в политике конфиденциальности, которую вы генерируете.
Наши модульные тесты для PrivacyFlash Pro были построены с помощью Python Unittest Framework. Чтобы запустить встроенные тесты для PrivacyFlash Pro, используйте python3 -m unittest из корневого каталога вашей локальной копии этого репо.
iOS-sample-projects : выборки проектов для PrivacyFlash Pro для анализа и тестирования.policygenerator/ : содержит код PrivacyFlash Pro.policygenerator/app.py : основная точка входа для получения политики конфиденциальности.policygenerator/package.py : скрипт для создания распределимого пакета PrivacyFlash Pro.policygenerator/interface : содержит весь код, связанный с пользовательским интерфейсом для отображения политики пользователю.policygenerator/spec : Спецификации третьей стороны и практики конфиденциальности.policygenerator/spec/privacy_practices.yaml : содержит спецификацию для обнаружения использования практики конфиденциальности.policygenerator/spec/third_parties.yaml : содержит спецификацию для сетей рекламы и других сторонних библиотек.policygenerator/src/analysis.py : модуль для анализа проекта ищет экземпляры использования практики конфиденциальности.policygenerator/src/configure_data.py : мост между кодом Python и кодом JavaScript для пользовательского интерфейса; Настраивает результаты из двигателя генератора на правильные файлы/объекты JSON, которые будут использоваться для пользовательского интерфейса.policygenerator/src/constants.py : класс Constants используется внутренне для определения практики конфиденциальности по значению индекса.policygenerator/src/evidence.py : класс доказательств используется для отслеживания использования практики конфиденциальности в файлах приложения.policygenerator/src/privacy_practices.py : загружает данные из App Project, который будет проанализирован.policygenerator/requirements.txt : Зависимости PrivacyFlash Pro. PrivacyFlash Pro использует следующие сторонние библиотеки. Мы благодарим разработчиков.
Мы хотели бы поблагодарить наших сторонников!
Финансовая поддержка, предоставленная Уэслианским университетом и эндоументом Анил Фернандо.

Выводы пришли или сделаны нашим собственным и не обязательно выставки наших финансовых сторонников, его попечителей, офицеров или персонала.
