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