Giter Site home page Giter Site logo

mkenne11 / nogotofail-pii Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 1.0 534 KB

This is a fork of the nogotofail project also found on GitHub (https://github.com/google/nogotofail). This project adds tests for detecting common privacy issues in mobile application network traffic.

License: Apache License 2.0

Python 66.09% Java 33.91%

nogotofail-pii's People

Contributors

chadbrubaker avatar klyubin avatar mkenne11 avatar nikai3d avatar sjlver avatar yzninja avatar zemanel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ia-sadosky

nogotofail-pii's Issues

Improve efficiency of fetching unencrypted query strings by domain name

When generating the application pii data report unencrypted query strings for a domain are retrieved from the event log (dictionary) each the domain item is found in the log. This should be improved to pre-fetch the list of query strings for all domain before the report is processed.

This could be a performance issue for large event log files.

Add handlers for PII in encrypted traffic

There is now the need to add tests for PII in encrypted HTTPS traffic. These tests are needed to detect issues such as user's identifying information combined with persistent identifiers in requests, and tracking of accumulated PII to advertising providers.

The names of the handlers for unencrypted PII in HTTP traffic need to be improved to accommodate these. The suggested handler name changes are:

VULN_PII_QUERY_STRING_DETECTION = "piiquerystringdetection"
VULN_PII_HTTP_HEADER_DETECTION = "piihttpheaderdetection"
VULN_PII_HTTP_BODY_DETECTION = "piihttpbodydetection" TO

VULN_CLEARTEXT_PII_QUERY_STRING = "cleartextpiiquerystring"
VULN_CLEARTEXT_PII_HTTP_HEADER = "cleartextpiihttpheader"
VULN_CLEARTEXT_PII_HTTP_BODY = "cleartextpiihttpbody"

Refactor PII handlers

Refactor PII handlers by:

  • Add HTTPPIIDetectionHandler and HTTPSPIIDetectionHandler into the new file/handlers/connection/pii.py.
  • In the PIIDetectionHandler class add generic _alert_on_pii_query_string, _alert_on_pii_headers and _alert_on_pii_request_message_body methods.
  • Get HTTPPIIDetectionHandler and HTTPSPIIDetectionHandler classes to inherit from the PIIDetectionHandler class.
  • Add required decorator (with certificate path) to HTTPSPIIDetectionHandler class.

Fix Android client git diffs

Android studio editor settings appeared to have modified the formatting of the Android client "differences" (diffs) in Git commits creating messy diffs i.e. changes in indenting, spaces and mis-leading changes. This makes it very difficult to follow the change history.

The IDE editor auto-format settings should have been disabled.

The Java files should be reconstructed from the original source as a base and applying changes made.

Add hostname to noforwardsecrecy handler log messages

noforwardsecrecy handler log messages don't show the domain/hostname for which the TLS session was negotiated with. This makes it difficult to identify the connection with the issue.

This needs to be added to application message log i.e. mitm.log.

PII data report failing on some linux distro's

The Python script generating the PII data report (pii_data_report) is running fine on Ubuntu 14.04 LTS, however it is error-ing on Debian 7.8 (tested on the GCE Debian Wheezy image).

Investigate implementing new TLS handler test cases in harness

It would be great if test cases for two new TLS issue detection handlers could be added to the (Android) test harness. The two test cases to add are:

  • Certificates using SHA-1 expiring after Chrome sunset period
  • Certificates not using DHE key exchange

Cleanup Git history before parent project rebase

The Git history for this project needs to be cleaned up before rebasing changes from the parent project (nogotofail) onto this project.

Changes required include:

  • Remove sunsetsha1 and noforwardsecrecy handlers
  • Possibly remove BufferedHttpHandler handler

Link PII Analysis documentation in README file

The project README.md file needs a link to the PII analysis document (nogotofail-pii/docs/pii_analysis.md) to allow users to jump to more detailed information about using PII handlers.

Add HTTPS PII detection handlers

HTTPS PII detection handlers are needed to detect issues with mobile apps providing inappropriate amounts of user's personal information to server providers e.g. advertisers.

Additional code is needed to process the new HTTPS PII events in the data reporting code.

Simpler PII summary report

The current JSON PII summary report contains alot of information however it is complicated. A simpler layout would make it clearer what privacy impacts are present in applications.

Improve fetching location for mitm client

Currently the mitm client app retrieves the 'last known location' for the device. However if the last known location isn't set (e.g. after the Android device has been rebooted) the app returns null.
The apps functionality should be improved to fetch for the current location if no 'last known location' is available.

Improve formatting of PII location log entries

Entries in the output log file (mitm.log) when clear-text location is found in HTTP traffic includes the string "(longitude/latitude)".
The extra pair of round-brackets makes the log entry format inconsistent with the standard format, and adds to the difficulty of processing the file.

Conversion of client projects to Android Studio

The Android client projects need to be converted from Eclipse to Android Studio projects. Google is finishing support for Android applications in Eclipse and Android Studio is now the supported environment. See Android developers post:
http://android-developers.blogspot.com/2015/06/an-update-on-eclipse-android-developer.html

The repository Android projects that require conversion are the:

  • MitM client (/nogotofail/clients/android), and
  • test harness (/nogotofail/test/android).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.