Filme porno

Categorii

Advertising

Dezvaluirea relatiilor malware cu GraphDB: Partea 1

In aceasta postare, vom afla cum utilizarea unei baze de date grafice precum Neo4j poate ajuta la vizualizarea relatiilor malware si extinderea acestor relatii pentru a identifica tiparele dintre esantioane. Inainte de a intra in Neo4j, sa incepem cu cateva terminologii grafice fundamentale:

Nodurile reprezinta entitati precum un om, o masina, un laptop sau un telefon.

Proprietatile sunt atribute pe care nodurile le pot contine. Un volan sau anvelope ar fi o proprietate a nodului „masina”.

Etichetele reprezinta o modalitate de a grupa impreuna noduri de tip similar. De exemplu, o eticheta „FastFood” poate include noduri precum „Taco Bell, McDonald’s si Chipotle”.

Marginile (sau varfurile) reprezinta legatura dintre doua noduri. Relatiile pot avea si proprietati proprii.

Link: https://neo4j.

Array

com/

Neo4j este o baza de date grafica cunoscuta in mod obisnuit pentru simplitatea sa pura si interfata usor de utilizat. Mi se pare destul de fascinanta structura unei baze de date grafice, pe langa faptul ca am invatat cum sa normalizez datele de analiza malware pentru fiecare esantion intr-o schema care functioneaza pentru o baza de date grafice. Pentru a incepe, trebuie mai intai sa rulam o instanta Neo4j. Cel mai rapid mod de a face acest lucru este docker. Dupa ce ati instalat docker-ul (https://docs.docker.com/install/), puteti trage rapid o imagine de andocare Neo4j folosind urmatoarea comanda:

docker pull neo4j

Dupa ce ati descarcat imaginea in sistemul dvs., puteti porni containerul executand comanda de mai jos:

rulare docker \

– publica = 7474: 7474 – publica = 7687: 7687 \

– volum = $ HOME / neo4j / data: / data \

neo4j

Daca totul merge bine, ar trebui sa vedeti cateva iesiri standard in consola dvs.

, inclusiv linia:

INFO Interfata la distanta disponibila la http: // localhost: 7474 /

Daca navigati la aceasta adresa URL in browserul dvs., vi se va solicita sa va conectati la containerul de andocare Neo4j folosind acreditarile implicite „ neo4j / neo4j ”. Dupa ce v-ati conectat si ati schimbat parola, puteti incepe acum sa explorati interfata. Daca sunteti nou in Neo4j, v-as recomanda sa intrati in sectiunea „Invatare despre Neo4j”, astfel incat sa puteti obtine o descriere a sintaxei pentru cautarea si actualizarea nodului sau a marginilor din baza de date.

Pentru a incarca datele in Neo4j, trebuie sa construim o schema care sa ne defineasca nodurile, muchiile si proprietatile. La fel ca majoritatea bazelor de date, definirea unei scheme standardizate este foarte importanta inainte de a insera date. Sa incepem prin a arunca o privire la cum arata un nod de fisier simplu de mai jos:

MERGE (n: Fisier {md5: {md5}, sha1: {sha1}, sha256: {sha256}, dimensiune: {size}}) RETURN n

Puteti vedea din declaratia de mai sus, avem o eticheta de fisier , care are proprietatile md5 , sha1 , sha256 si dimensiune . O eticheta este o modalitate de a grupa nodurile de un tip similar. Observati ca nu avem numele sau proprietatile caii in Fisiernodul. Acest lucru se datoreaza faptului ca orice fisier poate fi redenumit si mutat intr-o locatie diferita, dar hashurile si dimensiunea vor ramane aceleasi. Din aceasta cauza, am crea un alt nod pentru fiecare nume de fisier si cale, deoarece multe alte mostre de malware pot reutiliza acelasi nume sau cale de fisier, creand astfel o relatie intre doua bucati diferite de malware. Cu toate acestea, o relatie bazata exclusiv pe un nume de fisier sau o cale pe disc nu este cea mai puternica relatie, cu exceptia cazului in care este un nume sau o cale foarte unic. Am prezentat celelalte noduri, etichete si proprietatile acestora mai jos in sintaxa Cypher a lui Neo4j.

MERGE (n: FileType {type: {file_type}}) RETURN n

MERGE (n: Compilat {timestamp: {timestamp}}) RETURN n

MERGE (n: Library {name: {library}}) RETURN n

MERGE (n: Functie {nume: {functie}}) RETURN n

MERGE (n: Detectare {nume: {detectare}}) RETURN n

Pe langa crearea diferitelor noduri, margini si proprietati, dorim sa definim si relatiile pe care aceste noduri le pot avea intre ele si directia acestor relatii. Sa vedem un exemplu despre crearea unei relatii intre nodurile File si FileType folosind interogarea Cypher de mai jos:

MATCH (n: Fisier {md5: {md5} , sha1: {sha1} , sha256: {sha256} , dimensiune: {size} }), (f: FileType {type: {file_type} }) MERGE (n) – [ : HAS_FILETYPE ] -> (f)

In aceasta interogare, mai intai trebuie sa ne potrivim pe nodul Fisier (atribuit variabilei n ), apoi trebuie sa ne potrivim pe nodul FileType (atribuit lui f ). Odata ce meciurile sunt colectate, stabilim o relatie HAS_FILETYPE intre aceste doua noduri. In Neo4j, relatiile pot avea o singura directie si nu pot avea relatii care merg in ambele directii. De asemenea, nu puteti avea o relatie care sa indice o alta relatie. Pentru a contracara acest lucru, putem folosi noduri intermediare pentru a ajuta la conectarea nodurilor impreuna in relatii mai complexe (nodurile intermediare vor fi acoperite intr-o postare viitoare). Pentru a arata mai bine cum va arata acest lucru, sa vedem schema finala de mai jos in Neo4j:

Pentru aceasta postare, folosesc mostre de ransomware WannaCry pentru a intelege mai bine relatiile dintre aceste binare la un nivel de analiza statica (nu ruleaza malware-ul). Pentru a incepe, trebuie sa introducem metadatele malware in Neo4j. Pentru a extrage atributele statice ale malware-ului, am folosit PEFRAME (https://github.com/guelfoweb/peframe) impotriva fiecarui esantion si am salvat toate iesirile JSON intr-un singur director. Putem folosi apoi un pic de Python pentru a incarca datele JSON pentru fiecare esantion si pentru a crea interogari cifrate pentru a crea rapid nodurile, marginile si relatiile noastre. Sa aruncam o privire asupra unui singur nod si a tuturor relatiilor sale de mai jos:

Putem vedea din imaginea de mai sus ca exemplarul nostru unic WannaCry importa sase biblioteci, poate utiliza cel putin 83 de functii din aceste sase biblioteci si are patru detectii. Vedem, de asemenea, noduri verzi, care prezinta tipul de fisier al executabilului , care in acest exemplu este „ PE32 executabil (GUI) Intel 80386, pentru MS Windows ” si are un timestamp compilat de „ 2017-05-04 22:34:46 ”, afisat in nodul gri de deasupra.

Acum, ca avem un singur set de esantion de lucru; sa mergem mai departe si sa incarcam cateva esantioane suplimentare in baza de date a graficului pentru a identifica alte relatii potentiale sau tipare intre diferitele specimene WannaCry.

Compilati timpurile

Un atribut comun al fisierelor PE pe care putem pivota rapid este marcajul de timp de compilare . Cand lucrati cu programe malware din aceeasi familie, este posibil sa vedeti o tendinta in timpurile de compilare, deoarece sunt construite si utilizate variante mai noi in natura. Putem vedea o mica grupare a acestor grupuri mai jos:

Detectii

Un alt atribut pe care il putem folosi pentru a vizualiza relatiile malware este „detectiile”, care este produs ca o iesire a peframe. Graficul de mai jos prezinta cele 19 mostre de malware si cele patru detectii principale (de exemplu , mutex , antibg , xor si packer ).

Trecand dincolo de static

Pentru aceasta postare, ne-am concentrat doar pe cateva atribute statice (analiza codului mort, nu rularea malware-ului). Am putea imbunatati in continuare atributele si relatiile din grafic prin includerea altor surse de date, cum ar fi VirusTotal, Cuckoo Sandbox (analiza dinamica) si iesirea Xori. Ca intotdeauna, sper ca postarea a fost informativa si vanatoare fericita!

Multumim @omgapt si @ jeffochan7 pentru asistenta la postare.

https://neo4j.com/developer/modeling-designs/

https://github.com/endgameinc/xori

https://github.com/guelfoweb/peframe

Video Description:

In aceasta postare, vom afla cum utilizarea unei baze de date grafice precum Neo4j poate ajuta la vizualizarea relatiilor malware si extinderea acestor relatii pentru a identifica tiparele dintre esantioane. Inainte de a intra in Neo4j, sa incepem cu cateva terminologii grafice fundamentale:Nodurile reprezinta entitati precum un om, o masina, un laptop sau un telefon.Proprietatile sunt atribute pe care nodurile le pot contine. Un volan sau anvelope ar fi o proprietate a nodului „masina”.Etichetele reprezinta o modalitate de a grupa impreuna noduri de tip similar. De exemplu, o eticheta „FastFood” poate include noduri precum „Taco Bell, McDonald’s si Chipotle”.Marginile (sau varfurile) reprezinta legatura dintre doua noduri. Relatiile pot avea si proprietati proprii.Link: https://neo4j. Array com/Neo4j este o baza de date grafica cunoscuta in mod obisnuit pentru simplitatea sa pura si interfata usor de utilizat. Mi se pare destul de fascinanta structura unei baze de date grafice, pe langa faptul ca am invatat cum sa normalizez datele de analiza malware pentru fiecare esantion intr-o schema care functioneaza pentru o baza de date grafice. Pentru a incepe, trebuie mai intai sa rulam o instanta Neo4j. Cel mai rapid mod de a face acest lucru este docker. Dupa ce ati instalat docker-ul (https://docs.docker.com/install/), puteti trage rapid o imagine de andocare Neo4j folosind urmatoarea comanda:docker pull neo4jDupa ce ati descarcat imaginea in sistemul dvs., puteti porni containerul executand comanda de mai jos:rulare docker \- publica = 7474: 7474 - publica = 7687: 7687 \- volum = $ HOME / neo4j / data: / data \neo4jDaca totul merge bine, ar trebui sa vedeti cateva iesiri standard in consola dvs. porno gay vieux oby.sadmonky.com barbie porno connexcu.biz porno gay black www.dd510.com porno gay muscle jfeneley.com video one porno quadtech.us porno sensuel baptist-health.info porno brigitte lahaie womenofcolorinflight.com miss france porno www.urbanweddings.com porno malien www.mconxcentral.org folie porno seniorfreestop.com porno fist www.google.mk sister porno johnscreekendo.us porno film complet gladstonepartnership.net chinese porno www.kohlsgiftregistry.org twerk porno sweetone.us porno gros plan lightspeedvpisrael.com absolut porno mitsudome.com porno us fnbhuntsvilletx.net porno netflix gretagmacbethstore.com minecraft porno baumanappliance.com , inclusiv linia:INFO Interfata la distanta disponibila la http: // localhost: 7474 /Daca navigati la aceasta adresa URL in browserul dvs., vi se va solicita sa va conectati la containerul de andocare Neo4j folosind acreditarile implicite „ neo4j / neo4j ”. Dupa ce v-ati conectat si ati schimbat parola, puteti incepe acum sa explorati interfata. Daca sunteti nou in Neo4j, v-as recomanda sa intrati in sectiunea „Invatare despre Neo4j”, astfel incat sa puteti obtine o descriere a sintaxei pentru cautarea si actualizarea nodului sau a marginilor din baza de date.Pentru a incarca datele in Neo4j, trebuie sa construim o schema care sa ne defineasca nodurile, muchiile si proprietatile. La fel ca majoritatea bazelor de date, definirea unei scheme standardizate este foarte importanta inainte de a insera date. Sa incepem prin a arunca o privire la cum arata un nod de fisier simplu de mai jos:MERGE (n: Fisier {md5: {md5}, sha1: {sha1}, sha256: {sha256}, dimensiune: {size}}) RETURN nPuteti vedea din declaratia de mai sus, avem o eticheta de fisier , care are proprietatile md5 , sha1 , sha256 si dimensiune . O eticheta este o modalitate de a grupa nodurile de un tip similar. Observati ca nu avem numele sau proprietatile caii in Fisiernodul. Acest lucru se datoreaza faptului ca orice fisier poate fi redenumit si mutat intr-o locatie diferita, dar hashurile si dimensiunea vor ramane aceleasi. Din aceasta cauza, am crea un alt nod pentru fiecare nume de fisier si cale, deoarece multe alte mostre de malware pot reutiliza acelasi nume sau cale de fisier, creand astfel o relatie intre doua bucati diferite de malware. Cu toate acestea, o relatie bazata exclusiv pe un nume de fisier sau o cale pe disc nu este cea mai puternica relatie, cu exceptia cazului in care este un nume sau o cale foarte unic. Am prezentat celelalte noduri, etichete si proprietatile acestora mai jos in sintaxa Cypher a lui Neo4j.MERGE (n: FileType {type: {file_type}}) RETURN nMERGE (n: Compilat {timestamp: {timestamp}}) RETURN nMERGE (n: Library {name: {library}}) RETURN nMERGE (n: Functie {nume: {functie}}) RETURN nMERGE (n: Detectare {nume: {detectare}}) RETURN nPe langa crearea diferitelor noduri, margini si proprietati, dorim sa definim si relatiile pe care aceste noduri le pot avea intre ele si directia acestor relatii. Sa vedem un exemplu despre crearea unei relatii intre nodurile File si FileType folosind interogarea Cypher de mai jos:MATCH (n: Fisier {md5: {md5} , sha1: {sha1} , sha256: {sha256} , dimensiune: {size} }), (f: FileType {type: {file_type} }) MERGE (n) - [ : HAS_FILETYPE ] -> (f)In aceasta interogare, mai intai trebuie sa ne potrivim pe nodul Fisier (atribuit variabilei n ), apoi trebuie sa ne potrivim pe nodul FileType (atribuit lui f ). Odata ce meciurile sunt colectate, stabilim o relatie HAS_FILETYPE intre aceste doua noduri. In Neo4j, relatiile pot avea o singura directie si nu pot avea relatii care merg in ambele directii. De asemenea, nu puteti avea o relatie care sa indice o alta relatie. Pentru a contracara acest lucru, putem folosi noduri intermediare pentru a ajuta la conectarea nodurilor impreuna in relatii mai complexe (nodurile intermediare vor fi acoperite intr-o postare viitoare). Pentru a arata mai bine cum va arata acest lucru, sa vedem schema finala de mai jos in Neo4j:Pentru aceasta postare, folosesc mostre de ransomware WannaCry pentru a intelege mai bine relatiile dintre aceste binare la un nivel de analiza statica (nu ruleaza malware-ul). Pentru a incepe, trebuie sa introducem metadatele malware in Neo4j. Pentru a extrage atributele statice ale malware-ului, am folosit PEFRAME (https://github.com/guelfoweb/peframe) impotriva fiecarui esantion si am salvat toate iesirile JSON intr-un singur director. Putem folosi apoi un pic de Python pentru a incarca datele JSON pentru fiecare esantion si pentru a crea interogari cifrate pentru a crea rapid nodurile, marginile si relatiile noastre. Sa aruncam o privire asupra unui singur nod si a tuturor relatiilor sale de mai jos:Putem vedea din imaginea de mai sus ca exemplarul nostru unic WannaCry importa sase biblioteci, poate utiliza cel putin 83 de functii din aceste sase biblioteci si are patru detectii. Vedem, de asemenea, noduri verzi, care prezinta tipul de fisier al executabilului , care in acest exemplu este „ PE32 executabil (GUI) Intel 80386, pentru MS Windows ” si are un timestamp compilat de „ 2017-05-04 22:34:46 ”, afisat in nodul gri de deasupra.Acum, ca avem un singur set de esantion de lucru; sa mergem mai departe si sa incarcam cateva esantioane suplimentare in baza de date a graficului pentru a identifica alte relatii potentiale sau tipare intre diferitele specimene WannaCry.Compilati timpurileUn atribut comun al fisierelor PE pe care putem pivota rapid este marcajul de timp de compilare . Cand lucrati cu programe malware din aceeasi familie, este posibil sa vedeti o tendinta in timpurile de compilare, deoarece sunt construite si utilizate variante mai noi in natura. Putem vedea o mica grupare a acestor grupuri mai jos:DetectiiUn alt atribut pe care il putem folosi pentru a vizualiza relatiile malware este „detectiile”, care este produs ca o iesire a peframe. Graficul de mai jos prezinta cele 19 mostre de malware si cele patru detectii principale (de exemplu , mutex , antibg , xor si packer ).Trecand dincolo de staticPentru aceasta postare, ne-am concentrat doar pe cateva atribute statice (analiza codului mort, nu rularea malware-ului). Am putea imbunatati in continuare atributele si relatiile din grafic prin includerea altor surse de date, cum ar fi VirusTotal, Cuckoo Sandbox (analiza dinamica) si iesirea Xori. Ca intotdeauna, sper ca postarea a fost informativa si vanatoare fericita!Multumim @omgapt si @ jeffochan7 pentru asistenta la postare.https://neo4j.com/developer/modeling-designs/https://github.com/endgameinc/xorihttps://github.com/guelfoweb/peframe

Categorie:
Taguri:
Data adaugarii: