Ваш личный мини-SOC из Google Таблиц: Как мониторить безопасность доменов на автопилоте?

от автора

Каждый корпоративный домен — это точка входа для злоумышленников. Просроченный 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-мониторинг безопасности доменов в автоматизированный процесс. Вы получаете централизованный дашборд для отслеживания критически важных параметров: доступность, срок регистрации, репутация, наличие в утечках.

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


ссылка на оригинал статьи https://habr.com/ru/articles/939830/