← Cloudflare Radar / radar / investigate
URL Scanner
Чтобы лучше понимать использование интернета по всему миру, используйте URL Scanner от Cloudflare. С его помощью можно изучить подробные сведения о домене, IP-адресе, URL или ASN. URL Scanner доступен в разделе Security Center панели управления Cloudflare, Cloudflare Radar ↗, и Cloudflare API.
Использование API
Чтобы выполнить первое сканирование URL через API, необходимо получить специальный для URL Scanner API-токен. Создайте Custom Token с Аккаунт > URL Scanner в Разрешения группу и выберите Изменить в качестве уровня доступа.
Получив токен и зная свой account_id, вы готовы сделать свой первый запрос к API по адресу https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/.
Отправка URL для сканирования
Чтобы отправить URL на сканирование, достаточно указать только сам URL для сканирования в POST тело запроса:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/scan" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"url": "https://www.example.com"
}'По умолчанию отчет будет содержать Public уровень видимости, что означает, что запись появится в последние сканирования ↗ списке и в результатах поиска. Также будет включен один снимок экрана в разрешении для настольных устройств.
Успешный ответ будет иметь код состояния 200 и будет выглядеть примерно так:
{
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"api": "https://api.cloudflare.com/client/v4/accounts/<accountId>/urlscanner/v2/result/095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"visibility": "public",
"url": "https://www.example.com",
"message": "Submission successful"
}Одновременно можно отправить до 100 URL-адресов через API ↗.
uuid свойство в приведенном выше ответе идентифицирует скан и понадобится при получении отчета о скане.
Отправка произвольного сканирования URL
Ниже приведён пример тела запроса с некоторыми пользовательскими параметрами конфигурации:
{
"url": "https://example.com",
"screenshotsResolutions": [
"desktop", "mobile", "tablet"
],
"customagent": "XXX-my-user-agent",
"referer": "example",
"customHeaders": {
"Authorization": "xxx-token"
},
"visibility": "Unlisted"
}На изображении выше уровень видимости задан как Unlisted, что означает, что отчёт сканирования не будет включён в последние сканирования ↗ списке, ни в результатах поиска. По сути, доступ к нему будет только у пользователей, которые знают ID скана.
Также будет сделано три снимка экрана веб-страницы, по одному для каждого целевого типа устройства. Поле User-Agent ↗ будет установлен как "XXX-my-user-agent". Обратите внимание, что вы можете задать любой пользовательский HTTP-заголовок, включая Авторизация ↗.
Получение отчёта о сканировании
После отправки запроса на сканирование URL текущий прогресс можно проверить, вызвав https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/result/{scan_id}. scan_id будет uuid значение, возвращённое в предыдущем ответе.
Пока сканирование выполняется, код состояния HTTP будет 404; после завершения оно будет 200. Cloudflare рекомендует опрашивать каждые 10-30 секунд.
В числе прочего ответ будет включать следующие основные свойства:
task- Информация об отправке скана.page- Информация об основном ответе, например IP-адрес, ASN, сервер и история перенаправлений страницы.data.requests- Цепочки запросов, задействованные при загрузке страницы.data.cookies- Файлы cookie, установленные страницей.data.globals- Нестандартные глобальные переменные JavaScript.data.console- Логи консоли.data.performance- Тайминги, предоставленныеPerformanceNavigationTiming↗ интерфейс.meta- Результаты работы мета-обработчиков, включая обнаруженные технологии, категории домена и URL, рейтинг, данные геолокации и прочее.lists.ips- IP-адреса, к которым выполнялись обращения.lists.asns- номера AS, к которым были обращения.lists.domains- Хосты, к которым выполнялись обращения, включаяdnsинформация о записи.lists.hashes- Хеши тел ответов, структуры HTML главной страницы, скриншотов и фавиконок.lists.certificates- TLS-сертификаты HTTP-ответов.verdicts- Заключения о вредоносном содержимом.
Вот несколько примеров более конкретных свойств:
task.uuid- Идентификатор скана.task.url- Отправленный URL скана. Может отличаться от конечного URL (page.url) если есть HTTP-редиректы.task.success- Был ли скан успешным. Сканирование может завершиться ошибкой по разным причинам, включая ошибки DNS.task.status- Текущий статус скана, например,Queued,InProgress, илиFinished.meta.processors.domainCategories- категории Cloudflare для основного хоста, к которому выполнялось обращение.meta.processors.phishing- Какой тип фишинга был обнаружен, если он был.meta.processors.radarRank- Cloudflare Radar Rank ↗ основного хоста, к которому было обращение.meta.processors.wappa- Тип технологий, обнаруженных на сайте, с помощью Wappalyzer ↗.page.url- URL основного запроса после всех HTTP-перенаправлений.page.country- Название страны по данным геолокации, связанным с основным IP-адресом, к которому выполнялось обращение.page.history- История главной страницы, включая все HTTP-перенаправления.page.screenshot- Различные хеши главного скриншота. Можно использовать для поиска сайтов с похожими скриншотами.page.domStructHash- Хеш структуры HTML. Используйте его для поиска сайтов с похожей структурой.page.favicon.hash- MD5-хеш фавиконки.verdicts.overall.malicious- Был ли сайт признан вредоносным на момент сканирования. Проверьте остальные свойства для каждой подсистемы(подсистем), чтобы узнать об обнаруженных конкретных угрозах.
Получение результатов сканирования URL Документация конечной точки API содержит полную схему ответа.
Чтобы получить снимки экрана или полный журнал сети см. документацию по соответствующим конечным точкам.
Поиск сканирований
Используйте подмножество синтаксиса ElasticSearch Query для фильтрации сканирований. Результаты поиска будут включать Public сканов и ваших собственных Unlisted сканов.
Чтобы найти сканирования для хоста google.com, используйте параметр запроса q=page.domain:"google.com":
curl 'https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/search?q=page.domain:google.com' \
--header "Authorization: Bearer <API_TOKEN>"Если же вы хотите найти сканирования, в которых был выполнен хотя бы один запрос к хосту cdnjs.cloudflare.com, например сайты, использующие JavaScript-библиотеку, размещённую на cdnjs.cloudflare.com, используйте параметр запроса hostname=cdnjs.cloudflare.com:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/urlscanner/v2/search?q=domain:cdnjs.cloudflare.com" \
--header "Authorization: Bearer <API_TOKEN>"Другие примеры запросов:
task.url:"https://google.com" OR task.url:"https://www.google.com": поиск сканирований, у которых отправленный URL совпадает с одним из следующих:google.comилиwww.google.com. URL-адреса должны быть заключены в кавычки.page.url:"https://google.com" AND NOT task.url:"https://google.com": поиск сканирований по адресуgoogle.comчей отправленный URL-адрес не былgoogle.com(то есть сайтов, которые перенаправляли на google.com).page.domain:microsoft AND verdicts.malicious:true AND NOT page.domain:microsoft.com: вредоносные сканирования, у которых имя хоста начинается сmicrosoft. Будет соответствовать доменам видаmicrosoft.phish.com.apikey:me AND date:[2024-01 TO 2024-10]: ваши сканирования с января 2024 года по октябрь 2024 года.page.domain:(blogspot OR www.blogspot): поиск сканирований, у которых основной домен начинается сblogspotили сwww.blogspot.date:>now-7d AND path:okta-sign-in.min.js: сканирования за последние семь дней, у которых путь запроса оканчивается наokta-sign-in.min.js.page.asn:AS24940 AND hash:-557369673: веб-сайты, размещенные в AS24940, откуда был получен ресурс с указанным хешем.hash:8f662c2ce9472ba8d03bfeb8cdae112dbc0426f99da01c5d70c7eb4afd5893ca: используя хеш по адресуpage.domStructHashпоиск других сканов с таким же хешем структуры HTML.
Перейдите в Поиск сканирований URL в документации API, чтобы увидеть полный список доступных параметров.
Security Center
Также можно выполнить поиск в Security Center:
-
На панели управления Cloudflare перейдите к разделу Расследовать страницу.
Перейдите в Расследовать ↗ -
Введите запрос и выберите Поиск.
Вы можете сканировать URL-адрес с учетом местоположения. Это позволяет проанализировать, как сайт показывает разный контент в зависимости от местоположения, и помогает выявлять и изучать вредоносную активность, характерную для конкретного региона.
Чтобы просканировать URL с учетом вашего географического положения:
- Введите URL-адрес.
- Перейдите в Расположение > Выберите страну, из которой будет выполняться сканирование URL.
- Выберите Сканировать сейчас.
Вы также можете использовать API ↗ чтобы просканировать URL-адрес из определённого места.
В Security Center можно получить предварительно отфильтрованную информацию по:
- Похожий скриншот
- Совпадающий favicon
- Похожий favicon
- Похожая структура HTML
- Совпадающий ASN
- Совпадающий IP-адрес
- Совпадающий домен
- Совпадающий итоговый URL (после всех перенаправлений)