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

Робота з хостами

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

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

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

Пошук хостів за платформою

from falconpy import Hosts

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

# Знайти Windows хости
response = falcon.query_devices_by_filter(
    filter="platform_name:'Windows'",
    limit=100
)

device_ids = response['body']['resources']
print(f"Знайдено {len(device_ids)} хостів")

Отримання деталей хостів

# Отримати детальну інформацію
details = falcon.get_device_details(ids=device_ids)

for device in details['body']['resources']:
    print(f"""
    Hostname: {device['hostname']}
    IP: {device.get('local_ip', 'N/A')}
    OS: {device['os_version']}
    Agent: {device['agent_version']}
    Статус: {device['status']}
    """)

Ізоляція хоста

# Ізолювати хост від мережі
response = falcon.perform_action(
    action_name="contain",
    ids=["device_id"]
)

if response['status_code'] == 202:
    print("✓ Хост ізольовано")

# Зняти ізоляцію
response = falcon.perform_action(
    action_name="lift_containment",
    ids=["device_id"]
)

if response['status_code'] == 202:
    print("✓ Ізоляцію знято")

Приклади FQL фільтрів

# Знайти Linux хости з конкретним hostname
filter="platform_name:'Linux'+hostname:*'*web*'"

# Хости зі старою версією агента
filter="agent_version:<'6.40'"

# Ізольовані хости
filter="status:'containment'"

# Комбінований фільтр
filter="platform_name:'Windows'+last_seen:>'2024-01-01T00:00:00Z'"

Знайти ізольовані хости

# Знайти всі ізольовані хости
contained = falcon.query_devices_by_filter(
    filter="status:'containment'",
    limit=500
)

device_ids = contained['body']['resources']

if device_ids:
    details = falcon.get_device_details(ids=device_ids)

    for device in details['body']['resources']:
        print(f"Ізольований: {device['hostname']} ({device.get('local_ip', 'N/A')})")

Масова ізоляція хостів

# Знайти хости з конкретним тегом
suspicious = falcon.query_devices_by_filter(
    filter="tags:'Suspicious'",
    limit=100
)

device_ids = suspicious['body']['resources']

if device_ids:
    # Ізолювати всі знайдені хости
    result = falcon.perform_action(
        action_name="contain",
        ids=device_ids
    )

    if result['status_code'] == 202:
        print(f"✓ Ізольовано {len(device_ids)} хостів")

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

response = falcon.query_devices_by_filter(
    filter="platform_name:'Windows'"
)

if response['status_code'] != 200:
    print(f"✗ Помилка: {response['status_code']}")
    print(f"Деталі: {response['body']['errors']}")
else:
    device_ids = response['body']['resources']
    print(f"✓ Знайдено {len(device_ids)} хостів")

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

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