Perché il malware non viene comunemente scritto in Haskell?

1

Recentemente ho iniziato ad imparare Haskell e ho letto molti dei dovrebbero offrire una programmazione imperativa tradizionale. Mi sono imbattuto in questo post sul codice Haskell compilato con reverse engineering e mi ha fatto riflettere malware scritto in Haskell.

  • Sono note istanze di malware scritte in Haskell? (Quick Googling non ha ottenuto risultati per me.)
  • La natura complessa dei programmi Haskell compilati lo rende una scelta interessante come linguaggio di sviluppo del malware?

La mia ipotesi è che le barriere di accesso all'apprendimento di Haskell siano troppo alte per malware rudimentale e che chi ha il tempo / la capacità di apprenderle stia scrivendo malware più complesso che richiede le funzionalità di basso livello di un linguaggio come C. È noto che sia così?

    
posta jstrieb 04.08.2017 - 16:49
fonte

1 risposta

2

[Disclaimer: non la mia area di competenza]

Sì, suppongo che haskell sia troppo alto.

Le cose che il malware vuole, in ordine di priorità: portare a termine il compito, ingannare gli scanner anti-virus sul bersaglio, resistere al reverse engineering e all'analisi in laboratorio.

La complessa natura di Haskell compilato probabilmente aiuta con il terzo, ma probabilmente rende i primi due più difficili. Ad esempio, le seguenti attività malware sono probabilmente difficili da eseguire in Haskell:

  • si inserisce in un'altra applicazione o documento in modo tale che sia ancora eseguibile ( comportamento dei virus )
  • offuscare / crittografare le proprie costanti di stringa per evitare una facile scansione del file binario
  • riscrive il proprio codice in modo dinamico per cambiare le impronte digitali e ingannare gli antivirus
  • altre tecniche di evasione
  • usa e manipola le DLL che trova sulla macchina di destinazione
  • legge / modifica la memoria che appartiene ad altri processi
  • leggi / modifica i dati di sistema come il record di avvio principale

Se sei al livello di sofisticazione in cui ti preoccupi del reverse engineering, non riesco a immaginare che qualsiasi linguaggio compilato sia molto interessante - probabilmente trascorri almeno la metà del tuo tempo lavorando direttamente con l'assembly.

    
risposta data 04.08.2017 - 17:18
fonte

Leggi altre domande sui tag