Ca inginer de raspuns la incidente la Google, aproape fiecare incident pe care l-am investigat duce la un adevar comun: relatiile dintre evenimente sunt mai importante decat evenimentele in sine. Incepand de astazi, Timesketch accepta o noua integrare a graficelor experimentale pentru a explora aceste relatii.
Salutati noua vizualizare grafica
Completarea vizualizarii tabulare
Timesketch a fost conceput pentru a facilita colaborarea, partajarea si cautarea, precum si pentru a corela rapid evenimentele disparate. Experienta de cautare implicita se bazeaza pe Elasticsearch, iar rezultatul este detaliat si detaliat prin design. Vizualizarea tabelara arata datele ordonate disponibile pentru interogari specifice.
Investigatiile obisnuite care sunt cele mai potrivite pentru o vizualizare tabelara includ:
- Profilarea unei secvente de actiuni efectuate de un set de utilizatori
- Secventierea unui numar de executii de proces
- Listarea fisierelor create intr-o perioada de timp stabilita
Corelatii mai complexe, cum ar fi listarea tuturor utilizatorilor care au fost conectati la un sistem care a executat un anumit proces, ar putea necesita totusi mai multe file, interogari si multe copieri in jur. Construind modele grafice din astfel de activitati face ca datele sa fie mai accesibile pentru analist fara a sacrifica transparenta.
Backend grafic
Timesketch foloseste Neo4j ca backend de baze de date grafice. Neo4j implementeaza un grafic de proprietati si foloseste stocarea graficului nativ pentru a face traversarile rapide. Nodurile din grafic pot avea zero sau mai multe etichete, iar muchiile au exact un tip. Marginile (sau relatiile asa cum se numesc in Neo4j) sunt directionate si atat nodurile, cat si relatiile (muchiile) pot avea proprietati. Aceste caracteristici ne ofera un mod puternic si expresiv de a modela si interoga graficele.
Model grafic
Urmatoarele exemple prezinta un incident ipotetic (dar realist) si se concentreaza pe conectarile si serviciile Windows. Intrarile din jurnalul de evenimente Windows (EventID 4624/7045) au fost folosite pentru a structura exemplul de grafic utilizat in aceasta postare:
Noduri Masini Windows: (masina)
Utilizatori Windows: (utilizator)
Servicii Windows: (serviciu) Serviciu
Windows cale imagine: (cale imagine) Relatii (utilizator) – [ACCES] -> (masina)
(masina) – [ACCES {utilizator: <USERNAME>}] -> (machine)
(service) – [START] -> (machine)
(service) – [HAS] -> (calea imaginii)
Limbajul interogarii grafice
Neo4j este livrat cu un limbaj de interogare puternic numit Cypher. Cypher are una dintre cele mai scazute curbe de invatare pentru interogari grafice datorita naturii sale vizuale si tutorialelor bune. O interogare arata astfel:
MATCH (a: Label) – [r: TYPE] -> (b {proprietate: „foo”})
UNDE a.foo = „bar”
RETURNARE *
Aceasta interogare se traduce aproximativ prin: „ Da-mi toate caile in care un anumit nod„ a ”are o relatie TIP directionata catre un alt nod„ b ”care are o proprietate„ foo ”, unde„ foo ”=„ bara ”. Dupa cum puteti vedea, Cypher este ca si cum ati lucra direct dintr-o reprezentare pe tabla alba a graficului, cu unele SQL adaugate. Acest lucru face mai usor sa incepeti si curba de invatare nu este prea abrupta.
Exemplul 1: obtineti toate datele de conectare interactive
Sa incepem cu cateva exemple. In primul rand, sa recuperam toti utilizatorii care s-au conectat la un sistem interactiv:
Returneaza toate caile in care un WindowADUser are o relatie ACCESS la un WindowsMachine metoda de acces ACCESS este una dintre Interactive, CachedInteractive sau Unlock MATCH (utilizator: WindowsADUser) – [r1: ACCESS] -> (m1: WindowsMachine) WHERE r1.method IN [ „Interactiv”, „CachedInteractive”, „Deblocare”]
S-ar putea sa observati ca exista un numar despre relatia dintre paranteze.
el mejor video porno videos porno corridas
porno abuela sex porne
porno incesto asiatico videosdeincesto
videos porno corridas madura española con joven
tios desnudos porno agresivo
muy jovencitas porno hentai scat
madres viciosas colegialas cachondas
lesbianas maduras españolas penes de abuelos
casadas cachondas creampie abuelas
travestis meando española folla
comiendo polla escuchar relatos porno
sexo playa nudista corrida boca
chochitos jovencitos corridas internas peludas
porno forzadas como folla mi vecina
pilladas desnudas pornotrans
coñitos sexo con viejas
forzadas a follar videos porno casero españa
cine xxx miakalifa
incesto italiano porno porno gay chino
cerdas com gratis porno viola a su madre
In loc sa adauge multe margini in grafic, sistemul adauga marcajul de timp pentru fiecare eveniment de conectare ca o lista de proprietati in relatia insasi. Veti vedea cum un analist poate profita de acest lucru mai tarziu.
Transparenta
In criminalistica digitala, este important sa puteti argumenta cum sunt conectate evenimentele si de ce instrumentele reprezinta datele asa cum le fac. Atunci cand construieste instrumente, dezvoltatorul trebuie sa fie transparent cu privire la modul in care sunt create aceste relatii.
Selectarea unei relatii arata o optiune de afisare a evenimentelor care au fost utilizate pentru a crea acea conexiune. In acest fel, puteti explora si verifica datele in contextul graficului si puteti explica motivele pentru care datele sunt reprezentate asa cum sunt. Puteti comuta rapid intre vizualizarea tabelara si vizualizarea graficului pentru aceleasi date.
Exemplul 2: enumerati toti utilizatorii care s-au conectat la un sistem in care a fost pornit un anumit serviciu
Aceasta interogare este putin mai complicata si arata o parte din puterea limbajului de interogare Cypher. Pentru acest exemplu, a fost ales un serviciu legitim normal, dar va puteti imagina ca acesta este un serviciu rau inceput de un atacator:
Intoarceti toate caile in care un utilizator s-a conectat la masina A si apoi sa mutat lateral la o masina B unde, la un moment dat, a inceput un serviciu cu calea catre un executabil cu numele GROOVE.EXE MATCH (utilizator: WindowsADUser) – [r1: ACCESS] -> (machineA: WindowsMachine) – [r2: ACCESS] -> (machineB: WindowsMachine), (machineB) <- [r3: START] – (service: WindowsService) – [r4: HAS] -> (cale: WindowsServiceImagePath) UNDE r2.username = user.username Si path.image_path contine „GROOVE.EXE”
Exemplul 3: Dar timpul?
In interogarile de mai sus lipseste un lucru: timpul! Timesketch se refera la analiza cronologiei si dimensiunea temporala din grafic este importanta. Amintiti-va ca exista fisiere temporale adaugate fiecarei relatii ca proprietate lista, haideti sa vedem cum poate fi valorificat acest lucru:
Intoarceti toate caile in care utilizatorul s-a conectat interactiv la masina A si apoi sa mutat lateral la masina B utilizand o autentificare in retea. Constrangeti rezultatul cu o fereastra de timp intre prima autentificare si a doua autentificare care trebuie sa fie in termen de 12 ore. MATCH (utilizator: WindowsADUser) – [r1: ACCESS] -> (m1: WindowsMachine) – [r2: ACCESS] -> (m2: WindowsMachine) WHERE r1.method IN [„Interactive”, „CachedInteractive”, „Deblocare”] AND r2.username = user.username AND r1.timestamp <r2.timestamp <r1.timestamp + 60 * 720
Detaliul important din aceasta interogare este:
r1.timestamp <r2.timestamp <r1.timestamp + 60 * 720
In loc sa solicite declaratii Cypher complexe, analistul poate exprima in schimb filtre de timp pentru relatii. Interogarea este transpusa in Cypher valid pe backend si returneaza nodurile si relatiile potrivite pe baza filtrului de timp furnizat.
Acesta este doar inceputul, iar echipa Timesketch este incantata sa vada ce se poate face cu graficele si raspunsul la incidente. Foaia de parcurs include:
- Un cadru pentru modelarea graficelor din interogarile Timesketch
- Adaugarea manuala a nodurilor / relatiilor
- Explorarea graficelor urmarind relatii
- Salvarea instantaneului aspectului graficului (cum ar fi vizualizarile salvate)
- Executarea interogarilor grafice si alerta la meciuri
- Adaugarea suportului grafic la timesketch-api-client
- Interogari predefinite cu parametri furnizati de utilizator
Daca ati ajuns pana aici, probabil ca sunteti dornici sa testati singura aceasta caracteristica. Echipa Timesketch a simplificat experimentarea incarcand si construind un grafic pe serverul de demonstratie public Timesketch. Doar conectati-va cu demo / demo si incepeti sa explorati!
Multe multumiri lui Franciszek Piszcz care a implementat aceasta caracteristica pe parcursul stagiului sau Google de 3 luni! Multumesc, de asemenea, lui Stefan Weghofer, inginer software Google, care a oferit expertiza si cunostintele sale proiectului si a contribuit la realizarea acestuia.








