Каждый корпоративный домен — это точка входа для злоумышленников. Просроченный SSL, утечка данных партнера, внезапно оживший киберсквоттинг-домен... Эти риски можно выявить до атаки, используя OSINT и немного автоматизации. В этой статье я покажу, как создать бесплатный мониторинг безопасности ваших доменов и хостов прямо в Google Таблицах за 15 минут.

Шаг 1: Базовый каркас

Откройте браузер и введите sheets.new. Создайте новую таблицу.

Назовите лист (например, "Domain Security Dashboard").

Создайте столбцы: Домен, Статус, WHOIS, VirusTotal, Утечки, Комментарий и так далее.

Шаг 2: Проверка доступности 

Ключевая функция – знать, живой ли ресурс. В меню Расширения > Apps Script вставьте и сохраните код:

function Status(url) {

  try {

    var response = UrlFetchApp.fetch(url, {

      'muteHttpExceptions': true 

    });

    var statusCode = response.getResponseCode();

    return "Status: " + statusCode + " " + (statusCode == 200 ? "OK" : "Not OK");

  } catch (e) {

    return "Error: " + e.message;

  }

}

Теперь в столбце Статус введите =Status(A2), где A2 – ячейка с доменом (включая http:// или https://). 

Шаг 3: Регистрационные данные

Используем jsonwhoisapi.com (бесплатный тариф обычно есть). Получите API-ключ.

Скрипт 1: Получение WHOIS данных (в Apps Script)

function Whois(domain) {

  var apiKey = "ххххххххххххххххххххххх";

  var url = "https://jsonwhoisapi.com/api/v1/whois?identifier=" + domain;

  var options = {

    "method": "get",

    "headers": {

      "Authorization": "Token " + apiKey,

      "muteHttpExceptions": true

    }

  };

  try {

    var response = UrlFetchApp.fetch(url, options);

    var result = JSON.parse(response.getContentText());

    Logger.log(result);

    return JSON.stringify(result); 

  } catch (e) {

    return "Error: " + e.message;

  }

}

Скрипт 2: Извлечение даты окончания регистрации

function expires(input) {

  var data = JSON.parse(input);

  expires=data.expires

  return expires;

}

В столбце WHOIS (Expiry) введите =Expires(A2), где A2 – так же ячейка с именем домена. 

Дополнительно отформатируйте ячейку как "Дата". Добавьте условное форматирование (например, красный цвет, если срок < 30 дней).

Аналогичными скриптами вы сможете вытащить из JSON-ответа jsonwhoisapi.com такие параметры домена или IP, как, например, дата регистрации и наименование регистратора. 

Шаг 4: Оценка репутации

Зарегистрируйтесь на virustotal.com для бесплатного API-ключа.

Скрипт для VirusTotal

function VirusTotal(domain) {

  var apiKey = "ххххххххххххххххххххххх";

  var url = "https://www.virustotal.com/vtapi/v2/domain/report?apikey=" + apiKey + "&domain=" + domain;

  try {

    var response = UrlFetchApp.fetch(url);

    var result = JSON.parse(response.getContentText());

    var maliciousURLs = result.detected_urls ? result.detected_urls.length : 0;

    var undetectedURLs = result.undetected_urls ? result.undetected_urls.length : 0;

    return "Malicious URLs: " + maliciousURLs + ", Undetected URLs: " + undetectedURLs;

  } catch (e) {

    return "Error: " + e.message;

  }

}

В столбце VirusTotal введите =VirusTotal(A2). Условное форматирование: красный при maliciousURLs > 0. 

Альтернативы VirusTotal, которые легко интегрируются по аналогии: Google Web Risk, Scanii, Metadefender, Urlscan, SUCURI или Quttera.

Шаг 5: Поиск утечек 

Используем открытый API haveibeenpwned.com (без ключа).

Скрипт для HIBP

function Pwned(domain) {

  var url = "https://haveibeenpwned.com/api/v2/breaches?domain=" + domain;

  try {

    var response = UrlFetchApp.fetch(url);

    var result = JSON.parse(response.getContentText());

    if (result.length > 0) {

      var breachNames = result.map(function(breach) {

        return breach.Name;

      }).join(", ");

      return "Breached in: " + breachNames;

    } else {

      return "No breaches found";

    }

  } catch (e) {

    return "Error: " + e.message;

  }

}

Для использования в столбце Утечки (HIBP) введите =Pwned(A2).

Аналогично HIBP, используйте API Intelligence X для поиска домена в утечках.

Итак! Ваш дашборд готов!

Как это использовать в OSINT-расследованиях и защите

Мониторинг своих активов

Регулярно проверяйте все корпоративные домены и субдомены. Проверяйте домены поставщиков и партнеров перед интеграцией.

Борьба с киберсквоттингом

Добавьте в таблицу домены, похожие на ваш основной. Вы можете их скачать из таких сервисов, как dnstwister.report, dnstwist.it и haveibeensquatted.com. Мониторьте их активность и отслеживайте репутацию. Внезапно оживший похожий домен – красный флаг!

Контроль за сроками регистрации

Предотвращайте потерю домена из-за просрочки платежа.

Раннее обнаружение компрометации

Появление домена в HIBP или подозрительные находки VirusTotal требуют немедленного расследования.

Подведем итоги

Этот простой, но мощный инструмент на базе Google Таблиц превращает рутинный OSINT-мониторинг безопасности доменов в автоматизированный процесс. Вы получаете централизованный дашборд для отслеживания критически важных параметров: доступность, срок регистрации, репутация, наличие в утечках.

Это не требует серьезных затрат и программирования, но существенно повышает вашу осведомленность о рисках, связанных с цифровыми активами вашей компании и ее окружения. Начните с мониторинга ключевых доменов сегодня и постепенно расширяйте функциональность таблицы под свои задачи!

Комментарии (0)