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.8.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.8-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: anomed_deanonymizer-0.0.8.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.8.tar.gz
Algorithm Hash digest
SHA256 13bda6d9988e061335c7e3804fb476054583897804bc3f7acebb5e968abee7a3
MD5 fa92b6be8b4b68e0d357e26bfb6f582f
BLAKE2b-256 8658acd0ec2189bf527a2ff1adaa9ff40f9f001d3af1a91eee38236ff1332fee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for anomed_deanonymizer-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e089613dfdab27c5868a89ddfce64ee4ab5efb061cd74cb5563968cd6a515263
MD5 b504fe126203151ad4a84b7d8d07099a
BLAKE2b-256 7cd782038300efa067300afaf5666fff49f6b3ccaeb0069205cee838e8ed3bd0

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