Робота з хостами¶
Вибір cloud регіону
Не забудьте вказати правильний cloud регіон при підключенні до API: us-1, us-2, eu-1, us-gov-1. За замовчуванням використовується us-1.
Пошук хостів за платформою¶
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