Documentație
Reguli și filtre pentru fluxul de date
Serviciul Data Transformation Services (DTS) al CYBERQUEST procesează datele brute despre evenimente prin transformări JavaScript personalizate, extrăgând câmpuri relevante din…
Introducere în DTS
Serviciul Data Transformation Services (DTS) al CYBERQUEST procesează datele brute despre evenimente prin transformări JavaScript personalizate, extrăgând câmpuri relevante din jurnale nestructurate. De exemplu, poate împărți intrările de jurnal combinate în identificatori de utilizator distincți, marcaje temporale și tipuri de acțiuni pentru analiză.
Data Transformation Services extinde și amplifică capabilitățile native ale CYBERQUEST cu logică personalizată pentru a îmbogăți și completa și mai mult cazurile de utilizare:
poate ajuta la pregătirea datelor pentru un acces ușor în viitor, permițând transformarea și încărcarea datelor din surse eterogene;
poate fi utilizat pentru corelarea datelor despre evenimente;
adaugă, modifică, elimină, îmbogățește și ofuschează date despre evenimente, parțial sau complet;
poate elimina un eveniment;
creează și completează dinamic liste configurate implicit cu date colectate din evenimentele primite (de exemplu, o listă de IP-uri Blacklist). Listele integrate pot fi modificate/adăugate în Object Manager;
poate extrage informații din liste definite anterior și poate efectua acțiuni specifice, precum trimiterea de alerte;
folosește un motor JavaScript integrat, administratorul putând utiliza logică predefinită sau crea o logică personalizată pentru efectuarea diverselor acțiuni;
poate trimite alerte;
criptează și decriptează datele;
poate trimite cereri HTTP/HTTPS către sisteme/API-uri externe;
poate interoga datele stocate în baza de date a evenimentelor;
și altele.
Serviciul DTS stochează în memorie liste de obiecte pe care utilizatorul le poate folosi pentru a efectua sarcini specifice. De exemplu, lista User logged on from specified IP ADDRESS poate fi accesată folosind următorul script:
if(Event.UserName == 'undefined')
{
Event.UserName = CQ.Utils.LocalStorage.get('UserLists',Event.SrcIP);
}
Generic Lists
if(Event.EventType == 'undefined')
{
Event.EventType = CQ.Utils.LocalStorage.get('list_name', Event.PropertyName);
}
Pot fi create liste personalizate cu obiecte dinamice, care sunt partajate între toate componentele. Listele pot fi populate direct din DTS folosind metoda “set” a obiectului LocalStorage. Pentru a realiza acest lucru, utilizați următoarea metodă:
if(Event.EventType == '16') // 16 means Failed Audit event
{
CQ.Utils.LocalStorage.set('hosts_with_failed_audit', Event.Computer, Event.Computer);
}
Obiectul LocalStorage expune mai multe metode de interacțiune cu listele de utilizator
Metoda set()
Exemplu:
CQ.Utils.LocalStorage.set(listName, objectName, objectValue, 900)
Descriere: Această metodă stochează datele definite de utilizator în liste de obiecte interne, care pot fi de asemenea editate în Object Manager.
Parametri:
listName definește lista asupra căreia operăm. Acest parametru este obligatoriu.
objectName definește numele obiectului utilizat pentru setarea/extragerea datelor. Acest parametru este obligatoriu.
objectValue Valoarea de stocat (obligatorie). Acest parametru este opțional. Când nu este specificat, sistemul va utiliza automat un ttl (Time-to-live) în secunde (implicit: 900; utilizați -1 pentru stocare nelimitată).
Metoda get()
Exemplu:
CQ.Utils.LocalStorage.get(listName, objectName)
Descriere: Această metodă extrage datele definite de utilizator din liste de obiecte interne, care pot fi de asemenea editate în Object Manager.
Parametri:
listName definește lista asupra căreia operăm. Acest parametru este obligatoriu.
objectName definește numele obiectului utilizat pentru setarea/extragerea datelor. Acest parametru este obligatoriu.
Parsere JS (obiecte DTS)
Parsarea sau analiza sintactică este procesul de analizare a unui șir de simboluri, fie într-un limbaj natural, fie în limbaje de calculator, conform regulilor unei gramatici formale. Sarcina parserului este esențială pentru a determina dacă și cum poate fi derivată intrarea din simbolul de start al gramaticii.
JS Parser este un obiect JavaScript care utilizează jurnalele de evenimente și sortează inteligent datele, facilitând utilizatorului interpretarea informațiilor rezultate. Parsarea se realizează apelând obj.exec cu evenimentul ca parametru în format JSON.
Parserele JavaScript (JS) pot fi gestionate prin Interfața Web în Settings > Rules > DTS Objects. Pagina DTS Objects afișează toate obiectele definite și oferă opțiuni pentru a importa un obiect existent sau a crea unul nou de la zero. Meniul Actions permite editarea, ștergerea sau exportul unui parser, precum și activarea sau dezactivarea acestuia.

Pentru a exporta un parser, apăsați butonul
din dreptul acestuia. Exportul este salvat ca fișier proprietar CQO. În mod similar, pentru a importa un parser selectați
în pagina DTS Objects.Pentru a edita detaliile unui obiect specific, apăsați butonul
din dreptul acestuia. Se deschide pagina Edit DTS Objects, care vă permite să modificați Name și Description, Script-ul sau să activați/dezactivați obiectul.Pentru a șterge un parser din listă, apăsați butonul
din dreptul acestuia. Ca măsură de precauție, vi se va cere să confirmați ștergerea.Pentru a marca un parser ca activ/inactiv, apăsați butonul
.Crearea unui nou parser JS.
În pagina DTS Objects, selectați butonul
și se deschide pagina de configurare care vă permite să creați scriptul pentru un nou parser și să îl marcați ca activ sau inactiv. Când ați terminat crearea parserului, apăsați butonul “Save” pentru a salva modificările.
Iată un exemplu de parser JS:

Completați următoarele câmpuri:
În câmpul Name, introduceți un nume care identifică obiectul DTS nou creat
În câmpul Description, introduceți o descriere a obiectului
Folosiți câmpul is Active pentru a activa/dezactiva obiectul
În câmpul Script, adăugați codul JavaScript
Când ați terminat crearea parserului, apăsați butonul “Save” pentru a salva modificările sau apăsați butonul “Cancel” pentru a renunța la modificări.
Pentru a vedea cum se creează un parser, urmați linkul: Cum se creează un parser.
Reguli de filtrare
CYBERQUEST utilizează un mecanism inteligent de filtrare a evenimentelor pentru trimiterea datelor către parserele JS. Puteți instrui DTS cu privire la modul de filtrare a evenimentelor trimise către parsere prin crearea de reguli de filtrare.
Regulile de filtrare pot fi gestionate navigând la Settings > Rules > Filter Rules. Se deschide pagina Filter Rules, care permite definirea regulilor pe baza unor operatori precum “eq”, “noteq”, “isInList”, “isNotInList”, “startsWith”, “endsWith” etc. Practic, nu există nicio limită pentru adăugarea de câmpuri suplimentare.
Meniul Actions include opțiuni pentru editarea, ștergerea sau exportul unei reguli, iar regulile pot fi marcate ca active sau inactive. Se deschide pagina Filter Rules, listând regulile definite și oferind aici opțiuni pentru importul unui obiect sau crearea unei noi reguli de filtrare de la zero.

Pentru a exporta o regulă, apăsați butonul
din dreptul acesteia. Exportul este salvat ca fișier proprietar CQO. În mod similar, pentru a importa o regulă selectați
în pagina Filter Rules.
Pentru a edita detaliile unei reguli specifice, apăsați butonul
din dreptul acesteia. Se deschide pagina Edit Filter Rule, care vă permite să modificați Filter Name și Description, precum și să adăugați, corectați sau ștergeți filtrele deja definite.
Pentru a șterge o regulă din listă, apăsați butonul
din dreptul acesteia. Ca măsură de precauție, vi se va cere să confirmați ștergerea.
Pentru a marca o regulă ca activă/inactivă, apăsați butonul
.
Crearea unei noi reguli de filtrare
În pagina Filter Rules, selectați butonul
și se deschide pagina de configurare care vă permite să creați o nouă regulă:

Completați următoarele câmpuri:
În câmpul Filter Name, introduceți un nume care identifică regula de filtrare nou creată
În câmpul Description, introduceți o descriere a regulii de filtrare
Apăsați butonul Add field condition pentru a defini una sau mai multe condiții de filtrare a datelor
O regulă de filtrare poate avea una sau mai multe condiții definite:
În lista derulantă Select Field, selectați câmpul de eveniment pe care doriți să îl filtrați
În lista derulantă Operator selectați unul dintre operatorii disponibili eq, noteq, isInList, isNotInList, startsWith, endsWith, etc.
Introduceți Value utilizată pentru comparație
În mod implicit, noua regulă va fi activă. Apăsați pe comutatorul
pentru a dezactiva regula.
În orice moment puteți apăsa
pentru a șterge un filtru.
Când ați terminat crearea regulii, apăsați butonul
pentru a salva modificările și a reveni la lista de reguli.
Reguli de achiziție a datelor (DA Rules)
CYBERQUEST include un motor decizional bazat pe reguli, care permite combinarea regulilor de filtrare cu parserele JS în scopul stabilirii unui flux granular de colectare a datelor. Astfel, pentru un anumit flux de evenimente, veți putea atribui unul sau mai multe parsere unor reguli de filtrare specifice și, în acest mod, veți instrui platforma cu privire la evenimentele care vor fi colectate.
Regulile de achiziție a datelor pot fi accesate din Interfața Web navigând la Settings > Rules > DA Rules. Se deschide pagina DA Rules, listând regulile definite și oferind aici opțiuni pentru importul unui obiect sau crearea unei noi reguli DA de la zero. Meniul Actions include opțiuni pentru editarea, ștergerea sau exportul unei reguli, iar regulile pot fi marcate ca active sau inactive.

Pentru a exporta o regulă, apăsați butonul
. Exportul este salvat ca fișier proprietar CQO. În mod similar, pentru a importa o regulă selectați
în pagina DA Rules.Pentru a edita detaliile unei reguli specifice, apăsați butonul
. Se deschide pagina Edit DA Rule, care vă permite să modificați Name și Description, precum și să adăugați, corectați sau ștergeți filtrele deja definite.Pentru a șterge o regulă din listă, apăsați butonul
din dreptul acesteia. Ca măsură de precauție, vi se va cere să confirmați ștergerea.Pentru a marca o regulă ca activă/inactivă, apăsați butonul
.
Crearea unei noi reguli DA
În pagina DA Rules, selectați butonul
și se deschide pagina de configurare care vă permite să creați o nouă regulă:

Completați următoarele câmpuri:
În câmpul Name, introduceți un nume care identifică regula de achiziție a datelor nou creată (apare în lista DA Rules)
În câmpul Description, introduceți o descriere explicativă a regulii
AND filter rules aplică operatori logici AND pentru a combina mai multe condiții de filtrare
OR filter rules aplică operatori logici OR pentru a gestiona condiții de filtrare alternative
Data Storages vă permite să selectați destinațiile de stocare pe termen lung
În lista derulantă DTS Objects, selectați obiectele DTS cărora li se aplică această regulă
În câmpul Order, setați prioritatea de procesare (numerele mai mici se execută primele)
Send data to short term storage direcționează evenimentele către baza de date Online DataStorage
Send to data correlation redirecționează datele către serviciul de corelare a datelor
Active comută starea de activare a regulii
Forward Event: activează redirecționarea evenimentelor către un server syslog.
După crearea unei reguli DA, butonul “Save” stochează modificările, în timp ce butonul “Cancel” le anulează.