Избавляемся от красной таблички Google Safebrowsing раз и навсегда

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0

Что такое Google Safe Browsing?​

Google Safebrowsing состоит из четырех частей:

  • встроенный в хром механизм определения фишинга на основе совпадения цветовых палитр и частей доменов ранее посещенных сайтов.
  • механизм проверки url-адресов и хешей файлов на совпадение по предзагруженной базе укороченных хешей, хранящихся локально.
  • механизм распаковки большинства типов ахривов, и проверки хешей исполняемых файлов и хешей их секций по локально хранящейся базе.
  • краулер, который получает адреса скачанных файлов, проходится по ним, выкачивает и передает на сервера гугла для анализа их антивирусным движком, с использованием сервиса VirusTotal.

Определение фишинга на основе совпадения цветовых палитр и частей доменов ранее посещенных сайтов​

Хром считает и хранит сумму пикселей каждого цвета на всех страницах, которые вы посещаете. Таким образом если вы копируете дизайн логин-формы или посадочной страницы один-в-один, она будет определена как фишинговая. Чтобы сбить этот механизм с толку, достаточно использовать смещение цветовой палитры через css.

Вот пример javascript-кода, который следует поместить в head-секцию сайта, внутрь <script>-тега:

document.documentElement.style.cssText="filter:hue-rotate(4deg)";

Так же хром проверяет совпадение ранее посещенных доменов и саб-доменов и их частей с теми, которые он видит в адресной строке.

Таким образом домены вида telegram.blabla.com или att.net.fuckyou.com или ziraatbank-login.oh-my-site.com будут определены как фишинговые, если пользователь посещал эти сайты ранее. Решение - использовать опечатки в словах, или не использовать брендовые слова вовсе, обходясь общими, например sso-login.zirat-office.com.

Хром обостряет механизмы проверки на фишинг, если на вашем фише содержится поле ввода пароля <input type="password"> или происходит скачивание файла. Для того чтобы обойти эту зашиту, можно использовать альтернативу input-тегу и использовать аттрибут contenteditable="true" на любом html-теге. Пример реализации превращения любого тега в текстовый инпут можно посмотреть здесь: http://jsfiddle.net/0nojd66r/

Механизм проверки url-адресов и хешей файлов на совпадение по предзагруженной базе укороченных хешей, хранящихся локально.​

Просто не используйте грязные домены.

Если ваш домен уже сгорел​

Идем на сайт https://search.google.com/search-console/welcome?utm_source=about-page

28919a79c00fb3f615d12.png


Добавляем наш домен как "доменный ресурс" - первый вариант из двух. Подтверждаем влядение доменом через запись в днс, и на появившейся странице вы увидите причину покраснения вашего домена. Устранив ее (если это возможно, например удалив фишинговую страницу, или признанный вредоносным файл), подайте заявку на перепроверку и ждите. В течение часа-двух ваш домен перестанет определяться как вредоносный.

Проверка хешей исполняемых файлов и хешей их секций по локально хранящейся базе​

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

Борьба с краулером google safe browsing​

В системах проверки рекламных объявлений google ADS и краулере GoogleSafeBrowsing используется одинаковых движок хрома с рядом модификаций. В том числе, инстанс хрома управляется через webdriver-протокол. Но полгода тому назад хром исправил последний из известных способов определять это подключение.

Фильтрация по ip не имеет смысла, т.к. краулер использует прокси, в том числе вплоть до казахстана. Таким образом общим советом будет на уровне ТДС заблокировать все страны, не интересующие вас. ДНС-запросы по прежнему будут приходить из подсетей google. Однако на данным момент фильтрация по названиям подсетей и организаций на уровне днс не реализована ни в одном известном днс-сервере.

Все адреса скачиваемых пользователями файлов отправляются в гугл для последующей их перекачки краулером. Чтобы это обойти можно использовать создание временных blob-урлов через javascript, или привязку каждого url к ip пользователя на уровне сервера (php), закодировав хеш ip-адреса в ссылке, и отдавать файл только при его совпадении.

Вот пример создания динамических url-адресов и прикрепление их к кнопке скачивания:

Код: Скопировать в буфер обмена
Код:
<script>

document.querySelectorAll('.download').forEach(function(a) {

 a.onclick = function(){

  fetch('https://url-to-download-file')

  .then(resp => resp.blob()).then(function(blob, url, a){

   a = document.createElement('a');

   a.style.display = 'none';

   a.href = window.URL.createObjectURL(blob);

   a.download = 'desired-filename.exe';

   document.body.appendChild(a);

   a.click();

  })

  return false;

 }

})

</script>

<style type="text/css">

 .download { cursor:pointer; }

</style>

этот код повесит обработчик скачивания на все кнопки, имеющие в стилях класс "download"

Блокировка скачивания файла хромом "подозрительный файл"​

Хром блокирует скачивания файла с незнакомого домена в четырех случаях:

  • скачивание файла не инициировано кликом пользователя (послать через javascript событие .click() не поможет)
  • файл скачивается с домена, который пользователь не посещал последние 24 часа.
  • файл является исполняемым, или архив с файлом содержит исполняемые файлы.
  • файл не подписан.
Этот механизм описан здесь: https://source.chromium.org/chromiu...;drc=591c5c478112625a5da995afeeb6566429c04ef9

Список файлов, которые считаются исполняемыми, можно посмотреть в исходниках хрома: https://source.chromium.org/chromiu...;drc=af17ad3f07c1d8a24381eb7669bec0c2ffb86521

Хром не валидирует подпись файла, т.к. это требовательно к сетевому трафику. По-этому важно прицепить к файлу любую подпись, спертую у любого другого белого файла или инсталлера, с помощью утилиты SigThief, например. Она бесплатна и доступна на GitHub: https://github.com/secretsquirrel/SigThief

У хрома есть список доверенных доменов, который достоверно мне не известен. Однако к нему точно относятся сервисы googleDrive и microsoft OneDrive.

Загрузив файл на OneDrive и сделав его "доступным для всех" можно получить прямую ссылку на скачивание файла через онлайн-сервисы, например https://metadataconsulting.blogspot.com/2019/03/OneDrive-2019-Direct-File-Download-URL-Maker.html

Это позволит вам отдавать файл напрямую, при условии, что он подписан. Этот url-адрес так же можно обернуть url-шортнером, например https://t.ly/

Так же имя файла не должно содержать брендовые слова, которые содержались в именах популярных и ранее известных файлов, например слова telegram, firefox и им подобные. Используйте не относящиеся к теме или общие слова, такие как Installer, омонимы или числа.

Возраст домена​

Возраст домена - один из решающих факторов в бальной системе эвристики google safe browsing. Не используйте новые домены - они будут гореть как спички. Используйте или технику domain shadowing, или используйте домены с отлежкой хотя бы 7 дней.

Коппипаст из бухты 1в1
на форуме есть похожая тема но там более водяная часть
 
Сверху Снизу