Skip to main content

A library aiding to create deanonymizers (attacks on privacy preserving machine learning models) for the AnoMed competition platform.

Project description

Code style: black pipeline status coverage

Deanonymizer

A library aiding to create attacks against anonymizers (privacy preserving machine learning models) for the AnoMed competition platform. Currently, only membership inference attacks are supported.

Usage Example

The following example will create a Falcon-based web app that encapsulates a deanonymizer, targeting the example anonymizer defined in the anomed-anonyimzer README.md (which is a privacy preserving classifier for the famous iris dataset classification problem). The encapsulated deanonymizer is a membership inference black box attack, implemented using the Adversarial Robustness Toolbox (ART library).

The web app offers these routes (some may have query parameters not mentioned here):

[GET] / (This displays an "alive message".)
[POST] /fit (This invokes fitting the Gaussian naive based classifier; the web app will pull the training data from training_data_url.)
[POST] /evaluate (This invokes an intermediate, or final evaluation of the classifier.)
import anomed_deanonymizer
import numpy as np
from art.attacks.inference.membership_inference import MembershipInferenceBlackBox


def validate_input_array(feature_array: np.ndarray) -> None:
    if feature_array.shape[1] != 4 or len(feature_array.shape) != 2:
        raise ValueError("Feature array needs to have shape (n_samples, 4).")
    if feature_array.dtype != np.float_:
        raise ValueError("Feature array must be an array of floats.")


attack_target = anomed_deanonymizer.WebClassifier(
    url="http://example.com/predict", input_shape=(4,), nb_classes=3
)
example_attack_art = MembershipInferenceBlackBox(estimator=attack_target)  # type: ignore
example_attack = anomed_deanonymizer.ARTWrapper(
    art_mia=example_attack_art, input_validator=validate_input_array
)
application = anomed_deanonymizer.supervised_learning_MIA_server_factory(
    anonymizer_identifier="example_anonymizer",
    deanonymizer_identifier="example_deanonymizer",
    deanonymizer_obj=example_attack,
    model_filepath="deanonymizer.pkl",
    default_batch_size=64,
    member_url="http://example.com/members",
    nonmember_url="http://example.com/non-members",
    evaluation_data_url="http://example.com/attack-success-evaluation",
    model_loader=anomed_deanonymizer.unpickle_deanonymizer,
    utility_evaluation_url="http://example.com/utility",
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anomed_deanonymizer-0.0.9.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anomed_deanonymizer-0.0.9-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file anomed_deanonymizer-0.0.9.tar.gz.

File metadata

  • Download URL: anomed_deanonymizer-0.0.9.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for anomed_deanonymizer-0.0.9.tar.gz
Algorithm Hash digest
SHA256 5c138cffa2375003a0a3e713e4322c70a744d07b36f054d6f023102f97ebf891
MD5 848b82ca7718f418d715c4923ca28b46
BLAKE2b-256 90df440d6a738640039af38e8a7d2d03fb5ef58db909a560555e579260b25677

See more details on using hashes here.

File details

Details for the file anomed_deanonymizer-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for anomed_deanonymizer-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 1f7046a7b3c8fc9890a6e650048c9cd896a97e391e6052ee69e6fd855da581de
MD5 2f6706b06832b9c0689352ef300e8b20
BLAKE2b-256 11ff1cd04fb62b13c5da4a65102caafccd4dc5b476f7ebd62f1e78c1a2ebf844

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page