Skadlig programvara

Analys av Linux-skadlig programvara

Analys av Linux-skadlig programvara
Skadlig programvara är en skadlig kod som skickas i avsikt att skada datorns system. Skadlig programvara kan vara av vilken typ som helst, såsom rootkits, spyware, adware, virus, maskar, etc., som gömmer sig och körs i bakgrunden medan den kommunicerar med sitt kommando- och styrsystem på det externa nätverket. Numera är de flesta malware målspecificerade och speciellt programmerade för att kringgå målsystemets säkerhetsåtgärder. Det är därför avancerad skadlig kod kan vara mycket svår att upptäcka genom normala säkerhetslösningar. Malwares är vanligtvis målspecifika och ett viktigt steg för att utlösa en skadlig kod är dess infektionsvektor, dvs.e., hur skadlig programvara når målets yta. Till exempel kan ett icke-beskrivet USB-minne eller skadliga nedladdningsbara länkar (via socialteknik / nätfiske) användas. Skadlig programvara måste kunna utnyttja en sårbarhet för att infektera målsystemet. I de flesta fall är skadlig programvara utrustad med förmågan att utföra mer än en funktion; till exempel kan skadlig programvara innehålla en kod för att utnyttja en viss sårbarhet och kan också ha en nyttolast eller ett program för att kommunicera med den angripande maskinen.

REMnux

Demontering av en skadlig dator för att studera dess beteende och förstå vad den faktiskt gör kallas Omvänd teknik för skadlig programvara. För att avgöra om en körbar fil innehåller skadlig kod eller om den bara är en vanlig körbar, eller för att veta vad en körbar fil verkligen gör och vilken inverkan den har på systemet, finns det en speciell Linux-distribution som heter REMnux. REMnux är en lätt, Ubuntu-baserad distro utrustad med alla verktyg och skript som behövs för att utföra en detaljerad skadlig analys på en viss fil eller programvara körbar. REMnux är utrustad med gratis och öppen källkodsverktyg som kan användas för att undersöka alla typer av filer, inklusive körbara filer. Några verktyg i REMnux kan även användas för att undersöka oklar eller förvirrad JavaScript-kod och Flash-program.

Installation

REMnux kan köras på vilken Linux-baserad distribution som helst eller i en virtuell ruta med Linux som värdoperativsystem. Det första steget är att ladda ner REMnux distribution från dess officiella webbplats, vilket kan göras genom att ange följande kommando:

[e-postskyddad]: ~ $ wget https: // REMnux.org / remnux-cli

Kontrollera att det är samma fil som du vill genom att jämföra SHA1-signaturen. SHA1-signaturen kan produceras med följande kommando:

[e-postskyddad]: ~ $ sha256sum remnux-cli

Flytta sedan den till en annan katalog som heter “Remnux” och ge den körbara behörigheter med “Chmod + x.” Kör nu följande kommando för att starta installationsprocessen:

[e-postskyddad]: ~ $ mkdir remnux
[e-postskyddad]: ~ $ cd remnux
[e-postskyddad]: ~ $ mv ... / remux-cli ./
[e-postskyddad]: ~ $ chmod + x remnux-cli
// Installera Remnux
[e-postskyddad]: ~ $ sudo installera remnux

Starta om ditt system så kan du använda det nyligen installerade REMnux distro som innehåller alla tillgängliga verktyg för omvänd teknik.

En annan användbar sak om REMnux är att du kan använda dockerbilder av populära REMnux verktyg för att utföra en specifik uppgift istället för att installera hela distributionen. Till exempel RetDec verktyget används för att ta isär maskinkoden och det tar in inmatning i olika filformat, till exempel 32-bitars / 62-bitars exe-filer, elf-filer, etc. Rekall är ett annat bra verktyg som innehåller en docker-bild som kan användas för att utföra några användbara uppgifter, som extrahera minnesdata och hämta viktiga data. För att undersöka ett oklart JavaScript, ett verktyg som heter JSdetox kan också användas. Dockerbilder av dessa verktyg finns i REMnux förvaret i Docker Hub.

Analys av skadlig programvara

Kontroll av oförutsägbarheten för en dataström kallas Entropi. En konsekvent ström av byte av data, till exempel alla nollor eller alla, har 0 Entropy. Å andra sidan, om data är krypterad eller består av alternativa bitar, kommer den att ha ett högre entropivärde. Ett välkrypterat datapaket har ett högre entropivärde än ett normalt datapaket eftersom bitvärden i krypterade paket är oförutsägbara och förändras snabbare. Entropy har ett minimivärde på 0 och ett maximalt värde på 8. Den primära användningen av Entropy i Malware-analys är att hitta skadlig kod i körbara filer. Om en körbar innehåller skadlig skadlig kod, är den oftast krypterad så att AntiVirus inte kan undersöka dess innehåll. Entropinivån för den typen av fil är mycket hög, jämfört med en vanlig fil, som skickar en signal till utredaren om något misstänkt i innehållet i en fil. Ett högt entropivärde betyder hög kryptering av dataströmmen, vilket är en tydlig indikation på något fiskigt.

Detta användbara verktyg skapas för ett enda syfte: att hitta skadlig kod i ett system. Vanligtvis är det som angriparna gör är att packa upp skadlig kod i krypterad data (eller koda / kryptera den) så att den inte kan upptäckas av antivirusprogram. Density Scout genomsöker den angivna filsystemvägen och skriver ut entropivärdena för varje fil i varje sökväg (från högsta till lägsta). Ett högt värde gör utredaren misstänksam och han eller hon kommer att undersöka filen vidare. Det här verktyget är tillgängligt för operativsystem Linux, Windows och Mac. Density Scout har också en hjälpmeny som visar en mängd olika alternativ den ger, med följande syntax:

ubuntu @ ubuntu: ~ densitetsscout --h

ByteHist är ett mycket användbart verktyg för att generera ett diagram eller histogram enligt datakrypteringsnivån (entropi) för olika filer. Det gör en utredares arbete ännu enklare, eftersom det här verktyget till och med gör histogram av underavsnitten i en körbar fil. Det betyder att utredaren nu enkelt kan fokusera på den del där misstankar uppstår genom att bara titta på histogrammet. En histogram med en normal utseende skulle vara helt annorlunda än en skadlig.

Avvikelse upptäckt

Malwares kan packas normalt med olika verktyg, t.ex UPX. Dessa verktyg ändrar rubrikerna för körbara filer. När någon försöker öppna dessa filer med en felsökare, kraschar de modifierade rubrikerna felsökaren så att utredare inte kan titta på den. För dessa fall, Avvikande upptäckt verktyg används.

PE Scanner är ett användbart skript skrivet i Python som används för att upptäcka misstänkta TLS-poster, ogiltiga tidsstämplar, sektioner med misstänkt entropinivåer, sektioner med nollängds råstorlekar och de skadliga programvarorna packade i exe-filer, bland andra funktioner.

Ett annat bra verktyg för att skanna exe- eller dll-filer för ett konstigt beteende är EXE-skanning. Detta verktyg kontrollerar rubrikfältet för körbara filer för misstänkta entropinivåer, sektioner med råstorlekar utan längd, skillnad i kontrollsumma och alla andra typer av oregelbundna beteenden hos filer. EXE Scan har fantastiska funktioner som genererar en detaljerad rapport och automatiserar uppgifterna, vilket sparar mycket tid.

Förvirrade strängar

Angripare kan använda en skiftande metod för att dölja strängarna i skadliga körbara filer. Det finns vissa typer av kodning som kan användas för fördunkning. Till exempel, RUTTNA kodning används för att rotera alla tecken (mindre bokstäver och stora bokstäver) med ett visst antal positioner. XOR kodning använder en hemlig nyckel eller lösenfras (konstant) för att koda eller XOR en fil. ROL kodar bytes i en fil genom att rotera dem efter ett visst antal bitar. Det finns olika verktyg för att extrahera dessa förbryllade strängar från en viss fil.

XORsearch används för att leta efter innehåll i en fil som kodas med ROT-, XOR- och ROL-algoritmer. Det kommer att tvinga alla en-byte nyckelvärden. För längre värden tar det här verktyget mycket tid, varför du måste ange strängen du letar efter. Några användbara strängar som vanligtvis finns i skadlig kod är “http”(Oftast döljs webbadresser i skadlig kod), "Det här programmet" (filhuvudet ändras genom att skriva "Detta program kan inte köras i DOS" i många fall). Efter att ha hittat en nyckel kan alla byte avkodas med den. XTsearch-syntaksen är som följer:

ubuntu @ ubuntu: ~ xorsearch -s
  • brutexor

Efter att ha hittat nycklar med program som xor-sökning, xor-strängar, etc., man kan använda ett bra verktyg som kallas brutexor att brutalisera alla filer för strängar utan att ange en viss sträng. När du använder -f alternativet kan hela filen väljas. En fil kan tvingas först och strängarna extraheras kopieras i en annan fil. Sedan, efter att ha tittat på de extraherade strängarna, kan man hitta nyckeln, och nu kan man använda den här tangenten för att extrahera alla strängar som är kodade med den specifika nyckeln.

ubuntu @ ubuntu: ~ brutexor.py >> vill kopiera de extraherade strängarna>
ubuntu @ ubuntu: ~ brutexor.py -f -k

Extraktion av artefakter och värdefulla data (borttagen)

För att analysera diskbilder och hårddiskar och extrahera artefakter och värdefull data från dem med olika verktyg som Skalpell, Främst, etc., man måste först skapa en bit för bit bild av dem så att inga data går förlorade. För att skapa dessa bildkopior finns det olika verktyg tillgängliga.

  • dd

dd används för att skapa en kriminalteknisk bild av en enhet. Det här verktyget ger också en integritetskontroll genom att möjliggöra jämförelse mellan hasharna för en bild och den ursprungliga hårddisken. Dd-verktyget kan användas enligt följande:

ubuntu @ ubuntu: ~ dd if = av = bs = 512
if = Källenhet (till exempel / dev / sda)
av = Destinationsplats
bs = Blockstorlek (antalet byte som ska kopieras åt gången)
  • dcfldd

dcfldd är ett annat verktyg som används för diskavbildning. Detta verktyg är som en uppgraderad version av dd-verktyget. Det ger fler alternativ än dd, som hashing vid tidpunkten för avbildning. Du kan utforska dcfldds alternativ med följande kommando:

ubuntu @ ubuntu: ~ dcfldd -h
Användning: dcfldd [OPTION] ..
bs = BYTES kraft ibs = BYTES och obs = BYTES
conv = NYCKELORD konverterar filen enligt den kommaseparerade nyckelordslistan
count = BLOCKS kopiera endast BLOCKS-inmatningsblock
ibs = BYTES läs BYTES byte åt gången
if = FILE läst från FILE istället för stdin
obs = BYTES skriv BYTES byte åt gången
of = FILE skriv till FILE istället för stdout
OBS: av = FIL kan användas flera gånger för att skriva
utdata till flera filer samtidigt
av: = COMMAND exec och skriv utdata för att bearbeta COMMAND
hoppa = BLOCKS hoppa över BLOCK Ibs-stora block vid ingångens start
mönster = HEX använd det angivna binära mönstret som inmatning
textpattern = TEXT använd upprepad TEXT som inmatning
errlog = FILE skicka felmeddelanden till FILE såväl som stderr
hash = NAME antingen md5, sha1, sha256, sha384 eller sha512
standardalgoritmen är md5. För att välja flera
algoritmer som ska köras samtidigt ange namnen
i en kommaseparerad lista
hashlog = FILE skicka MD5-hash-utdata till FILE istället för stderr
om du använder flera hashalgoritmer dig
kan skicka var och en till en separat fil med hjälp av
konvention ALGORITHMlog = FIL, till exempel
md5log = FILE1, sha1log = FILE2, etc.
hashlog: = COMMAND exec och skriv hashlog för att bearbeta COMMAND
ALGORITHMlog: = COMMAND fungerar också på samma sätt
hashconv = [före | efter] utför hashing före eller efter konverteringarna
hash-format = FORMAT visar varje hash-fönster enligt FORMAT
hash-formatets minispråk beskrivs nedan
totalhash format = FORMAT visa det totala hashvärdet enligt FORMAT
status = [on | off] visa ett kontinuerligt statusmeddelande på stderr
standardläget är "på"
statusinterval = N uppdatera statusmeddelandet varje N blockerar
standardvärdet är 256
vf = FILE verifiera att FILE matchar den angivna ingången
verifylog = FILE skicka verifieringsresultat till FILE istället för stderr
verifylog: = COMMAND exec och skriv verifiera resultat för att bearbeta COMMAND
--hjälp att visa den här hjälpen och avsluta
--version output version information och exit
  • Främst

Framförallt används för att skära data ur en bildfil med en teknik som kallas filhuggning. Huvudfokus för filhuggning är snidningsdata med sidhuvud och sidfot. Konfigurationsfilen innehåller flera rubriker som kan redigeras av användaren. Först extraherar rubrikerna och jämför dem med de i konfigurationsfilen. Om den matchar visas den.

  • Skalpell

Scalpel är ett annat verktyg som används för datainhämtning och dataextraktion och är relativt snabbare än Först. Scalpel tittar på det blockerade datalagringsområdet och börjar återställa de raderade filerna. Innan du använder verktyget måste raden av filtyper tas bort från kommentarer # från önskad rad. Scalpel finns för både Windows- och Linux-operativsystem och anses vara mycket användbart i kriminaltekniska utredningar.

  • Bulkextraktor

Bulk Extractor används för att extrahera funktioner, såsom e-postadresser, kreditkortsnummer, URL: er, etc. Detta verktyg innehåller många funktioner som ger enorma hastigheter till uppgifterna. För dekomprimering av delvis skadade filer används Bulk Extractor. Det kan hämta filer som jpgs, pdfs, word-dokument, etc. Ett annat inslag i det här verktyget är att det skapar histogram och diagram över återställda filtyper, vilket gör det mycket lättare för utredare att titta på önskade platser eller dokument.

Analysera PDF-filer

Att ha ett helt lappat datorsystem och det senaste antivirusprogrammet betyder inte nödvändigtvis att systemet är säkert. Skadlig kod kan komma in i systemet var som helst, inklusive PDF-filer, skadliga dokument etc. En pdf-fil består vanligtvis av en rubrik, objekt, en korsreferenstabell (för att hitta artiklar) och en trailer. “/ OpenAction” och “/ AA” (ytterligare åtgärd) säkerställer att innehållet eller aktiviteten fungerar naturligt. “/ Namn,” “/ AcroForm,” och "/Handling" kan också ange och skicka innehåll eller aktiviteter. “/ JavaScript” anger att JavaScript ska köras. "/Gå till*" ändrar vyn till ett fördefinierat mål i PDF-filen eller i en annan PDF-post. "/Lansera" skickar ett program eller öppnar ett arkiv. “/ URI” hämtar en tillgång genom sin URL. “/ SubmitForm” och “/ GoToR” kan skicka information till webbadressen. "/Rik media" kan användas för att installera Flash i PDF. “/ ObjStm” kan hölja föremål inuti en Object Stream. Var till exempel medveten om förvirring med hexkoder, “/ JavaScript” mot “/ J # 61vaScript.” Pdf-filer kan undersökas med olika verktyg för att avgöra om de innehåller skadlig JavaScript eller shellcode.

  • pdfid.py

pdfid.py är ett Python-skript som används för att få information om en PDF och dess rubriker. Låt oss ta en titt på analys av en PDF med pdfid:

ubuntu @ ubuntu: ~ python pdfid.py skadlig.pdf
PDFiD 0.2.1 / home / ubuntu / Desktop / skadlig.pdf
PDF-rubrik:% PDF-1.7
objekt 215
215
ström 12
slutström 12
xref 2
släpvagn 2
startxref 2
/Sida 1
/ Kryptera 0
/ ObjStm 2
/ JS 0
/ JavaScript 2
/ AA 0
/ OpenAction 0
/ AcroForm 0
/ JBIG2Decode 0
/ RichMedia 0
/ Starta 0
/ EmbeddedFile 0
/ XFA 0
/ Färger> 2 ^ 24 0

Här kan du se att en JavaScript-kod finns i PDF-filen, som oftast används för att utnyttja Adobe Reader.

  • peepdf

peepdf innehåller allt som behövs för PDF-filanalys. Detta verktyg ger utredaren en titt på kodnings- och avkodningsströmmar, redigering av metadata, skalkod, körning av skalkoder och skadlig JavaScript. Peepdf har signaturer för många sårbarheter. När den körs med en skadlig pdf-fil kommer peepdf att avslöja alla kända sårbarheter. Peepdf är ett Python-skript och det ger en mängd olika alternativ för att analysera en PDF. Peepdf används också av skadliga kodare för att packa en PDF med skadlig JavaScript, som körs när PDF-filen öppnas. Skalkodanalys, utvinning av skadligt innehåll, utvinning av gamla dokumentversioner, ändring av objekt och filterändring är bara några av detta verktygs breda utbud av funktioner.

ubuntu @ ubuntu: ~ python peepdf.py skadlig.pdf
Fil: skadlig.pdf
MD5: 5b92c62181d238f4e94d98bd9cf0da8d
SHA1: 3c81d17f8c6fc0d5d18a3a1c110700a9c8076e90
SHA256: 2f2f159d1dc119dcf548a4cb94160f8c51372a9385ee60dc29e77ac9b5f34059
Storlek: 263069 byte
Version: 1.7
Binär: sant
Linjäriserad: Falsk
Krypterad: Falsk
Uppdateringar: 1
Objekt: 1038
Strömmar: 12
URI: er 156
Kommentarer: 0
Fel: 2
Strömmar (12): [4, 204, 705, 1022, 1023, 1027, 1029, 1031, 1032, 1033, 1036, 1038]
Xref-strömmar (1): [1038]
Objektströmmar (2): [204, 705]
Kodad (11): [4, 204, 705, 1022, 1023, 1027, 1029, 1031, 1032, 1033, 1038]
Objekt med URI (156): [11, 12, 13, 14, 15, 16, 24, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175]
 
Misstänkta element: / Namn (1): [200]

Gök Sandlåda

Sandboxing används för att kontrollera beteendet hos oprovade eller opålitliga program i en säker, realistisk miljö. Efter att ha lagt in en fil Gök Sandlåda, på några minuter kommer detta verktyg att avslöja all relevant information och beteende. Malwares är det viktigaste vapnet för angripare och Gök är det bästa försvaret man kan ha. Numera är det inte tillräckligt att bara veta att en skadlig kod träder in i ett system och tar bort det, och en bra säkerhetsanalytiker måste analysera och titta på programmets beteende för att bestämma effekten på operativsystemet, hela dess sammanhang och dess huvudsakliga mål.

Installation

Gök kan installeras på operativsystemen Windows, Mac eller Linux genom att ladda ner det här verktyget via den officiella webbplatsen: https: // cuckoosandbox.org /

För att Gök ska fungera smidigt måste man installera några Python-moduler och bibliotek. Detta kan göras med följande kommandon:

ubuntu @ ubuntu: ~ sudo apt-get install python python-pip
python-dev mongodb postgresql libpq-dev

För att Cuckoo ska visa utdata som avslöjar programmets beteende i nätverket krävs en paketsniffer som tcpdump, som kan installeras med följande kommando:

ubuntu @ ubuntu: ~ sudo apt-get install tcpdump

För att ge Python-programmeraren SSL-funktionalitet för att implementera klienter och servrar kan m2crypto användas:

ubuntu @ ubuntu: ~ sudo apt-get install m2crypto

Användande

Gök analyserar en mängd olika filtyper, inklusive PDF-filer, orddokument, körbara filer etc. Med den senaste versionen kan även webbplatser analyseras med detta verktyg. Gök kan också släppa nätverkstrafik eller dirigera den via en VPN. Detta verktyg dumpar till och med nätverkstrafik eller SSL-aktiverad nätverkstrafik, och det kan analyseras igen. PHP-skript, URL: er, html-filer, visuella grundläggande skript, zip, dll-filer och nästan alla andra typer av filer kan analyseras med Cuckoo Sandbox.

För att använda Cuckoo måste du skicka in ett prov och sedan analysera dess effekt och beteende.

Använd följande kommando för att skicka binära filer:

# gök skicka in

Använd följande kommando för att skicka en URL:

# gök skicka in

För att ställa in en timeout för analys, använd följande kommando:

# gök skicka timeout = 60-talet

För att ställa in en högre egenskap för en given binär, använd följande kommando:

# gök skicka --prioritet 5

Den grundläggande syntaksen för Gök är som följer:

# gök skicka - paket exe - alternativ argument = dosometask

När analysen är klar kan ett antal filer ses i katalogen “CWD / lagring / analys,” innehållande resultaten av analysen på de tillhandahållna proverna. Filerna i den här katalogen innehåller följande:

  • Analys.logga: Innehåller processresultaten under analystiden, till exempel körningsfel, skapande av filer, etc.
  • Minne.dumpa: Innehåller hela minnesdumpanalysen.
  • Dumpa.pcap: Innehåller nätverksdumpen skapad av tcpdump.
  • Filer: Innehåller alla filer som skadlig programvara arbetade med eller påverkade.
  • Dump_sorterad.pcap: Innehåller en lättförståelig form av dumpning.pcap-fil för att slå upp TCP-strömmen.
  • Loggar: Innehåller alla skapade loggar.
  • Skott: Innehåller ögonblicksbilder av skrivbordet under bearbetning av skadlig kod eller under den tid som skadlig programvara kördes på Cuckoo-systemet.
  • Tlsmaster.Text: Innehåller TLS-masterhemligheter som fångats under körningen av skadlig kod.

Slutsats

Det finns en allmän uppfattning att Linux är virusfritt eller att chansen att få skadlig kod på detta operativsystem är mycket sällsynt. Mer än hälften av webbservrarna är Linux- eller Unix-baserade. Med så många Linux-system som betjänar webbplatser och annan internettrafik ser angripare en stor attackvektor i skadlig programvara för Linux-system. Så även daglig användning av AntiVirus-motorer skulle inte räcka. För att försvara sig mot hot mot skadlig programvara finns det många antivirus- och slutpunktssäkerhetslösningar tillgängliga. Men att analysera en skadlig kod manuellt, REMnux och Cuckoo Sandbox är de bästa tillgängliga alternativen. REMnux tillhandahåller ett brett utbud av verktyg i ett lätt, lätt att installera distributionssystem som skulle vara bra för alla rättsmedicinska utredare vid analys av skadliga filer av alla slag för skadlig programvara. Några mycket användbara verktyg har redan beskrivits i detalj, men det är inte allt som REMnux har, det är bara toppen av isberget. Några av de mest användbara verktygen i REMnux-distributionssystemet inkluderar följande:

För att förstå beteendet hos ett misstänkt, opålitligt eller tredjepartsprogram måste detta verktyg köras i en säker, realistisk miljö, t.ex Gök Sandlåda, så att skador inte kan göras på värdoperativsystemet.

Användning av nätverkskontroller och systemhärdningstekniker ger systemet ett extra skydd. Incidentresponsen eller digitala rättsmedicinska undersökningstekniker måste också uppgraderas regelbundet för att övervinna skadliga hot mot ditt system.

Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...