Как проверить cookies на соответствие GDPR — поможет новый открытый инструмент

    Разработчики базы данных CovenantSQL представили опенсорсную утилиту Cookie Scanner, которая определяет, какие cookies устанавливают сайты и с какой целью.

    Обсуждаем, зачем понадобился инструмент и как он работает.


    / Flickr / Yann Cœuru / CC BY / Фото изменено

    Что гласит закон


    Статья №30 Общего регламента по защите данных (GDPR) обязывает сайты, использующие персональные данные пользователей, уведомлять последних об установке cookies и получать на это согласие.

    Работу с cookies на территории Евросоюза также регулирует другой закон — ePrivacy Directive, действующий с 2009-го (в этом году его заменит более строгий ePrivacy Regulation, о котором мы рассказывали в одном из прошлых материалов). Он также обязывает владельцев сайтов уведомлять об обработке cookies.

    За нарушение требований GDPR и директивы ePrivacy владельцу ресурса могут выписать крупный штраф — до 20 млн евро или 4% годового оборота организации.

    В чем сложность


    Несмотря на штрафы, многие сайты устанавливают так называемые необязательные cookies без согласия пользователей.

    Считается, что интернет-ресурс не обязан получать согласие пользователя на установку cookies, если те необходимы для корректного функционирования сайта. Однако формулировки в законодательстве довольно размыты, и не всегда понятно, когда это правило применимо.

    На почве этого возникают конфликтные ситуации. Например, французский издатель Editions Croque Futur ставил посетителям сайта cookies для проведения маркетинговых кампаний. Владельцы отмечали, что эти cookies обеспечивают рентабельность сайта и потому жизненно необходимы для работы сервиса. Но регулятор не согласился с их доводами и выписал компании штраф в размере 25 тыс. евро.

    Другая проблема связана с тем, что GDPR не требует указывать и описывать все third-party сookies на сайте, например те, которые нужны для работы плагинов социальных сетей. Как пишут представители Британского комиссариата по информации (Information Commissioner's Office) в своем руководстве (PDF, стр.17), компании достаточно сгруппировать сторонние cookies по категориям и объяснить их назначение.

    Итальянский регулятор объясняет, что это вынужденная мера, так как иначе владельцам пришлось бы постоянно мониторить сторонние cookies на сайте и следить за их назначением, которое может изменяться со временем. Выполнить эту задачу сложно хотя бы потому, что у веб-мастеров часто нет прямых контактов со всеми организациями, ответственными за установку cookies на их ресурсе.

    На практике получается, что при переходе на сайт браузер пользователя может загрузить сторонние cookies, назначение которых неизвестно наверняка.


    / Flickr / Benjamin Horn / CC BY

    Как решить проблему


    Получить полный список cookies, устанавливаемый тем или иным ресурсом (и параллельно найти сайты, нарушающие требования GDPR), может утилита Cookie Scanner. В сети довольно большое количество подобных сервисов, но многие из них платные. Код Cookie Scanner является открытым и лежит в репозитории на GitHub.

    Cookie Scanner анализирует статус cookies и формирует отчет с описанием их задач. Информацию инструмент берет на специализированном ресурсе cookiepedia, а для её представления использует базу данных CQL. Сейчас в ней находится информация о 10 тыс. различных cookies. О том, как начать работать с CQL-базой — в руководстве для быстрого старта, которое подготовили разработчики из CovenantSQL.

    Для Cookie Scanner требуется операционная система MacOS/Linux и браузер Chrome. Как вариант, можно обратиться к его headless-версии, которая используется для тестирования кода и верстки. Она не отрисовывает содержимое на экране, поэтому работает быстрее и потребляет меньше памяти.

    Немаловажным свойством также является возможность установки на «голый» Linux-сервер — достаточно поставить пакет, и браузер будет работать из коробки.

    Для запуска headless-chrome в контейнере нужно запустить команду:

    $ docker container run -d -p 9222:9222 zenika/alpine-chrome --no-sandbox \
     --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222
    

    Установка Cookie Scanner выполняется с помощью get:

    $ go get github.com/CovenantSQL/CookieScanner

    Инструмент формирует отчеты о cookies в форматах PDF, JSON и HTML. Функция парсера для вывода информации в формате PDF выглядит вот так:

    func outputAsPDF(remote *godet.RemoteDebugger, htmlFile string) (pdfBytes []byte, err error) {
    	var tab *godet.Tab
    
    	htmlFile, _ = filepath.Abs(htmlFile)
    	fileLink := "file://" + htmlFile
    
    	if tab, err = remote.NewTab(fileLink); err != nil {
    		return
    	}
    	if err = remote.ActivateTab(tab); err != nil {
    		return
    	}
    
    	// wait for page to load
    	time.Sleep(time.Second)
    
    	return remote.PrintToPDF(godet.PortraitMode())
    }
    

    Вот так генерируется HTML-отчет с помощью CLI-режима:

    $ CookieScanner cli \
        --headless \
        --classifier "covenantsql://050cdf3b860c699524bf6f6dce28c4f3e8282ac58b0e410eb340195c379adc3a?config=./config/config.yaml" \
        --html cql.html covenantsql.io
    

    Примеры отчетов, которые может сгенерировать программа, вы найдете в соответствующем разделе репозитория.

    Месяц назад нидерландское Агентство по защите данных (AP) объявило, что в ближайшее время будет активно заниматься проверкой жалоб пользователей на сайты, нарушающие правила работы с cookies. Можно предположить, что инструментов (в том числе опенсорсных), позволяющих мониторить cookies, также станет больше. И использовать их будут как пользователи, так и владельцы сайтов, чтобы выполнять требования GDPR и ePrivacy Regulation.

    Наши дополнительные ресурсы и источники:

    Сделка на $39 млн: почему создатели опенсорсной СУБД решили заняться мобильными разработками

    Персональные данные: в чём суть закона?
    Минимизация рисков: как не потерять ваши данные
    Резервное копирование файлов: как подстраховаться от потери данных

    Как у нас все устроено: дайджест от 1cloud
    Как облачные технологии помогли разглядеть чёрную дыру
    Потенциальные атаки на HTTPS и способы защиты от них
    • +13
    • 3,5k
    • 1
    1cloud.ru
    193,44
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Комментарии 1

      0
      А ещё лучше собраться известным представителям IT сообщества и объяснить европарламентариям какой это дурацкий закон (в отношении кукис). Если уж обязать выдавать предупреждение, так не о кукис, а в целом по тому как сайт работает с частными данными, с требованием чтобы имели страницу с детальным описанием всего имеющего к этому отношение (с обязательной версионностью, т.е. только добавляем на эту страницу и ничего не убираем).

      А то сделали жупел из этих кукис и радуются. Сервисы которые завязаны на авторизации, очень легко обойдутся без кукис, генерируя правильный URL. А те кто не требует авторизацию, могут без кукис использовать browser fingerprinting или использовать методики по распознаванию пользователя за счёт уникальных паттернов его работы. Движение мыши, набор на клавиатуре и т.п.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое