Каждый день десятки одинаковых алертов в SIEM. Постоянное копирование IP-адресов, хешей, доменов для их проверки вручную через браузер. Эта монотонная работа не только отнимает время, но и приводит к усталости, ошибкам и профессиональному выгоранию. Но выход есть. В этой статье мы покажем, как с помощью простых скриптов и бесплатных инструментов можно автоматизировать до 80% рутинных задач, освободив время для настоящей аналитики.
Враг номер один — рутина
Типичный день многих аналитиков выглядит так:
- Утро: 50 новых алертов. 45 из них — однотипные: «Подозрительный исходящий трафик», «Доступ к домену с дурной репутацией».
- День: Ручное копирование IP из логов, вставка их в 5-6 вкладок браузера (VirusTotal, AbuseIPDB, AlienVault OTX и т.д.).
- Вечер: Разбор полетов и составление отчетов вручную.
Результат: 80% времени уходит на сбор информации, и только 20% — на ее анализ. Это прямая дорога к выгоранию.
Сила скриптов — автоматизируем проверку IP за 5 минут
Вам не нужно быть senior-разработчиком, чтобы написать простой скрипт-помощник. Рассмотрим на примере Python.Задача: Автоматически проверить список IP-адресов через API VirusTotal и AbuseIPDB, получить сводный отчет.
Шаг 1: Подготовка
Получите бесплатные API-ключи на
Ссылка скрыта от гостей
и
Ссылка скрыта от гостей
. Создайте текстовый файл ips.txt и добавьте в него несколько адресов для проверки (по одному на строку).Шаг 2: Код нашего автоматизатора
Код:
import requests
import time
import pandas as pd
VT_API_KEY = 'YOUR_VT_KEY'
ABUSEIPDB_API_KEY = 'YOUR_ABUSE_KEY'
def read_ips(filename):
with open(filename, 'r') as f:
return [line.strip() for line in f if line.strip()]
def check_vt(ip):
url = f'https://www.virustotal.com/api/v3/ip_addresses/{ip}'
headers = {'x-apikey': VT_API_KEY}
try:
response = requests.get(url, headers=headers)
data = response.json()
stats = data['data']['attributes']['last_analysis_stats']
return {'malicious': stats['malicious'], 'suspicious': stats['suspicious']}
except:
return {'malicious': 'Error', 'suspicious': 'Error'}
def check_abuse(ip):
url = 'https://api.abuseipdb.com/api/v2/check'
headers = {'Key': ABUSEIPDB_API_KEY, 'Accept': 'application/json'}
params = {'ipAddress': ip, 'maxAgeInDays': 90}
try:
response = requests.get(url, headers=headers, params=params)
data = response.json()
return {'abuse_score': data['data']['abuseConfidenceScore'], 'total_reports': data['data']['totalReports']}
except:
return {'abuse_score': 'Error', 'total_reports': 'Error'}
ips = read_ips('ips.txt')
results = []
for ip in ips:
print(f"Проверяю {ip}...")
vt_result = check_vt(ip)
abuse_result = check_abuse(ip)
results.append({
'IP Address': ip,
'VT Malicious': vt_result['malicious'],
'VT Suspicious': vt_result['suspicious'],
'Abuse Score %': abuse_result['abuse_score'],
'Total Reports': abuse_result['total_reports']
})
time.sleep(20)
df = pd.DataFrame(results)
print(df)
df.to_csv('threat_intel_report.csv', index=False)
print("\n[+] Отчет сохранен в 'threat_intel_report.csv'")
Шаг 3: Результат работы
Скрипт создает файл threat_intel_report.csv, который можно открыть в Excel.
Инструменты и дальнейший путь
Такой скрипт — это ваш личный микро-SOAR. Дальше его можно развивать:- Интеграция с SIEM: Научить скрипт напрямую опрашивать API вашей SIEM (Splunk, Elasticsearch) и автоматически выбирать IP из последних алертов.
- Telegram-бот: Сделать так, чтобы скрипт присылал вам готовый отчет в Telegram, как только запустится.
- Визуальные SOAR-платформы (TheHive, Cortex XSOAR, Splunk Phantom): Если появится бюджет, вы уже будете понимать логику автоматизации и сможете легко перейти на профессиональные инструменты.
Экономия времени, которая впечатлит даже руководство
Давайте посчитаем:- Было: На ручную проверку 20 IP уходит ~3 минуты на IP. Итого: 60 минут в день.
- Стало: Подготовка файла и запуск скрипта — 5 минут в день.
- Экономия в день: 55 минут.
- Экономия в месяц (22 рабочих дня): 55 мин * 22 = 1210 минут или более 20 часов!
- Изучить новые векторы атак и инструменты хакеров.
- Провести глубокий расследование одного сложного инцидента.
- Написать еще скриптов для автоматизации другой рутины.
- Просто не выгорать и сохранять интерес к работе.