20/03/2022
I den digitale tidsalder er truslen fra ondsindet software – eller malware – en konstant bekymring for både individuelle brugere og store organisationer. Blandt de mest snigende og vildledende former for malware finder vi trojaneren. Navnet, der stammer fra den gamle græske myte om den trojanske hest, er yderst passende, da en trojaner forklæder sig som et legitimt og harmløst program for at narre brugere til at installere og køre den. Når den først er inde i dit system, kan den udføre en række skadelige handlinger uden din viden. Men hvordan bliver disse lumske programmer skabt, og hvordan har udviklingen gjort dem mere tilgængelige for potentielle cyberkriminelle? Denne artikel vil udforske trojanerens anatomi, de tekniske metoder bag dens konstruktion, og hvordan selv de uden kodefærdigheder nu kan skabe dem.

- Hvad er en Trojaner, og Hvordan Fungerer Den?
- Tekniske Metoder til Trojanerudvikling
- Antivirus-Omgåelse og Obfuskation
- Fra Kompleks Kode til Brugervenlige Apps: Trojanerudviklingssæt (TDK)
- Ransomware: Et Særligt Farligt Eksempel
- Sådan Beskytter Du Dig Mod Trojanere
- Ofte Stillede Spørgsmål
- Konklusion
Hvad er en Trojaner, og Hvordan Fungerer Den?
En trojaner er en type malware, der udgiver sig for at være et godartet program. Den kan ligne et spil, et administrativt værktøj, en filkonverter eller endda en sikkerhedsopdatering. Målet er at lokke brugeren til at downloade og køre den. I modsætning til vira replikerer en trojaner sig typisk ikke selv direkte ved at inficere andre programmer, og i modsætning til orme spreder den sig ikke selvstændigt over netværk (medmindre den er kombineret med orm-lignende funktionalitet). Dens primære styrke ligger i dens evne til at bedrage.
Forestil dig et scenarie, hvor en cyberkriminel indsætter en bagdør i et populært administrationsværktøj, der deles på et netværk. Når en intetanende administrator bruger værktøjet, aktiveres den skjulte trojaner og udfører ondsindede handlinger, såsom at stjæle data, give fjernadgang eller installere yderligere malware. Trojanere kan have mange forskellige formål, herunder:
- Bagdøre: Giver hackere fjernadgang til systemet.
- Keyloggere: Optager tastetryk for at stjæle adgangskoder eller følsomme oplysninger.
- Bank-trojanere: Designet til at stjæle bankoplysninger.
- DDoS-trojanere: Bruger den inficerede computer som en del af et botnet til at udføre distributed denial-of-service (DDoS) angreb.
- Ransomware-trojanere: Krypterer filer og kræver løsepenge for at dekryptere dem.
Historisk set kan man spore konceptet for selvreplikerende programmer tilbage til John von Neumanns arbejde i 1940'erne. Den første kendte 'trojaner' af en art var måske 'Creeper' fra 1971, selvom den var mere en eksperimentel orm, der blot udskrev en besked. Dagens trojanere er dog langt mere sofistikerede og destruktive.
Tekniske Metoder til Trojanerudvikling
At skabe en trojaner indebærer ofte at injicere skadelig kode, kendt som shellkode, i et eksisterende, legitimt program. Dette kan gøres på flere måder, hvoraf de mest almindelige er:
1. Kodehuler (Code Caves)
En kodehule er et ubrugt område i en eksekverbar fil (typisk i '.text'-sektionen af en PE-fil på Windows), der ikke er optaget af data eller kode. Dette tomme rum kan udnyttes til at indsætte shellkode. Fordelen ved denne metode er, at den er relativt diskret, da den ikke ændrer filens struktur markant. Ulempen er, at den tilgængelige plads ofte er meget begrænset, hvilket kræver, at shellkoden er ekstremt kompakt og effektiv.
Processen for at indsætte shellkode i en kodehule involverer typisk følgende trin:
- Find en kodehule: Brug et debugger-værktøj som x32dbg til at scanne den eksekverbare fil for områder fyldt med nuller.
- Omdiriger programflow: Ved programmets startpunkt indsættes en 'jump'-instruktion, der omdirigerer udførelsen til starten af kodehulen.
- Gem kontekst: Før shellkoden udføres, er det afgørende at gemme tilstanden af CPU-registrene og flagene (ved hjælp af instruktioner som
pushadogpushfd). Dette sikrer, at programmet kan genoptage sin normale drift efter shellkoden er udført, uden at krasche. - Indsæt shellkode: Den ondsindede shellkode (f.eks. en kode der starter lommeregneren, som i et simpelt eksempel) indsættes i kodehulen.
- Gendan kontekst: Efter shellkoden er udført, gendannes registrene og flagene (ved hjælp af
popfdogpopad). - Spring tilbage: En anden 'jump'-instruktion omdirigerer programflowet tilbage til det oprindelige program, så det kan fortsætte sin normale udførelse.
- Kopier overskrevne instruktioner: Hvis den indledende 'jump' overskrev dele af det originale programs instruktioner, skal disse instruktioner kopieres til kodehulen og udføres, før der springes tilbage til programmet.
Denne metode kræver en dyb forståelse af assembly-sprog og filstrukturer, men den giver mulighed for at skabe meget snigende trojanere.
2. Nye Sektioner (New Sections)
Hvis der er behov for mere plads, kan en ny sektion tilføjes til offerprogrammet. Denne sektion kan gøres så stor som nødvendigt, og shellkoden placeres her. Dette er en kraftfuld metode, da den giver stor fleksibilitet med hensyn til størrelsen af den ondsindede kode. Dog er ulempen, at den nye sektion skal markeres som eksekverbar, hvilket ofte overvåges intenst af antivirus-motorer. Dette gør trojaneren lettere at opdage.
3. Udvidende Sektioner (Extending Sections)
En tredje metode er at udvide en eksisterende sektion, typisk den sidste sektion i en PE-fil. Dette kan også gøres med '.text'-sektionen, som ofte er den første. Denne metode kræver dog mere indsats i forbindelse med at genberegne relative offsets inden for filen, hvilket gør den mere kompleks at implementere.

Sammenligning af injektionsteknikker
Her er en kort sammenligning af de tre teknikker:
| Teknik | Fordele | Ulemper |
|---|---|---|
| Kodehule | Diskret (bruger eksisterende plads), sværere at opdage via filstørrelse | Begrænset plads, kræver præcis manipulation |
| Ny Sektion | Fleksibel pladsstørrelse, relativt ligetil at implementere | Meget overvåget af antivirus (markeres som eksekverbar), ændrer filstruktur |
| Udvidende Sektion | Bruger eksisterende struktur, kan udvide betydeligt | Kræver mere kompleksitet (offset-omregning), kan stadig ændre filstørrelse |
Antivirus-Omgåelse og Obfuskation
En af de største udfordringer for trojanerudviklere er at undgå opdagelse af antivirussoftware (AV). AV-programmer analyserer vira for mønstre i koden og sammenligner dem med en foruddefineret liste over signaturer. For at omgå dette anvender trojanere forskellige obfuskationsteknikker:
- Kryptering: Den ondsindede kode krypteres, så den kun dekrypteres ved udførelse. Dette gør det svært for AV at scanne den statiske fil.
- Kompression: Koden komprimeres, hvilket ændrer dens signatur og gør den mindre genkendelig.
- Spaghetti-logik: Introduktion af unødvendig og kompleks kode for at gøre analysen vanskeligere for både mennesker og automatiserede værktøjer.
- Polymorfi og Metamorfi: Koden ændrer sig selv ved hver infektion (polymorfi) eller genskriver sig selv fuldstændigt (metamorfi) for at undgå signaturbaseret detektion.
Disse teknikker gør det til en konstant katten-efter-musen-leg mellem malware-udviklere og sikkerhedsforskere.
Fra Kompleks Kode til Brugervenlige Apps: Trojanerudviklingssæt (TDK)
Hvor de ovennævnte teknikker kræver dyb teknisk viden, har fremkomsten af Trojanerudviklingssæt (TDK) demokratiseret malwareudvikling. Disse "ransomware-as-a-service"-lignende kits, som ofte sælges på underjordiske fora, gør det muligt for selv amatør-cyberkriminelle at skabe deres egne trojanere – ofte uden at skrive en eneste linje kode.
Det mest bemærkelsesværdige eksempel er TDK-apps til smartphones, især Android. Disse apps kommer med en brugervenlig grænseflade, der guider brugeren gennem processen med at skabe deres egen fil-låsende malware. Processen er typisk så simpel som at udfylde formularer og vælge indstillinger:
- Tilpasning: Brugeren kan tilpasse den besked, der skal vises på den inficerede enheds låseskærm, den nøgle, der bruges til at låse enheden op, malwarens ikon, matematiske operationer til at randomisere koden og typen af animation, der skal vises.
- Betaling: Ofte skal brugeren betale et engangsgebyr til app-udvikleren, før den færdige malware kan distribueres.
- Distribution: Når betalingen er foretaget, kan brugeren frit distribuere den oprettede ransomware og lave så mange varianter, som de ønsker.
Ransomware skabt af disse apps følger ofte adfærd som Lockdroid, hvor enheden låses ved hjælp af et systemalarmvindue, og en simpel tekst fortæller brugeren, at deres telefon er låst, og at de skal betale for at få adgang igen. Selvom Android-ransomware er mindre udbredt end Windows-ransomware, er markedet for det voksende.
Mens de fleste TDK'er, der er blevet spottet, har været rettet mod kinesisk-talende brugere, er det kun et spørgsmål om tid, før disse grænseflader tilpasses andre sprog. Disse kits sænker ikke kun barren for aspirerende hackere, men giver også et farligt værktøj til mere erfarne malware-forfattere, der kan finde dem en effektiv genvej til at skabe nye varianter hurtigt. Dette fører til en forventet stigning i mobile ransomware-varianter, efterhånden som disse udviklingssæt bliver mere udbredte.
Ransomware: Et Særligt Farligt Eksempel
Ransomware er en særlig ondsindet form for trojaner, der krypterer brugerens filer eller låser adgangen til deres enhed og derefter kræver en løsesum (ransom) for at genoprette adgangen. Disse angreb kan være ødelæggende for både private brugere og virksomheder, da de kan føre til tab af vigtige data og betydelige økonomiske tab.
Berømte globale ransomware-udbrud som WannaCry og Petya viste, hvor hurtigt og bredt disse trusler kan sprede sig, især når systemer ikke er opdaterede med de seneste sikkerhedsrettelser. Disse angreb understreger vigtigheden af proaktive sikkerhedsforanstaltninger og regelmæssig opdatering af software.

Sådan Beskytter Du Dig Mod Trojanere
Selvom truslen fra trojanere er reel og i konstant udvikling, er der flere skridt, du kan tage for at beskytte dine enheder, uanset om det er en computer eller en mobiltelefon:
- Download kun fra betroede kilder: Undgå at downloade apps og software fra ukendte hjemmesider eller uofficielle app-butikker. Hold dig til officielle kilder som Google Play Store, Apple App Store eller producentens hjemmeside.
- Hold din software opdateret: Sørg altid for, at dit operativsystem (Windows, macOS, Android, iOS) og alle dine apps er opdateret til de nyeste versioner. Opdateringer indeholder ofte vigtige sikkerhedsrettelser.
- Brug antivirus- og anti-malware-software: Installer og vedligehold et anerkendt sikkerhedsprogram på din computer og overvej en tilsvarende løsning til din smartphone. Kør regelmæssige scanninger.
- Vær forsigtig med e-mails og vedhæftede filer: Åbn aldrig vedhæftede filer eller klik på links fra ukendte afsendere. Vær skeptisk over for e-mails, der lover noget for godt til at være sandt, eller som skaber en følelse af hastværk.
- Tag regelmæssig backup af dine data: I tilfælde af et ransomware-angreb er den bedste beskyttelse en opdateret backup af alle dine vigtige filer. Opbevar din backup offline for at forhindre, at den også bliver krypteret.
- Aktivér firewall: En firewall kan hjælpe med at blokere uautoriseret adgang til dit netværk.
- Brug stærke, unikke adgangskoder: Og overvej at bruge en adgangskodeadministrator.
Ofte Stillede Spørgsmål
Kan jeg få en trojaner blot ved at besøge en hjemmeside?
Ja, det er muligt. Dette kaldes et "drive-by download" angreb, hvor malware automatisk downloades til din enhed, når du besøger en kompromitteret hjemmeside, ofte uden din viden eller tilladelse. Dette sker typisk ved at udnytte sårbarheder i din webbrowser eller dens plugins. Sørg for at holde din browser og dens udvidelser opdaterede.
Hvordan ved jeg, om jeg har en trojaner på min telefon eller computer?
Tegn på en trojaner kan inkludere nedsat ydeevne, uønskede pop-up-reklamer, ukendte programmer, der kører i baggrunden, filer der forsvinder eller bliver krypteret, uforklarlig netværksaktivitet, eller at din enhed generelt opfører sig mærkeligt. Kør en fuld systemscanning med din antivirussoftware. Hvis du stadig er i tvivl, kan en professionel IT-sikkerhedsekspert hjælpe.
Hvad er forskellen mellem en trojaner, en virus og en orm?
Selvom de ofte forveksles, er der vigtige forskelle:
- Virus: Kræver en vært (et program) og replikerer sig selv ved at inficere andre programmer, filer eller dokumenter. Den spreder sig, når den inficerede fil udføres.
- Orm: En selvstændig malware, der replikerer sig selv og spreder sig over netværk uden behov for en vært eller brugerinteraktion. Den udnytter ofte netværkssårbarheder.
- Trojaner: Maskerer sig som et legitimt program for at bedrage brugere til at installere den. Den replikerer sig ikke nødvendigvis selv og spreder sig ikke selvstændigt som en orm, men udfører skadelige handlinger, når den er installeret.
Mange moderne malware-trusler kombinerer dog træk fra alle tre kategorier.
Er iPhones sikre mod trojanere?
iPhones (og iOS-enheder generelt) anses for at være mere sikre mod malware, herunder trojanere, end Android-enheder på grund af Apples strengere app-gennemgangsproces og den såkaldte "sandkasse"-model, hvor apps kører isoleret fra hinanden og kernesystemet. Det er dog ikke umuligt. Brugere, der 'jailbreaker' deres iPhones, fjerner disse sikkerhedsbarrierer og udsætter sig selv for en meget højere risiko. Derudover kan målrettede angreb, kendt som "spyware" eller "state-sponsored malware", stadig inficere iPhones ved at udnytte sjældne sårbarheder.
Konklusion
Trojaneren forbliver en af de mest vedholdende og farlige trusler i cyberspace på grund af dens snedige natur og dens evne til at tilpasse sig nye teknologier. Fra de komplekse teknikker, der anvendes af avancerede trusselsaktører, til de brugervenlige udviklingssæt, der sænker adgangsbarrieren for nye cyberkriminelle, er det afgørende at forstå, hvordan disse ondsindede programmer fungerer. Ved at udvise digital årvågenhed, holde din software opdateret og anvende solide sikkerhedspraksisser kan du markant reducere din risiko for at falde offer for en trojaner og beskytte dine værdifulde data og personlige oplysninger.
Hvis du vil læse andre artikler, der ligner Fra Kodehuler til Mobilapps: Trojanerens Udvikling, kan du besøge kategorien Mobil.
