Go to file
aeris dfb23e697d Avoid rails dependencies in docker 2023-07-16 00:33:05 +02:00
app/lib Prepare for future rails 2023-07-16 00:23:36 +02:00
bin Better dockerfile 2023-07-16 00:26:47 +02:00
spec Reorganize code & generate report 2023-05-21 20:25:05 +02:00
.dockerignore Dockerise 2023-07-02 00:08:51 +02:00
.gitignore Reorganize code & generate report 2023-05-21 20:25:05 +02:00
.rspec Initial commit 2023-05-20 15:31:37 +02:00
Dockerfile Avoid rails dependencies in docker 2023-07-16 00:33:05 +02:00
Gemfile Avoid rails dependencies in docker 2023-07-16 00:33:05 +02:00
Gemfile.lock Avoid rails dependencies in docker 2023-07-16 00:33:05 +02:00
LICENSE Initial commit 2023-05-20 15:31:37 +02:00
README.md Dockerise 2023-07-02 00:08:51 +02:00
Rakefile Initial commit 2023-05-20 15:31:37 +02:00
config.yaml Generate case from report 2023-05-23 11:08:25 +02:00

README.md

Acnihilator

This tool is focused on detecting GDPR violation on website to automate later complaint sending to national DPA

Requirement

Ruby 3 or later Chrome headless (used by Selenium)

Software released under AGPLv3+ license

Setup

Get a GeoIP MaxMind free license https://www.maxmind.com/en/account/login.

$ cat > ~/.config/GeoIP.conf <EOF
AccountID <MaxMind account ID>
LicenseKey <MaxMind license key>
EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
EOF
$ bundle install
$ bundle exec rake

Usage

$ bundle exec ./bin/acnihilator inspect <url of the website to test>

Dockerized version

To avoid installing ruby environment, you can use Docker to build an image directly usable:

  docker build .

A pre-build version is provided on Docker Hub. (Publishing MaxMind geoip database is not allowed, so you need to have one on your host computer and to volume-mount it on the running container, so the -v usage.)

  docker run --rm -it -v ./GeoLite2-Country.mmdb:/app/GeoLite2-Country.mmdb \
    aeris22/acnihilator inspect --no-save https://imirhil.fr/

Under the hood

This script uses Selenium with a headless browser to intercept all HTTP requests done on a given website.

From this collection, it tries to detect GDPR violation:

  • Usage of US services, violating Schrems II CJEU decision

    • GeoIP database for IP country location
    • Whois service for organization identification
  • Deposit of identifying cookies without consent

  • Usage of prohibited services like reCaptcha, hCaptcha, Cloudflare, Stripe, Mailchimp…