После новости об обновлении правил использования Keitaro мы проверили, какие запросы отправляют Binom v2 и Keitaro при установке, создании кампаний и добавлении домена. Зафиксировали адреса, методы и частоту обращений, разобрали доступное содержимое.
Главный результат: в запросах обоих трекеров обнаружены пакеты, содержимое которых прочитать не удалось. Тестовые названия источников, кампаний, офферов, потоков и добавленные домены в разобранных запросах к сервисам разработчиков не найдены, но их передачу исключить нельзя.
У Keitaro зафиксирована аналитика прямо из админки: в записанных сеансах браузер отправил 72 запроса к сервисам Google, включая Google Analytics. Среди передаваемых данных: просмотренные страницы, события взаимодействия с формами, параметры браузера, идентификатор лицензии, роль пользователя и редакция приложения. В составе адресов страниц также передавались внутренние ID кампаний и настройки отчётов: период, часовой пояс, выбранные показатели и столбцы. У Binom в сеансах админки внешних запросов не обнаружено.
Стенд и методика
Трекеры установили на отдельных VPS Friendhosting и подали небольшой поток переходов для естественности и наблюдали обычную работу. Основное наблюдение длилось сутки, затем на работающих установках добавили домены и наблюдали ещё два часа.
В каждом трекере создали по три источника трафика, оффера, кампании и потока с тестовыми метками. Проверили переименование, а в середине теста добавили ещё по три объекта каждого типа. По меткам искали названия в исходящих данных.
Записывали соединения, DNS и доступный HTTP, в том числе до шифрования TLS. Браузерные запросы сохраняли отдельно, браузер закрывали после действий.
В таблицах указано, сколько HTTP-запросов трекер пытался отправить по нашим наблюдениям. Сетевые соединения и DNS-запросы считали отдельно и к числу HTTP-запросов не прибавляли.
Cравнение трекеров Binom v2 и Keitaro под нагрузкой и на реальном трафике доступно здесь: https://cpa.rip/services/binom-vs-keitaro/
Запросы при установке
- Binom загружал установщик и базы с
data.binom.org, Protect сprivate.binom.dev, Observer из Amazon S3; проверял IP, лицензию и версии. - Keitaro загружал скрипты и компоненты с
files.keitaro.io, базы геолокации, ботов и операторов сkeitaro.ioиkeitaro-geo-db.keitaro.io; проверял IP и лицензию, отправил первый POST на maintenance.
Браузерные запросы из админ-панели
Отдельно проверили браузерные запросы, для этого админки обоих трекеров открывали в отдельных чистых профилях.
| Наблюдение | Binom | Keitaro |
|---|---|---|
| Внешние HTTP-запросы при создании и изменении объектов | 0; все 3 775 записанных запросов направлены к нашему трекеру | 72 внешних запроса к сервисам Google |
| IP трекера в данных внешнего запроса браузера | Внешних запросов в этих сессиях не обнаружено | В 54 запросах Google Analytics — в адресе страницы или реферере |
| Отдельная сессия добавления домена | 0 внешних; 366 запросов к нашему трекеру | 10 внешних запросов к сервисам Google |
Админка Keitaro обращалась к analytics.google.com, stats.g.doubleclick.net, www.googletagmanager.com и www.google.com.vn. В запросах передавались сведения о просмотренных страницах и взаимодействиях с формами, параметры браузера, роль пользователя, редакция приложения и идентификатор лицензии.
В 54 запросах Google Analytics адрес страницы или реферер содержал IP трекера. При этом тестовые названия объектов и добавленный домен в доступных для чтения данных браузерных запросов не найдены.
Параметр dp содержал путь открытой страницы и параметры её URL. Например, при работе с кампанией в нём передавался её внутренний ID: dp=/campaign/<ID_КАМПАНИИ>/main. На странице статистики период, часовой пояс, выбранные показатели и столбцы отчёта, и т.д.
Ниже пример запроса со страницы статистики со всеми параметрами URL. Значения показаны после одного уровня URL-декодирования. Длинное поле dp содержит настройки отображения отчёта; самих значений расходов, доходов и других показателей в нём нет.
POST https://analytics.google.com/g/collect Параметры URL: v=2 tid=<ID_РЕСУРСА_GA> gtm=45je6ac1v9191639167za200zd9191639167xf1 _p=<ID_СТРАНИЦЫ> _gaz=1 gcd=13l3l3l3l1l1 npa=0 dma=0 ecid=<ECID> _eu=AAAAAGAC cid=<ID_КЛИЕНТА_GA> ec_mode=a frm=0 pscdl=noapi rcb=9 sr=1280x720 uaa=arm uab=64 uafvl=Google%20Chrome;155.0.8059.41|Chromium;155.0.8059.41|Not(A%3ABrand;24.0.0.0 uam= uamb=0 uap=macOS uapv=27.0.1 uaw=0 ul=ru-ru gaf=2 _s=1 tag_exp=115616986~115938466~115938468~118897920~118897930~120213116~120385422~120469145~120469153~121246026~121246034 dp=/dashboard/?s=%7E%28campaign%7Enull%7Erange%7E%28from%7E%272026-10-14%7Eto%7E%272026-10-14%7Einterval%7E%27today%7Etimezone%7E%27UTC%29%7EenabledMetrics%7E%28%7E%27clicks%7E%27campaign_unique_clicks%7E%27conversions%7E%27cost%7E%27sale_revenue%7E%27profit_confirmed%7E%27roi_confirmed%29%7EenabledEntities%7E%28%7E%27campaign%7E%27landing%7E%27offer%7E%27ts%29%7ElastClicksColumns%7E%28%7E%27event_id%7E%27datetime%7E%27campaign%7E%27os_icon%7E%27browser_icon%7E%27ip%7E%27destination%29%7EtopMetrics%7E%28%7E%27clicks%7E%27campaign_unique_clicks%7E%27conversions%29%29 sid=<ID_СЕССИИ_GA> sct=1 seg=0 dl=https://<IP_ТРЕКЕРА>/admin/ dr=https://<IP_ТРЕКЕРА>/admin/ dt=Dashboard en=page_view _fv=1 _nsi=1 _ss=1 _ee=1 epn.license_id=<ID_ЛИЦЕНЗИИ> up.user_role=admin up.app_edition=starter tfd=2980
Какие запросы передавал Binom
За сутки зафиксировали 217 внешних HTTP-запросов: 206 в TLS и 11 в открытом HTTP. Включены компоненты трекера, сертификат и ОС.
| Адресат и запросы | За 24 часа | Что наблюдали |
|---|---|---|
data.binom.orgHEAD четырёх файлов гео- и сетевых баз | 96 | По 24 проверки каждого файла: примерно раз в час |
private.binom.devHEAD /binom-protect/detect.tar.gz | 24 | Проверка файла компонента Protect примерно раз в час |
license-v2.binom.orgGET /license/<tracker_id> | 15 | Регулярные проверки примерно раз в 2 часа и дополнительные обращения |
license.binom.networkGET /protect/license/<tracker_id> | 5 | Проверки лицензии Protect во время работы в админке |
tinker.binom.orgGET и POST служебных API | 57 | Версии, обновления, уведомления и сообщения Observer |
metrics.binom.devPOST /api/v2/tracker | 1 | Пакет с непрозрачным содержимым; разобран ниже |
cloud.binom.orgGET /trk_v2_controller.php | 1 | Служебный запрос с параметрами act, key, type |
blockchain.info/ticker и www.floatrates.com/daily/usd.json | 4 | По 2 GET к сервисам курсов; между обращениями около 12 часов |
acme-v02.api.letsencrypt.org | 4 | Обслуживание сертификата: GET directory и renewal-info |
archive.ubuntu.com, security.ubuntu.com, motd.ubuntu.com | 10 | Репозитории и служебное сообщение Ubuntu |
В служебных запросах видны идентификатор трекера, версии и теги компонентов, данные для авторизации и роль пользователя. При установке также зафиксирован запрос GET checker.binom.lgbt/check с параметром url, который в нашем тесте содержал IP сервера.
Также зафиксированы POST tinker.binom.org/updates/observer/result/save с полями tracker_id, version, status, message, output (пустое) и POST /updates/observer/version/save с идентификатором трекера и версией.
Содержимое запроса на metrics.binom.dev
Observer сделал одну наблюдаемую попытку POST /api/v2/tracker. Полное тело запроса содержит JSON размером 3 555 байт с единственным полем body: 3 544 символа Base64. После обратного преобразования получили 2 657 байт, но прочитать их содержимое не удалось. За сутки зафиксирована одна отправка такого запроса.
Какие запросы передавал Keitaro
На сервере с Keitaro 11.4.1 за сутки зафиксировали 153 исходящих HTTP-запроса к внешним серверам: 141 при работе с TLS и 12 в незашифрованном HTTP. Из них 102 к сервисам Keitaro, 51 к репозиториям Linux, то есть источникам пакетов и обновлений.
| Адресат и запросы | За 24 часа | Что наблюдали |
|---|---|---|
license.keitaro.ioGET /ping | 48 | Проверка примерно каждые 30 минут |
license.keitaro.ioGET /v4/token | 48 | Пара к /ping; поля URL: key, machine_id, trid, version |
release-api.keitaro.ioGET /v2/releases/stable/latest | 1 | Проверка версии; поля for_version и locale |
files.keitaro.ioGET network_templates.zip и ts_templates.zip | 4 | По 2 загрузки каждого файла, с интервалом около 12 часов |
analytics-collector.keitaro.ioPOST /v1/maintenance | 1 | Поля тела data и hash; содержимое data не раскрыто |
| Репозитории и зеркала Linux | 51 | Метаданные репозиториев и обновлений ОС; не приписываются телеметрии трекера |
Что было в поле data
Полностью прочитали внешнюю структуру двух POST /v1/maintenance: до начала суточного наблюдения и во время него. Между запросами прошло около 24 часов, размеры тел 304 и 302 байта.
В обоих поле data содержит 217 символов: две части Base64, разделённые двоеточием. Назначение hash, способ преобразования и содержимое data неизвестны.
Запросы при добавлении домена
После основного теста добавили в трекеры по одному доменую. Отдельно записали сами действия и два часа после закрытия браузера.
| Этап | Binom | Keitaro |
|---|---|---|
| Работа в админке и добавление | 19 запросов: 2 служебных обращения до сохранения и 17 запросов ACME для сертификата | 3 запроса: проверка версии и определение IPv4/IPv6; все до отправки формы добавления |
| Два часа после закрытия браузера | 14 запросов: 8 проверок баз, 2 Protect, 1 лицензии и 3 версий | 10 запросов: 4 пары /ping + /v4/token и 2 определения IP |
| Домен в читаемом HTTP к разработчику | Не найден | Не найден |
| Домен при обслуживании сертификата | Найден в двух ACME POST к Let’s Encrypt | Соединения с Let’s Encrypt видны, HTTP-содержимое не декодировано |
- Binom: домен найден в POST
/acme/new-orderи/acme/finalize/…к Let’s Encrypt. Это обмен с центром сертификации. - Keitaro:во время добавления и за два часа после получили 10 TLS/SNI-записей с именем Let’s Encrypt. Они показывают начало защищённого соединения и адресата; HTTP-содержимое прочитать не удалось.
Имя домена найдено в DNS-запросах: 2 раза у Binom, 80 у Keitaro. Это технические запросы к DNS о домене, возможны повторы.
Разобрали и отдельные фрагменты с доменами. У Binom один оказался ответом админки нашему браузеру на GET /api/domains. У Keitaro три: ответы базы MariaDB с данными поля keitaro_domains.name; какая именно программа их получила, неизвестно.
Промокод CPARIP дает 30 дней триала трекера Binom без оплаты. После триала промокод CPARIPдает скидку 40% на первую оплату лицензии Binom на своём сервере.








Комментарии