Перейти до змісту

Завантаження lookup файлів в NGSIEM

Вибір cloud регіону

Не забудьте вказати правильний cloud регіону при підключенні до API: us-1, us-2, eu-1, us-gov-1. За замовчуванням використовується us-1.

falcon = NGSIEM(base_url="https://api.eu-1.crowdstrike.com")

Репозиторії NGSIEM

CrowdStrike Falcon NGSIEM підтримує різні репозиторії залежно від типу даних та підписки:

Назва в UI Опис Необхідна підписка Значення параметру
All Всі дані подій від CrowdStrike та третіх сторін N/A search-all або all
Falcon Дані endpoint подій та sensor events Falcon Insight XDR investigate_view або falcon
Third Party Дані зібрані з третіх джерел Falcon LogScale third-party
IT Automation Дані зібрані Falcon for IT модулем Falcon for IT falcon_for_it_view
Forensics Triage дані від Falcon Forensics Falcon Forensics forensics_view або forensics
Parser Repository Сховище парсерів Falcon Next-Gen SIEM 3pi_parsers

Рекомендація для кастомних lookup файлів

Для завантаження власних lookup файлів рекомендується використовувати репозиторії all (за замовчуванням) або third-party.

Завантаження lookup файлу

from falconpy import NGSIEM

falcon = NGSIEM(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET"
)

# Завантажити lookup файл до репозиторію
response = falcon.upload_file(
    lookup_file="threat_intel.csv",
    repository="all"
)

if response['status_code'] == 200:
    print("✓ Lookup файл завантажено успішно")
else:
    print(f"✗ Помилка: {response['body']}")

Отримання lookup файлу

# Завантажити lookup файл з репозиторію
response = falcon.get_file(
    repository="all",
    filename="threat_intel.csv"
)

if response['status_code'] == 200:
    # Зберегти файл локально
    with open('downloaded_lookup.csv', 'wb') as f:
        f.write(response['body'])
    print("✓ Lookup файл завантажено")

Формат lookup файлів

Lookup файли зазвичай є CSV файлами з заголовками.

Приклад: threat_intel.csv

indicator,type,severity,description
evil.com,domain,high,C2 server
192.0.2.1,ipv4,critical,Known malicious IP
badfile.exe,filename,medium,Suspicious executable

Приклад: asset_inventory.csv

hostname,ip_address,owner,criticality
web-prod-01,10.0.1.10,IT Team,high
db-server-01,10.0.2.20,Database Team,critical
workstation-05,10.0.3.50,Sales,low

Створення та завантаження lookup файлу

import csv
from falconpy import NGSIEM

falcon = NGSIEM(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET"
)

# Створити lookup файл з даними
lookup_data = [
    {'ip': '192.168.1.1', 'category': 'internal', 'department': 'IT'},
    {'ip': '192.168.1.2', 'category': 'internal', 'department': 'HR'},
    {'ip': '10.0.0.1', 'category': 'dmz', 'department': 'Web'},
]

# Записати в CSV
filename = 'ip_classification.csv'
with open(filename, 'w', newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=['ip', 'category', 'department'])
    writer.writeheader()
    writer.writerows(lookup_data)

# Завантажити до NGSIEM
response = falcon.upload_file(
    lookup_file=filename,
    repository="all"  # або "third-party"
)

if response['status_code'] == 200:
    print(f"✓ Lookup файл {filename} завантажено до репозиторію")

Обробка помилок

from falconpy import NGSIEM

falcon = NGSIEM(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET"
)

try:
    response = falcon.upload_file(
        lookup_file='lookup.csv',
        repository="all"
    )

    if response['status_code'] != 200:
        print(f"✗ Помилка завантаження: {response['body']}")
        if 'errors' in response['body']:
            for error in response['body']['errors']:
                print(f"  - {error.get('message', 'Unknown error')}")
    else:
        print("✓ Lookup файл завантажено успішно")

except FileNotFoundError:
    print("✗ Файл не знайдено")
except Exception as e:
    print(f"✗ Непередбачена помилка: {str(e)}")

Документація

Повна документація NGSIEM: https://www.falconpy.io/Service-Collections/NGSIEM.html