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.6.tar.gz (10.0 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.6-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: anomed_deanonymizer-0.0.6.tar.gz
  • Upload date:
  • Size: 10.0 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.6.tar.gz
Algorithm Hash digest
SHA256 4d1d168e9ed9fb06f1a8f551d98c27f9e5864c8420d0906000c28557d5d444c9
MD5 8ad0a240bcb3063f6e682860891940ab
BLAKE2b-256 faaad908a8e454c376d39b0cf3f922890ab90008ceebbb1926354c17e6c4af14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for anomed_deanonymizer-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f733645586010be5c28315ced9d00c855ba9b2c2bc99a242fb57a58a7cd66808
MD5 71daf551caf5a7ef070baf5880fd7f20
BLAKE2b-256 09d6def0da353a80ee0f1dddd5d132c47ca22b84dfc0fbbd1c3790607561e97b

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