logo

Hash

Først og fremst, la oss gå gjennom det grunnleggende og bli kjent med et konsept som en hash!

Hash-algoritme - er en matematisk funksjon som tar inn data av hvilken som helst størrelse og produserer en utgang kalt et hash eller meldingssammendrag. Utgangen er en unik representasjon av inndataene, som kan brukes til å verifisere at dataene ikke har blitt manipulert. Hash-algoritmer brukes for å sikre integriteten og autentisiteten til data. Enkelt forklart er et hash en unik digital fingeravtrykk av et stykke data. Det er som en kode som representerer dataene. Koden genereres av en matematisk funksjon kalt en hash-funksjon. Hvis dataene endres, selv litt, vil hashen være forskjellig.

Det er primære nøkkelkarakteristikker for hash:

  1. Deterministisk: En hashfunksjon skal alltid produsere samme resultat for en gitt inngangsdata. Dette betyr at hvis du hasher samme data to ganger, bør du få samme hashverdi begge gangene.

  2. Irreversibilitet: Det skal være beregningsmessig ugjennomførbart å rekonstruere den opprinnelige inngangsdataen fra dens hashverdi. Denne egenskapen er viktig for sikkerhet, da den beskytter de opprinnelige dataene fra å bli oppdaget av angripere som kun har tilgang til hashverdien.

  3. Uniformitet: En hashfunksjon bør produsere en jevn fordeling av hashverdier over alle mulige innganger. Dette betyr at hver hashverdi bør være like sannsynlig å forekomme, og det bør ikke være noen mønstre eller skjevheter i fordelingen av hashverdier.

  4. Uforutsigbarhet: Det skal være beregningsmessig ugjennomførbart å forutsi hashverdien til en inndata basert på hashverdiene til andre inndata eller egenskapene til hashfunksjonen selv. Denne egenskapen er viktig for sikkerhet, da det gjør det vanskelig for angripere å skape en kollisjon (to forskjellige inndata som produserer samme hashverdi).

  5. Irreversibilitet: Det skal være beregningsmessig ugjennomførbart å rekonstruere den opprinnelige inngangsdataen fra dens hashverdi. Denne egenskapen er viktig for sikkerhet, da den beskytter de opprinnelige dataene fra å bli oppdaget av angripere som kun har tilgang til hashverdien.

  6. Motstandsdyktighet mot kollisjonsangrep: En hashfunksjon bør være motstandsdyktig mot kollisjonsangrep, som innebærer å finne to forskjellige innganger som produserer samme hashverdi. Kollisjonsangrep kan brukes til å skape falske digitale signaturer eller for å omgå tilgangskontroller, så det er viktig at en hashfunksjon er designet for å motstå dem.

Andre karakteristikker ved hasher kan du finne på Wikipedia-siden:

https://en.wikipedia.org/wiki/Hash_function

 

Datakontroll. Svarteliste og Hvitelist.

I konteksten av antivirusprogramvare brukes hash-algoritmer til å oppdage skadelig programvare eller utelukke falske positiver. Antivirusprogramvare opprettholder en database over kjente hash-verdier for skadelig programvare (svarteliste) og pålitelige programvarehasher (hvitelist). Når en fil skannes, sammenlignes dens hash med hashene i databasen. De mest brukte hash-algoritmene for datakontroll er MD5, SHA-1, SHA-256 og SHA-512.

Bruken av hasher i antivirus-svartlister og hvitelister bidrar til å fremskynde skanneprosessen, siden antivirusprogrammet ikke trenger å utføre en detaljert analyse av hver fil for å bestemme om den er ondsinnet eller ikke. I stedet kan det sammenligne hashverdiene til filene mot de i svartlisten/hvitlisten for raskt å identifisere kjente trusler eller pålitelige apper.

Blacklist. I sammenheng med cybersikkerhet og antivirusprogramvare, er en blacklist en liste over kjente skadelige filer eller deler av disse filene. Når et antivirusprogram skanner en datamaskin eller et nettverk, sammenligner det filene og enhetene det støter på mot blacklist for å identifisere eventuelle trusler. Hvis en fil eller enhet matcher et oppføring på blacklist, vil antivirusprogrammet iverksette tiltak for å fjerne eller sette den i karantene for å forhindre at den forårsaker skade.

Mens svartelister kan være nyttige for å oppdage og forhindre kjente trusler, er de ikke alltid effektive i beskyttelsen mot nye og ukjente trusler. Angripere kan bruke ulike teknikker, som for eksempel forvrengning eller polymorfisme, for å endre koden eller atferden til en fil eller enhet for å unngå oppdagelse av antivirusprogrammer.

Derfor bruker antivirusprogrammer ofte en kombinasjon av teknikker, som whitelisting og atferdsbasert deteksjon, for å komplementere bruken av svartelister og tilby mer omfattende beskyttelse mot et bredere spekter av trusler.

Whitelist. I sammenheng med cybersikkerhet og antivirusprogramvare er en whitelist en liste over betrodde filer som er kjent for å være trygge. Hvis en fil eller enhet matcher et oppføring på whitelisten, vil antivirusprogrammet tillate at den åpnes/kjøres uten å ta noen handling, siden den anses som trygg.

Hvitlister er nyttige for å forhindre falske positiver i antivirus- og sikkerhetsprogrammer. Falske positiver oppstår når et program eller en fil blir flagget som ondsinnet eller skadelig når den faktisk er trygg. Ved å bruke en hvitliste kan sikkerhetsprogrammer omgå disse falske positivene, noe som kan spare tid og forhindre unødvendige varsler.

 

Bruken av hasher og svartelister/hvitelister kan være en effektiv måte å beskytte mot kjente trusler og forhindre falske positiver i antivirus- og sikkerhetsprogrammer.

 

Hvorfor bruker antivirusprogrammer flere hash-algoritmer?

Antivirusprogrammer bruker flere hash-algoritmer av flere grunner:

  1. Selv om svartelister kan være effektive i å oppdage og forhindre kjente trusler, er de ikke idiotsikre. Angripere kan bruke forskjellige teknikker for å unngå deteksjon, som å modifisere data for å unngå å matche signaturene i svartelisten. Disse teknikkene er kjent som "kollisjonsangrep". Et kollisjonsangrep er en type kryptografisk angrep hvor en angriper prøver å finne to forskjellige inndata, slik som filer eller meldinger, som produserer samme hashverdi når de kjøres gjennom en hashfunksjon (kollisjon). Målet med et kollisjonsangrep er å skape et par inndata som kan brukes til å undergrave et system som er avhengig av integriteten til hashverdier, slik som digitale signaturer, passordautentisering, eller integritetskontroller av data. Hvis en angriper kan finne en kollisjon, kan han bruke den til å omgå sikkerhetstiltak som er avhengige av hashfunksjonen. For å redusere risikoen for kollisjonsangrep, bruker antivirusprogrammer sterke hashfunksjoner som er motstandsdyktige mot angrep, og bruker flere hashfunksjoner samtidig. For eksempel, hvis et antivirusprogram kun brukte MD5 hashalgoritme, kunne en angriper potensielt opprette en ondsinnet fil som har samme MD5 hash som en legitim fil, og lure antivirusprogrammet til å behandle den ondsinnede filen som sikker. Derimot, ved å bruke flere hashalgoritmer, slik som MD5, SHA-1, og SHA-256, blir det vanskeligere for en angriper å lage et kollisjonsangrep som ville fungere mot alle algoritmene samtidig.

  2. Effektivitet: Forskjellige hashalgoritmer har forskjellige beregningskrav, og noen kan være mer effektive enn andre avhengig av filstørrelse, type eller andre faktorer. Ved å bruke flere hashalgoritmer kan antivirusprogrammer velge den mest passende algoritmen for en gitt situasjon, noe som kan spare tid og prosesseringskraft. For eksempel kan SHA-256 være mer beregningsintensiv enn MD5, så et antivirusprogram kan velge å bruke MD5 for mindre filer og SHA-256 for større filer.

  3. Fleksibilitet: Forskjellige hashalgoritmer er designet for forskjellige bruksområder og applikasjoner. Ved å bruke flere hashalgoritmer kan antivirusprogrammer tilpasse seg ulike behov og scenarier, som å oppdage skadelig programvare, verifisere filintegritet, eller oppdage tukling eller modifikasjon. For eksempel kan en rettsmedisinsk etterforsker bruke en annen hashalgoritme enn et antivirusprogram for å sikre at data ikke har blitt endret under en etterforskning.

 

Å bruke flere hash-algoritmer er en beste praksis i cybersikkerhet og utvikling av antivirusprogramvare, da det gir robusthet, kompatibilitet, effektivitet, og fleksibilitet i deteksjon og forebygging av cybertrusler.

 

Hvordan gjenkjenner antivirusprogrammer lignende, men ikke identiske data og filer?

 

Lignende, men ikke identiske filer kan være et problem innen cybersikkerhet fordi de kan brukes av angripere for å unngå oppdagelse av antivirusprogramvare.

For eksempel kan en angriper ta en kjent malware-fil og gjøre små endringer i koden eller strukturen, slik som å endre variabelnavn eller omorganisere instruksjoner. Disse endringene kan være nok til å skape en ny fil som er lik, men ikke identisk med den opprinnelige malware-filen, og som kanskje ikke blir oppdaget av antivirusprogramvare som stoler på tradisjonelle hasjbaserte deteksjonsmetoder.

I tillegg kan angripere bruke lignende, men ikke identiske filer til å skape polymorf malware, som kan endre sin kode eller struktur med hver infeksjon for å unngå deteksjon. Polymorf malware kan være svært vanskelig å oppdage ved bruk av tradisjonelle antivirus-teknikker, som er avhengige av å gjenkjenne spesifikke mønstre eller signaturer i malware-koden.

For å løse dette problemet, bruker antivirusprogrammer fuzzy hashes.

 

Fuzzy hashing er en teknikk som brukes av noen antivirusprogrammer for å oppdage lignende, men ikke identiske filer, inkludert polymorf malware. Ved å dele en fil inn i mindre biter og sammenligne hashene til disse bitene med hashene til andre filer, kan fuzzy hashing identifisere filer som har lignende kode eller struktur, selv om de ikke er identiske.

Fuzzy hashing fungerer ved å identifisere sekvenser av bytes som forekommer ofte i hele filen. Disse sekvensene, også kjent som "biter", blir deretter hasjet ved hjelp av en kryptografisk hash-funksjon for å generere en hash-verdi. Hash-verdiene til bitene blir så sammenlignet med de fra andre filer for å identifisere biter som er like.

Fordelen med fuzzy hashing er at den kan oppdage likheter selv når filer har blitt modifisert eller skjult, noe som gjør den til et kraftig verktøy for å identifisere varianter av kjent skadevare. For eksempel, hvis en angriper modifiserer en kjent skadevarefil ved å endre navnene på variabler eller funksjoner, kan tradisjonelle hash-baserte deteksjonsmetoder kanskje ikke oppdage den modifiserte filen. Imidlertid kan fuzzy hashing fortsatt oppdage den modifiserte filen ved å identifisere deler som er like de i den opprinnelige skadevarefilen. I motsetning til kryptografiske hashingalgoritmer som MD5, SHA-1 eller SHA-512, produserer fuzzy hashingalgoritmer hash-verdier med variabel lengde som er basert på likheten til inndataene.

 

Fordeler med fuzzy hashes:

  1. Deteksjon av lignende filer: Fuzzy hashes kan oppdage lignende filer selv om de er noe endret, noe som er nyttig for å identifisere varianter av kjent skadelig programvare.

  2. Reduserte falske positiver: Fuzzy hashes kan redusere antallet falske positiver som genereres av tradisjonelle hash-baserte deteksjonsmetoder. Dette skyldes at fuzzy hashes kan oppdage filer som er lignende, men ikke identiske med kjent skadelig programvare.

  3. Robusthet mot forkledning: Fuzzy hashes er mer robuste mot forkledningsteknikker brukt av angripere for å unngå deteksjon. Dette skyldes at fuzzy hash-algoritmen bryter filen ned i mindre biter og genererer hasher for hver bit, noe som gjør det vanskeligere for en angriper å endre filen på en måte som unngår deteksjon.

Fuzzy hashing har noen begrensninger som kan påvirke effektiviteten i å oppdage lignende, men ikke identiske filer:

  1. False positives: Fuzzy hashing kan produsere falske positiver, der legitime filer blir flagget som skadelige fordi de har lik kode eller struktur som kjent skadelig programvare. Dette kan skje hvis filene deler felles biblioteker eller rammeverk.

  2. Ytelse: Fuzzy hashing kan være beregningsintensivt, spesielt for store filer. Dette kan forsinke skanneprosessen og påvirke systemets ytelse.

  3. Størrelsesbegrensninger: Fuzzy hashing fungerer kanskje ikke godt på veldig små filer eller filer med lav entropi, ettersom det kanskje ikke er nok unike biter til å generere meningsfulle hasher.

  4. Manipulering: Fuzzy hashing kan være ineffektivt hvis en angriper spesifikt målretter det og endrer en fil for å unngå deteksjon. For eksempel kunne en angriper med vilje endre strukturen på en fil for å forhindre at den blir identifisert av fuzzy hashing.


 

Hva er forskjellen mellom kryptografiske hash-algoritmer og uskarpe hash-algoritmer?

Kryptografiske hash-algoritmer og uskarpe hash-algoritmer brukes begge innen cybersikkerhet, men de har ulike formål og egenskaper.

Kryptografiske hash-algoritmer, slik som SHA-256 og MD5, er designet for å sikre dataintegritet og autentisitet ved å generere fastlengde, unike hash-verdier som er nesten umulige å reversere. Kryptografiske hash-algoritmer brukes til å verifisere integriteten til data.

Fuzzy hash-algoritmer, slik som SSDEEP, er designet for å identifisere lignende, men ikke identiske data, slik som filer som har blitt modifisert eller ompakket av malware-forfattere. Fuzzy hashing bruker en teknikk med glidende vindu for å dele opp data i små biter og generere variable, probabilistiske hasjer som sammenlignes mot en database med kjente malware-hasjer for å identifisere potensielt skadelige filer.

Kryptografiske hash-algoritmer er designet for å være kollisjonsresistente, noe som betyr at det er ekstremt vanskelig å finne to inndata som produserer samme hash-utdata. Fuzzy hash-algoritmer trenger ikke å være kollisjonsresistente siden de er designet for å oppdage likheter mellom filer i stedet for å produsere unike hash-utdata

Hovedforskjellen mellom kryptografiske hash-algoritmer og fuzzy hash-algoritmer er deres grad av determinisme. Kryptografiske hash-algoritmer produserer fastlengde, deterministiske hasher som er unike for hver inndata, mens fuzzy hash-algoritmer produserer variable lengder, probabilistiske hasher som er like for lignende inndata.

 

Hvilke fuzzy hashing-algoritmer vil vi bruke i vår løsning?

 

I vår løsning skal vi bruke SSDEEP og TLSH.

 

ssdeep er en fuzzy hash-algoritme som brukes til å identifisere lignende, men ikke identiske data, slik som varianter av skadevare. Den fungerer ved å generere en hash-verdi som representerer likheten til inndataene, i stedet for en unik identifikator som kryptografiske hash-funksjoner. Utdata fra ssdeep er av variabel lengde og probabilistisk, noe som gjør det mulig å oppdage selv små forskjeller mellom to filer. ssdeep brukes ofte i analyse og deteksjon av skadevare, og den er også integrert i ulike sikkerhetsverktøy og antivirusprogrammer.

 

TLSH (Trend Micro Locality Sensitive Hash) er en fuzzy hashing-algoritme som brukes til å identifisere lignende, men ikke identiske data, som for eksempel malware-varianter. Den fungerer ved å skape en hash-verdi som fanger opp unike egenskaper ved inndata, slik som bytefrekvens og rekkefølge. Utdata fra TLSH er av variabel lengde og probabilistisk, noe som gjør det mulig å oppdage likheter selv om inndataene har blitt endret eller obfuskerte. TLSH brukes ofte i analyse og deteksjon av malware, og er også integrert i ulike sikkerhetsverktøy og antivirusprogramvare.

 

ssdeep og TLSH bruker begge avstandsmetrikker for å bestemme likheten mellom to hashverdier. Imidlertid er avstandsmetrikker som brukes av ssdeep og TLSH forskjellige.

ssdeep bruker metrikken "fuzzy hash distance" for å beregne avstanden mellom to hashverdier. Denne avstandsmetrikken er basert på antall samsvarsende og ikke-samsvarsende blokker mellom de to hashene, samt størrelsen på hashene. Avstandsmetrikken er en prosentverdi som varierer fra 0 til 100, der 0 betyr at de to hashene er identiske, og 100 betyr at de to hashene er helt ulike.

TLSH bruker på den andre siden "total diff"-målingen for å beregne avstanden mellom to hashverdier. Denne avstandsmålingen er basert på forskjellen mellom de lokasjonssensitive egenskapene til de to inndata settene. Resultatet av "total diff"-målingen er en verdi mellom 0 og 1000, hvor 0 betyr at de to hashverdiene er identiske, og 1000 betyr at de to hashverdiene er helt forskjellige.

 

Bygger hash-modulen

For vår løsning vil vi bruke åpen kildekode-biblioteker:

    1. PolarSSL: https://polarssl.org/

PolarSSL er et gratis og åpen kildekode programvarebibliotek for implementering av kryptografiske protokoller som Transport Layer Security (TLS), Secure Sockets Layer (SSL), Datagram Transport Layer Security (DTLS). Det tilbyr ulike kryptografiske algoritmer og protokoller, inkludert hashfunksjoner, symmetrisk og asymmetrisk kryptering, digitale signaturer og nøkkelutvekslingsalgoritmer. PolarSSL er designet for å være lett og effektivt, noe som gjør det egnet for bruk i ressursbegrensede miljøer.

    2. ssdeep: http://ssdeep.sf.net/

    3. TLSH: https://github.com/trendmicro/tlsh/

Etter å ha implementert bibliotekene i prosjektet, legger vi til en enkel kode:

struct HashData
{
   	BYTE  md5[16];
   	BYTE  sha1[20];
   	BYTE  sha512[64];
   	std::string ssdeep;
   	std::string tlsh;
};

HashData hash(const void* buff, uint64_t size)
{
   	HashData snap = {};

   	hashes::md5(buff, size,  snap.md5);
   	hashes::sha1(buff, size, snap.sha1);
   	hashes::sha4(buff, size, snap.sha512);

   	snap.ssdeep = hashes::ssdeepHash(buff, size);
   	snap.tlsh   = hashes::tlshHash(buff, size);

   	return snap;
}

 

Kontrollerer hash-modulen

 

Det er på tide å teste hashing-modulen! For å gjøre dette, vil vi opprette en tekstfil med følgende innhold:

All the World`s a Stage by William Shakespeare
All the world`s a stage,
And all the men and women merely players;
They have their exits and their entrances,
And one man in his time plays many parts,
His acts being seven ages. At first, the infant,
Mewling and puking in the nurse`s arms.
Then the whining schoolboy, with his satchel
And shining morning face, creeping like snail
Unwillingly to school. And then the lover,
Sighing like furnace, with a woeful ballad
Made to his mistress` eyebrow. Then a soldier,
Full of strange oaths and bearded like the pard,
Jealous in honor, sudden and quick in quarrel,
Seeking the bubble reputation
Even in the cannon`s mouth. And then the justice,
In fair round belly with good capon lined,
With eyes severe and beard of formal cut,
Full of wise saws and modern instances;
And so he plays his part. The sixth age shifts
Into the lean and slippered pantaloon,
With spectacles on nose and pouch on side;
His youthful hose, well saved, a world too wide
For his shrunk shank, and his big manly voice,
Turning again toward childish treble, pipes
And whistles in his sound. Last scene of all,
That ends this strange eventful history,
Is second childishness and mere oblivion,
Sans teeth, sans eyes, sans taste, sans everything.

 

TEST 1: Opprett to identiske filer med samme innhold (teksten ovenfor) og beregn hashene.

SSDEEP sier at filene er 100% identiske. TLSH sier at det er 0% forskjeller mellom filene.

 

TEST 2: Opprett to identiske filer med samme innhold, gjør endringer i den andre filen og beregn hashverdier

Innhold i andre fil:

All the World`s a Stage by William Shakespeare
O lovely maidens, fall in love,
But not with Muscovites,
For Muscovites are foreign folk,
They do not treat you right.
A Muscovite will love for sport,
And laughing go away;
They have their exits and their entrances,
And one man in his time plays many parts,
His acts being seven ages. At first, the infant,
Mewling and puking in the nurse`s arms.
Then the whining schoolboy, with his satchel
And shining morning face, creeping like snail
Unwillingly to school. And then the lover,
Sighing like furnace, with a woeful ballad
Made to his mistress` eyebrow. Then a soldier,
Full of strange oaths and bearded like the pard,
Jealous in honor, sudden and quick in quarrel,
Seeking the bubble reputation
Even in the cannon`s mouth. And then the justice,
In fair round belly with good capon lined,
With eyes severe and beard of formal cut,
Full of wise saws and modern instances;
And so he plays his part. The sixth age shifts
Into the lean and slippered pantaloon,
With spectacles on nose and pouch on side;
His youthful hose, well saved, a world too wide
For his shrunk shank, and his big manly voice,
Turning again toward childish treble, pipes
And whistles in his sound. Last scene of all,
That ends this strange eventful history,
Is second childishness and mere oblivion,
Sans teeth, sans eyes, sans taste, sans everything.

SSDEEP sier at filene er 88 % identiske. TLSH sier at det er 4,7 % forskjeller mellom filene.

 

TEST 3: beregn hasher for to helt forskjellige tekstfiler

Innhold i andre fil:

"Katerina", poem of Taras Shevchenko
(translated by John Weir)

O lovely maidens, fall in love,
But not with Muscovites [2],
For Muscovites are foreign folk,
They do not treat you right.
A Muscovite will love for sport,
And laughing go away;
He`ll go back to his Moscow land
And leave the maid a prey
To grief and shame...
It could be borne
If she were all alone,
But scorn is also heaped upon
Her mother frail and old.
The heart e`en languishing can sing –
For it knows how to wait;
But this the people do not see:
“A strumpet!“ they will say.
O lovely maidens, fall in love,
But not with Muscovites,
For Muscovites are foreign folk,
They leave you in a plight.
Young Katerina did not heed
Her parent`s warning words,
She fell in love with all her heart,
Forgetting all the world.    

The orchard was their trysting-place;
She went there in the night
To meet her handsome Muscovite,
And thus she ruined her life.
Her anxious mother called and called
Her daughter home in vain;
There where her lover she caressed,
The whole night she remained.
Thus many nights she kissed her love
With passion strong and true,
The village gossips meanwhile hissed:
“A girl of ill repute!”
Let people talk, let gossips prate,
She does not even hear:
She is in love, that`s all she cares,
Nor feels disaster near.
Bad tidings came of strife with Turks,
The bugles blew one morn:
Her Muscovite went off to war,
And she remained at home.
A kerchief o`er her braids they placed
To show she`s not a maid,
But Katerina does not mind,
Her lover she awaits.
He promised her that he’d return
If he was left alive,
That he`d come back after the war –
And then she`d be his wife,
An army bride, a Muscovite
Herself, her ills forgot,
And if in meantime people prate,
Well, let the people talk!
She does not worry, not a bit –
The reason that she weeps
Is that the girls at sundown sing
Without her on the streets.
No, Katerina does not fret –
And jet her eyelids swell,
And she at midnight goes to fetch

The water from the well
So that she won`t by foes be seen;
When to the well she comes,
She stands beneath the snowball-tree
And sings such mournful songs,
Such songs of misery and grief,
The rose .itself must weep.
Then she comes home - content that she
By neighbours was not seen.
No, Katerina does not fret.
She`s carefree as can be -
With her new kerchief on her head
She looks out on the street.
So at the window day by day
Six months she sat in vain....
With sickness then was overcome,
Her body racked with pain.
Her illness very grievous proved.
She barely breathed for days ...
When it was over - by the stove
She rocked her tiny babe.
The gossips` tongues now got free rein.
The other mothers jibed
That soldiers marching home again
At her house spent the night.
“Oh, you have reared a daughter fair.
And not alone beside
The stove she sits - she`s drilling there
A little Muscovite.
She found herself a brown-eyed son...
You must have taught her how!...
Oh fie on ye, ye prattle tongues,
I hope yourselves you`ll feel
Someday such pains as she who bore
A son that you should jeer!
Oh, Katerina, my poor dear!
How cruel a fate is thine!

SSDEEP sier at filene er helt forskjellige, med 0 % treff. Imidlertid sier TLSH at filene bare er 27,1 % forskjellige.

 

Hvorfor er det slik? Tross alt, vurderer vi avstanden mellom to helt forskjellige tekstfiler, ikke sant?

 

Saken er at, som vi nevnte ovenfor, tar TLSH-algoritmen hensyn til frekvenser.

Til tross for at tekstene er forskjellige, er de likevel skrevet på samme språk, bruker samme alfabet og har en rekke like ord. Denne egenskapen til denne hashing-algoritmen bidrar til å oppdage modifikasjoner av ondsinnede filer.

 

TEST 4: sammenlign 2 Windows systemfiler

SSDEEP sier at filene er helt forskjellige, med 0% samsvar.

Imidlertid sier TLSH-algoritmen at filene bare er forskjellige med 14,5 %. Dette skyldes delvis at filene mest sannsynlig ble bygget av samme kompilator, av samme selskap, muligens ved bruk av de samme kode mønstrene. Filene har lignende VERSION_INFO og MZ-hoder.

 

TEST 5: Sammenlign 2 systemfiler og vår hashpair.exe-fil

SSDEEP sier at filene er helt forskjellige, med 0% samsvar.

TLSH-algoritmen sier at filene er vesentlig forskjellige, med 73,3%. Disse filene ble kompilert av forskjellige selskaper, ved bruk av forskjellige biblioteker og forskjellige kompilatorer. Disse filene har forskjellig VERSION_INFO og forskjellige MZ-hoder. Dermed lar TLSH-algoritmen deg kategorisere kjørbare filer, noe som hjelper til med å identifisere lignende ondsinnede filer eller ondsinnede filer fra samme familie.

 

Liste over brukte verktøy

    1. WinMerge: https://winmerge.org

WinMerge er et Open Source-verktøy for differensiering og sammenslåing for Windows. WinMerge kan sammenligne både mapper og filer, og presenterer forskjeller i et visuelt tekstformat som er enkelt å forstå og håndtere.

    2. Notepad++: https://notepad-plus-plus.org/downloads

Notepad++ er en gratis (som i "fri tale" og også som i "gratis øl") kildekodeeditor og Notepad-erstatning som støtter flere språk. Kjørende i MS Windows-miljøet, er bruken regulert av GNU General Public License.

 

GITHUB

Du kan finne koden til hele prosjektet på vår github:

https://github.com/SToFU-Systems/DSAVE

 

HVA ER NESTE?

Vi setter pris på din støtte og ser frem til din fortsatte engasjement i vårt samfunn

I neste artikkel skal vi sammen med deg skrive den enkleste PE resource parser.

Eventuelle spørsmål til forfatterne av artikkelen kan sendes til e-posten: articles@stofu.io

Takk for oppmerksomheten og ha en fin dag!