Integracja z SIEM
Przesyłaj strumieniowo alerty i logi z 1Security do systemów Splunk, Microsoft Sentinel lub dowolnego SIEM za pomocą cyklicznego odpytywania REST.
Ten przewodnik pokazuje, jak przesyłać alerty monitoringu, dzienniki audytu oraz alerty bezpieczeństwa z 1Security do Twojego systemu SIEM za pomocą API REST. Model przesyłania oparty jest na mechanizmie pull-based: Twój system SIEM odpytuje nasze API zgodnie z harmonogramem i przechowuje kursor (znacznik), dzięki czemu każde odpytanie pobiera tylko nowe dane.
1. Utwórz klucz API
Na panelu nawigacyjnym otwórz Ustawienia → Klucze API i utwórz klucz z uprawnieniami,
których potrzebujesz (logs:read, monitoring-alerts:read, security-alerts:read).
Skopiuj sekretny ciąg znaków zaczynający się od 1sec_live_… — jest on wyświetlany tylko raz.
Zweryfikuj go:
curl -H "Authorization: Bearer $ONESEC_API_KEY" \
https://api.1security.ai/api/v1/ping2. Wzorzec odpytywania przyrostowego
Nie pobieraj całej historii przy każdym uruchomieniu. Zamiast tego zastosuj okno czasowe oparte o czas ingestii (przyjęcia) i zachowaj stan "znacznika czasu" (watermark) pomiędzy odpytaniami.
Zapisz znacznik czasu (watermark)
Zachowaj czas ostatniego udanego odpytania (zacznij od "teraz minus kilka minut").
Pobierz okno danych
Odpytuj tylko o zdarzenia przetworzone po znaczniku czasu. Dla punktu końcowego /logs używaj
parametru discoveredFrom (czas ingestii w 1Security) zamiast parametru from (czas wystąpienia zdarzenia w środowisku) — opóźnione
zdarzenia z M365 są dzięki temu wykazywane po ich fizycznym przyjęciu przez system i nic Ci nie umknie.
curl -H "Authorization: Bearer $ONESEC_API_KEY" \
"https://api.1security.ai/api/v1/logs?discoveredFrom=2026-06-05T09:00:00Z&limit=1000"Przejdź przez strony (Paginacja)
Śledź wartość pagination.nextCursor jako argument ?cursor= do momentu, aż flaga hasMore zwróci wartość false.
Przesuń znacznik i zdeduplikuj
Zaktualizuj znacznik na obecny czas i zastosuj deduplikację w SIEM, używając atrybutu id
jako klucza zdarzenia. Dzięki temu nachodzące na siebie okna odpytywania nie spowodują podwójnego indeksowania.
Zawsze minimalnie nadpisuj okna odpytywania (pytaj z marginesem minuty lub dwóch)
i polegaj na deduplikacji atrybutu id, zamiast precyzyjnych i ryzykownych kursorów brzegowych.
To najbezpieczniejsza metoda na zagwarantowanie braku luk w logach po restarcie.
3. Integracja z Twoim SIEM
Skorzystaj z wtyczki REST API Modular Input (np. za pomocą Splunk Add-on Builder lub modułu rest_ta):
- Punkt końcowy (Endpoint):
https://api.1security.ai/api/v1/security-alerts - Nagłówek uwierzytelniania:
Authorization: Bearer <twój klucz> - Handler odpowiedzi: zaczytuj atrybuty w liście tablicy
data[], czas zdarzenia bierz zfirstActivityDateTime, a do deduplikacji używaj kluczaid. - Harmonogram: pobieraj co 1-5 minut i zachowuj parametry
discoveredFrom/fromjako punkt kontrolny.
Użyj wtyczki bezkodowej Codeless Connector (lub Logic App), która wyśle żądanie GET
na każdy endpoint według harmonogramu, przejdzie przez strony uzywając pagination.nextCursor
i prześle treść tablicy data[] do logów z poziomu Custom Table API korzystając z
Data Collection Endpoint. Stan znacznika przechowuj w konfiguracji konektora.
Szkic minimalistycznego skryptu poller'a dla zadań Cron:
#!/usr/bin/env bash
SINCE=$(cat .watermark 2>/dev/null || date -u -d '-5 min' +%FT%TZ)
CURSOR=""
while :; do
RESP=$(curl -s -H "Authorization: Bearer $ONESEC_API_KEY" \
"https://api.1security.ai/api/v1/logs?discoveredFrom=$SINCE&limit=1000&cursor=$CURSOR")
echo "$RESP" | jq -c '.data[]' >> /var/log/1security-logs.ndjson
CURSOR=$(echo "$RESP" | jq -r '.pagination.nextCursor // empty')
[ -z "$CURSOR" ] && break
done
date -u +%FT%TZ > .watermark4. Zarządzanie limitami zapytań (Rate Limits)
Pozostań poniżej 600 zapytań na minutę w obrębie każdego klucza. Jeśli otrzymasz błąd 429, zastosuj
się do zawartości nagłówka Retry-After. Dla zdecydowanej większości instalacji regularne odpytywanie endpointa
np. raz na minutę przy zastosowaniu ogromnych wskaźników parametru limit z pewnością nie przebije tego budżetu.
Ściąga do mapowania kluczowych pól
| Cel użycia | Dzienniki aktywności (Logs) | Alerty bezpieczeństwa (Security alerts) |
|---|---|---|
| Czas zdarzenia | occurredAt | firstActivityDateTime |
| Klucz deduplikacji | id | id |
| Wagą / Krytyczność | severity | severity |
| Aktor / Działacz | actorName / actorIp | actorDisplayName |
| Naruszony zasób | resourceName / resourceType | threatDisplayName |
Przejdź do pełnej Dokumentacji Referencyjnej API, aby przeanalizować wszystkie dostępne atrybuty.