Хакер #305. Многошаговые SQL-инъекции
Команда из четырех инженеров Google работает над новым веб-API под названием Web Environment Integrity, который позволит сайтам блокировать клиентские приложения, изменяющие их код. Помимо очевидных плюсов с точки зрения безопасности, новый API фактически позволит Google и операторам сайтов эффективно бороться с блокировщиками рекламы.
Описание проекта Web Integrity API гласит: «Пользователи часто зависят от сайтов, доверяющих клиентской среде, в которой они работают. Это доверие предполагает, что клиентская среда честна в отношении ряда аспектов собственной деятельности, обеспечивает безопасность пользовательских данных и интеллектуальной собственности, а также прозрачна в отношении того, использует ли ее человек».
Как нетрудно догадаться по этому вступлению, основная цель проекта — узнать больше о человеке по ту сторону браузера, удостовериться, что он не робот, а браузер не был модифицирован или подделан каким-либо образом.
Разработчики заявляют, что такие данные будут полезны рекламодателям для подсчета показов рекламы, помогут бороться с ботами в социальных сетях, защитят права на интеллектуальную собственность, будут противостоять читерству в веб-играх, а также повысят безопасность финансовых транзакций.
То есть, на первый взгляд, Web Environment Integrity API разрабатывается как защитное решение, чтобы сайты могли обнаруживать вредоносные модификации кода на стороне клиента и отключать вредоносных клиентов. Разработчики перечисляют несколько сценариев возможного применения нового API:
- обнаружение манипуляций в социальных сетях;
- обнаружение бот-трафика в рекламе для улучшения клиентского опыта и доступа к веб-контенту;
- обнаружение фишинговых кампаний (например, Webview во вредоносных приложениях);
- обнаружение попыток массового захвата или создания учетных записей;
- обнаружение масштабного читерства в веб-играх с поддельными клиентами;
- обнаружение скомпрометированных устройств, на которых пользовательские данные могут быть подвержены риску;
- обнаружение попыток захвата учетной записи путем подбора пароля.
При этом авторы Web Integrity API пишут, что вдохновлялись «существующими нативными сигналами аттестации, включая [Apple] App Attest и [Android] Play Integrity API».
Здесь стоит пояснить, что Play Integrity (ранее SafetyNet) представляет собой API для Android, позволяющий приложениям выяснить, было ли устройство рутировано. Root-доступ позволяет получить полный контроль над устройством, и многим разработчикам приложений такое не нравится. Поэтому после получения соответствующего сигнала от Android Integrity API, некоторые типы приложений могут просто отказаться запускаться.
Как правило, в таких случаях отказываются работать банковские приложения, Google Wallet, онлайн-игры, Snapchat, а также некоторые мультимедийные приложения (например, Netflix). Ведь считается, что root-доступ может использоваться для читерства в играх или фишинга банковских данных. Хотя root-доступ также может понабиться для настройки устройства, удаления вредоносного ПО или создания системы резервного копирования, Play Integrity такие варианты применения не рассматривает и в любом случае блокирует доступ.
Как теперь предполагают специалисты, Google стремится сделать то же самое в масштабах всего интернета.
По замыслу Google, в ходе транзакции веб-страницы сервер может потребовать от пользователя пройти тест environment attestation, прежде тот получит какие-либо данные. В этот момент браузер свяжется со сторонним сервером аттестации, и пользователь должен будет пройти определенный тест. Если проверка пройдена, пользователь получает подписанный IntegrityToken, который подтверждает целостность его среды и указывает на контент, который нужно разблокировать. Затем токен передается обратно на сервер, и если сервер доверяет компании-атестатору, то контент разблокируется, а человек наконец получает доступ к нужным данным.
Как теперь предполагают многие, если браузером в таком примере будет Chrome, и сервер аттестации так же будет принадлежать Google, то именно Google будет решать, предоставить или не предоставить человеку доступ к сайтам.
В компании уверяют, что Google не собирается использовать описанную функциональность во вред. Так, создатели Web Integrity API «твердо уверены», что их API не должен использоваться для фингерпринтинга людей, но вместе с этим они хотят получить «некий индикатор, позволяющий ограничить скорость по отношению к физическому устройству».
Также заявлено, что компания не хочет «вмешиваться в функциональность браузера, включая плагины и расширения». Таким образом разработчики дают понять, что якобы не собираются бороться с блокировщиками рекламы, хотя в компании много лет работают над скандальным Manifest V3, чья цель заключается именно в этом. А новый API можно использовать для обнаружения того, что блокировщик рекламы вмешивается в рекламный код. После этого оператор сайта будет волен попросту прекратить предоставление услуг.
Обсуждение этой темы в сети уже спровоцировало волну критики в адрес Google, а проект окрестили DRM для интернета. К примеру, разработчики, ИБ-специалисты и простые пользователи отмечают, что проект Web Integrity API намерено размещается на GitHub одного из разработчиков, а Google старается дистанцироваться от разработки, которая может буквально отравить существующие веб-стандарты, помогая компании сохранить рекламный бизнес.
Дискуссия на Issues-странице проекта на GitHub так же касается преимущественно этических аспектов происходящего, а Google обвиняют в попытке стать монополистом в очередной области и «убить» блокировщики рекламы.