Статья Скрипты против выгорания: как автоматизировать рутину в SOC и остаться в здравом уме

SC1.webp
Введение
Каждый день десятки одинаковых алертов в SIEM. Постоянное копирование IP-адресов, хешей, доменов для их проверки вручную через браузер. Эта монотонная работа не только отнимает время, но и приводит к усталости, ошибкам и профессиональному выгоранию. Но выход есть. В этой статье мы покажем, как с помощью простых скриптов и бесплатных инструментов можно автоматизировать до 80% рутинных задач, освободив время для настоящей аналитики.

Враг номер один — рутина

Типичный день многих аналитиков выглядит так:

  • Утро: 50 новых алертов. 45 из них — однотипные: «Подозрительный исходящий трафик», «Доступ к домену с дурной репутацией».
  • День: Ручное копирование IP из логов, вставка их в 5-6 вкладок браузера (VirusTotal, AbuseIPDB, AlienVault OTX и т.д.).
  • Вечер: Разбор полетов и составление отчетов вручную.

Результат: 80% времени уходит на сбор информации, и только 20% — на ее анализ. Это прямая дорога к выгоранию.

SM1.webp

Сила скриптов — автоматизируем проверку IP за 5 минут

Вам не нужно быть senior-разработчиком, чтобы написать простой скрипт-помощник. Рассмотрим на примере Python.

Задача: Автоматически проверить список IP-адресов через API VirusTotal и AbuseIPDB, получить сводный отчет.

Шаг 1: Подготовка

Получите бесплатные API-ключи на и . Создайте текстовый файл ips.txt и добавьте в него несколько адресов для проверки (по одному на строку).

VS1.webp

Шаг 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'")

PY1.webp

Шаг 3: Результат работы

Скрипт создает файл threat_intel_report.csv, который можно открыть в Excel.

EX1.webp

Инструменты и дальнейший путь

Такой скрипт — это ваш личный микро-SOAR. Дальше его можно развивать:
  1. Интеграция с SIEM: Научить скрипт напрямую опрашивать API вашей SIEM (Splunk, Elasticsearch) и автоматически выбирать IP из последних алертов.
  2. Telegram-бот: Сделать так, чтобы скрипт присылал вам готовый отчет в Telegram, как только запустится.
  3. Визуальные SOAR-платформы (TheHive, Cortex XSOAR, Splunk Phantom): Если появится бюджет, вы уже будете понимать логику автоматизации и сможете легко перейти на профессиональные инструменты.

EL1.webp

Экономия времени, которая впечатлит даже руководство

Давайте посчитаем:
  • Было: На ручную проверку 20 IP уходит ~3 минуты на IP. Итого: 60 минут в день.
  • Стало: Подготовка файла и запуск скрипта — 5 минут в день.
  • Экономия в день: 55 минут.
  • Экономия в месяц (22 рабочих дня): 55 мин * 22 = 1210 минут или более 20 часов!
Что можно делать с сохраненными 20 часами в месяц?
  • Изучить новые векторы атак и инструменты хакеров.
  • Провести глубокий расследование одного сложного инцидента.
  • Написать еще скриптов для автоматизации другой рутины.
  • Просто не выгорать и сохранять интерес к работе.

Заключение

Не пытайтесь автоматизировать всё и сразу. Выберите одну самую надоевшую задачу на этой неделе. Потратьте час на написание скрипта для нее. Через месяц у вас будет несколько таких скриптов, а через год вы с удивлением заметите, что почти не занимаетесь рутинным копированием и вставкой.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы