Para executar facilmente o PrivacyFlash Pro, obtenha o último lançamento embalado.
Saiba mais sobre o PrivacyFlash Pro em nosso trabalho de pesquisa (Bibtex).
O PrivacyFlash Pro analisa o código dos aplicativos iOS Swift e suas bibliotecas para gerar políticas de privacidade. Com o PrivacyFlash Pro, pretendemos ajudar os desenvolvedores a criar políticas de privacidade para seus aplicativos e tornar as práticas de privacidade dos aplicativos mais transparentes para os usuários.
PrivacyFlash Pro abrange as disposições das seguintes leis:
PrivacyFlash Pro é um projeto de pesquisa acadêmica. Foi projetado e desenvolvido por David Baraka (@DaveBaraka), Rafael Goldstein (@rgoldstein01), Sarah Jin (@sj-in) e Sebastian Zimmeck (@Sebastianzimmeck) da privacidade-tecnologia. Kuba Alicki (@kalicki1) escreveu os testes de unidade.
1. Instalação, execução e embalagem PrivacyFlash Pro
2. Vídeo de demonstração
3. Envolva -se
4. Teste
5. Arquivos e diretórios neste repositório
6 bibliotecas de terceiros
7. Obrigado!
Você pode instalar e executar o PrivacyFlash Pro a partir da versão embalada ou dos arquivos de origem. Você também pode criar uma nova versão embalada do PrivacyFlash Pro.
Você encontrará os lançamentos do PrivacyFlash Pro na seção de lançamentos (pode ser necessário permitir o download do arquivo zip nas configurações do navegador, por exemplo, nas configurações de downloads do Google Chrome). Descompacte o privacyflash-pro.zip baixado e clique no ícone PrivacyFlash Pro. Você terá que concordar em abrir o PrivacyFlash Pro nas configurações de segurança do MacOS. Depois de alguns segundos, o PrivacyFlash Pro deve ser executado no seu navegador padrão.
Verifique se o Python 3 está instalado. O PrivacyFlash Pro não suporta o Python 2. Você pode verificar seu terminal se tiver o Python 3 instalado executando python3 . Você pode obter o Python 3 no site oficial do Python.
Clone este repositório, cd no diretório em que você deseja armazenar PrivacyFlash Pro e executar git clone [email protected]:privacy-tech-lab/privacyflash-pro.git .
Recomendado fortemente : Crie e ative um ambiente virtual do Python, pfp-venv , com python3 -m venv pfp-venv , e execute-o com source pfp-venv/bin/activate (assumindo que você está usando o shell padrão). Certifique-se de que seu ambiente virtual esteja fora do diretório privacyflash-pro para evitar o rastreamento Git.
cd no diretório privacyflash-pro/policygenerator . Se você estiver usando um ambiente virtual do Python, execute pip3 install -r requirements.txt . Caso contrário, execute pip3 install --user -r requirements.txt . Se você receber um erro, execute pip3 install -r requirements.txt . Se você ainda receber um erro, execute sudo pip3 install -r requirements.txt .
Execute o PrivacyFlash Pro com python3 app.py
Usando a navegação de diretório do PrivacyFlash Pro, navegue até o diretório do projeto iOS Swift (o diretório que contém seu .xcodeproj ) e clique em OK para iniciar a análise. Dependendo do tamanho da sua base de código, os resultados da análise devem estar disponíveis em um minuto. Agora você será guiado por um mago. Depois de finalizar o questionário do assistente, você pode exportar a política de privacidade para o seu aplicativo.
Você pode testar o PrivacyFlash Pro nos projetos nos projetos iOS-Sample. Por exemplo, você pode analisar o projeto de amostra do Adcolony. Inicie o PrivacyFlash Pro, no seu navegador, navegue até o diretório Adcolony usando a navegação de diretório do PrivacyFlash Pro e clique em OK para iniciar a análise. Os resultados da análise devem estar disponíveis dentro de um minuto.
Se o seu navegador não se conectar ao host local, tente desativar qualquer software antivírus (por exemplo, ESET) que você poderá estar em execução.
O PrivacyFlash Pro analisa o código-fonte do aplicativo iOS no Swift e suas bibliotecas de terceiros integrados no Swift e Objective-C. A análise da biblioteca funciona para bibliotecas não compiladas e compiladas. O PrivacyFlash Pro não analisa o código-fonte do aplicativo iOS no Objective-C.
Você também pode criar uma nova versão embalada do PrivacyFlash Pro. Depois de instalar e executar com êxito a partir da fonte, execute python3 package.py dentro do diretório privacyflash-pro/policygenerator . Um arquivo zippeado que contém um aplicativo distribuível do MACOS será gerado no diretório privacyflash-pro/policygenerator/dist .
NOTA : Se você estiver usando um ambiente virtual do Python, como recomendamos, execute python3 package.py após ativar o ambiente.
NOTA : Se a embalagem para distribuição pública, lembre-se de atualizar o número da versão no privacyflash-pro/policygenerator/interface/index.html e privacyflash-pro/policygenerator/package.py . Além disso, identifique -se aos seus usuários que você empacotou a versão e que a versão não é oficial.
Se você experimentar erros de embalagem ou executando o aplicativo embalado, tente atualizar o pyinstaller de dependência executando pip3 install pyinstaller -U e execute o script de embalagem novamente.
PrivacyFlash Pro é do povo para o povo. Todos podem contribuir. Em particular, fique à vontade para abrir uma solicitação de tração para adicionar práticas de privacidade adicionais e bibliotecas de terceiros. Se você tiver outras idéias ou feedback, informe -nos. Estamos ansiosos para ouvir de você!
A especificação para a análise da prática de privacidade está contida no policygenerator/spec/privacy_practices.yaml . A PrivacyFlash Pro sinaliza uma prática de privacidade em um aplicativo ou biblioteca se identificar o uso de uma API relevante, ou seja, todos os seguintes estão presentes para o aplicativo ou uma biblioteca:
NSLocationWhenInUseUsageDescription )CoreLocation )CLLocationManager )requestWhenInUseAuthorization ) Para a análise do código do aplicativo, o método de autorização também pode estar em uma biblioteca, desde que haja evidências adicionais (por exemplo, startUpdatingLocation ) no código do aplicativo. Vice -versa, para a análise de uma biblioteca, o método de autorização também pode estar no código do aplicativo, desde que haja evidências adicionais (por exemplo, startUpdatingLocation ) na biblioteca.
Além disso, para algumas práticas, por exemplo, é necessária saúde, é necessária um direito (por exemplo, com.apple.developer.healthkit). Para mais detalhes, consulte o privacy_practices.yaml.
O PrivacyFlash Pro identifica qualquer biblioteca integrada no aplicativo analisado. A especificação para a análise da biblioteca de terceiros está contida no policygenerator/spec/third_parties.yaml . O PrivacyFlash Pro está usando esta especificação para determinar o objetivo de uma biblioteca. Um nome de biblioteca é dado pelo seu nome em Cocoapods. Por exemplo, AdColony tem a Advertising de propósito. Atualmente, o PrivacyFlash Pro identifica os fins de 300 bibliotecas usando as seguintes categorias de finalidade:
AuthenticationAdvertisingAnalyticsDeveloper SupportPayment ProcessingSocial Network Integration Observe que, mesmo que uma biblioteca esteja não esteja contida no policygenerator/spec/third_parties.yaml , o PrivacyFlash Pro ainda analisa seus arquivos contidos em um projeto. No entanto, você terá que inserir o objetivo da biblioteca manualmente na política de privacidade que você está gerando.
Nossos testes de unidade para o PrivacyFlash Pro foram construídos com a estrutura Python Unittest. Para executar os testes internos do PrivacyFlash Pro, use python3 -m unittest de dentro do diretório raiz da sua cópia local deste repositório.
iOS-sample-projects : Exemplo de projetos para o PrivacyFlash Pro para analisar e testar.policygenerator/ : Contém o Código do PrivacyFlash Pro.policygenerator/app.py : ponto de entrada principal para gerar uma política de privacidade.policygenerator/package.py : Script para criar um pacote distribuível do PrivacyFlash Pro.policygenerator/interface : contém todo o código relacionado à interface do usuário para exibir a política para o usuário.policygenerator/spec : Especificações de terceiros e práticas de privacidade.policygenerator/spec/privacy_practices.yaml : Contém a especificação para detectar o uso da prática de privacidade.policygenerator/spec/third_parties.yaml : Contém a especificação para redes de anúncios e outras bibliotecas de terceiros.policygenerator/src/analysis.py : O módulo para analisar o projeto procura instâncias de uso da prática de privacidade.policygenerator/src/configure_data.py : Bridge entre o código Python e o código JavaScript para a interface do usuário; Configura os resultados do motor gerador para os arquivos/objetos JSON adequados a serem usados para a interface do usuário.policygenerator/src/constants.py : A classe Constants é usada internamente para identificar uma prática de privacidade por um valor de índice.policygenerator/src/evidence.py : A classe de evidência é usada para acompanhar os usos da prática de privacidade nos arquivos de um aplicativo.policygenerator/src/privacy_practices.py : carrega dados do projeto do aplicativo a serem analisados.policygenerator/requirements.txt : Dependências do PrivacyFlash Pro. O PrivacyFlash Pro usa as seguintes bibliotecas de terceiros. Agradecemos aos desenvolvedores.
Gostaríamos de agradecer aos nossos apoiadores!
Apoio financeiro fornecido pela Wesleyan University e pela Anil Fernando Endowment.

As conclusões alcançadas ou as posições tomadas são as nossas e não necessariamente as de nossos apoiadores financeiros, seus curadores, oficiais ou funcionários.
