Code Injection erkennen
-
-Infected- schrieb:
Hallo,
... auch wenn ich tief in der Materie bin... Aktuell kenne ich jedoch keine Malware, die solche Funktionen hookt...
DankeDann scheinst du dich aber nicht besonders auszukennen, denn ich kenne sehr viel Malware die rootkit-techniken verwendet die unter anderem sowas manipuliert... Dazu muss man eigentlich nur im PEB (Process Environment Block) unter der Struktur _PEB_LDR_DATA :
InLoadOrderModuleList
InMemoryOrderModuleList
InInitializationOrderModuleList
HashTableEntrymanipulieren, das ist schon alles!
-
Naja wir müssen unterscheiden zwischen Code-Injektion und Dll-Injektion. Eine reine Code Injektion wird fast unmöglich sein zu entdecken.
Wenn man von Dll-Injektionen ausgeht kann es durchaus sein dass du es erkennen kannst, kommt immer drauf an wie gut sie umgesetzt ist.
Wen die Dll in den Modullisten im PEB gelistet ist kannst du sie so aufspüren. Dann kannst du eine fremde Dll z.B. erkennen wenn du direkt nach dem Starten des Prozesses einen Snapshot machst.
Wenn die Dll allerdings aus den Listen entfernt wurde (oder mit einem eigenen Dll-Loader geladen wurde) wirds deutlich schwerer. Dann kannst du höchstens alle Teile des virtuellen Speichers mit VirtualQueryEx durchforsten und nach Dll-Headern suchen. Wenn die auch gelöscht sind kannst du eigentlich nicht viel machen - außer einen vorher-nacher Vergleich und der Suche nach bekannten Signaturen falls du die Dll kennst.
Und falls die Dll nur durch Hooks versteck ist wären die nativen Funktionen aus der ntdll.dll oder direkte Syscalls das Mittel der Wahl.
-
DarkShadow44 schrieb:
Eine reine Code Injektion wird fast unmöglich sein zu entdecken.
Denke auch bis da Hardwaremässig was kommt wirds a privat schwierig bleiben.
Das Problem ist nicht eine Veränderung etwa in einem Memory Dump zu finden
sondern eben in Echtzeit jede Veränderung mitzubekommen UND zu deuten.
Die Antiviren-Forscher haben da ganze Batterien an Plattformen
nur um den Plagegeistern in jeder möglichen Situation auf die Schliche zu kommen
und dennoch ist eben halt bislang nur ein Hinterherjagen.Die Mittel für sichere Systeme hätten wir schon lange
zb könnte ein Prozessor Code ausführen und der Andere würde alles überwachen
oder man verabschiedet sich von Neumann..
-
pVoid schrieb:
DarkShadow44 schrieb:
Eine reine Code Injektion wird fast unmöglich sein zu entdecken.
Denke auch bis da Hardwaremässig was kommt wirds a privat schwierig bleiben.
Das Problem ist nicht eine Veränderung etwa in einem Memory Dump zu finden
sondern eben in Echtzeit jede Veränderung mitzubekommen UND zu deuten.
Die Antiviren-Forscher haben da ganze Batterien an Plattformen
nur um den Plagegeistern in jeder möglichen Situation auf die Schliche zu kommen
und dennoch ist eben halt bislang nur ein Hinterherjagen.Die Mittel für sichere Systeme hätten wir schon lange
zb könnte ein Prozessor Code ausführen und der Andere würde alles überwachen
oder man verabschiedet sich von Neumann..Ich denke du hast auch nicht so viel Ahnung!
-
& /dev/null schrieb:
Ich denke du hast auch nicht so viel Ahnung!
trollig
-
manche verkraften die warheit nicht... aber was solls
-
zumindest im usermode sollte code injection durch wpm etc erkennbar sein.
aber ansonsten ist natürlich klar dass es ein stetiges hin und her ist, wenn es darum geht malware/gamehacks zu erkennen.
Code in fremden Anwendungen NACH DER INJEKTION zu erkennen (könnte ja sein, dass windows sich da was aufschreibt...)
man sollte da schon alles berücksichtigen und nicht nur "nach der injektion".
im endeffekt muss man sich wohl tief ins sys einnisten, am besten mittles kernel level programmen. dort geht der kampf dann wohl weiter.^^ aber aus sicht der user ebene hat man da keine chance.
-
Du könntest Hash-Werte bilden auf die Dateien diese müssen aber vor dem Befall gebildet werden und dann um zu gugen ob Code injeziert wurde dann nochmal den Hashwert bilden und beide vergleichen.
P.S Virenscanner erkennen nur 3-5% aller Viren die weltweit im Umlauf sind. Polymorphe Viren ändern nicht nur in bestimmten Intervallen ihren Code der verschlüsselt ist, sondern haben auch von Rechner zu Rechner unterschiedliche Signaturen der durch ein Alghorithmus erstellt wird da müssten die Virenscanner diesen alghorithmus kennen wenn dann noch die Signatur asymetrisch verschlüsselt ist dann bye bye. Zudem könnte die Signaturerstellung auch von extern kommen der nur die Signatur liefert und intern nur geprüft wird ob die signatur stimmt.
-
Außerdem das was du beschreibst ist keine Code Injection. Code Injection ist wie bei einer SQL Injection. Der Angreifer schmuggelt Code ein der dann ausgeführt wird. Das was du beschreibst ist eine Virusinfektion Schadcode wird in die exe bzw den Prozess eingefügt von anderen Viren.
-
AmonAmarth schrieb:
Außerdem das was du beschreibst ist keine Code Injection. Code Injection ist wie bei einer SQL Injection. Der Angreifer schmuggelt Code ein der dann ausgeführt wird. Das was du beschreibst ist eine Virusinfektion Schadcode wird in die exe bzw den Prozess eingefügt von anderen Viren.
blabla - aber keine Ahnung wie sowoas wirklich abläuft.
-
Immer diese dämlichen User die keine Antwort liefern keine Ahnung haben was man sagt aber trotzdem ihren Senf dazugeben wollen.
Code Injection indem Fall genauer SQL Injection :
Man hat eine Seite mit Username und Passwort als Eingabefelder daraus wird die Abfrage generiert. Der Angreifer schmuggelt was rein.In der Sql-Abfrage steht dann :
SELECT * FROM tblAdmin WHERE user = [username] AND password = [Passwort];Normaler User :
Username = willi
password = 123456Dann steht da :
SELECT * FROM tblAdmin WHERE user = "willi" AND password = "123456";Angreifer :
Username = bla
password = \" OR 1=1 #Dann steht da :
SELECT * FROM tblAdmin WHERE user = "bla" AND password = "" OR 1=1#;# steht für Kommentar
während eine Virusinfektion mit Schadcode so aussieht
Assemblercode vor der infektion :
LDAA #56
LDAB 1894,D
MUL
ADDA 89
STAD 4000
BRA SP,1Assemblercode nach der infektion :
;Schadcode anfang
....
TFR A,B
....
;Schadcode ende
LDAA #56
LDAB 1894,D
MUL
ADDA 89
STAD 4000
BRA SP,1natürlich steht da kein assemblercode sondern maschinencode nur zu Beispielzwecken
-
AmonAmarth schrieb:
Immer diese dämlichen User die keine Antwort liefern keine Ahnung haben was man sagt aber trotzdem ihren Senf dazugeben wollen.
Code Injection indem Fall genauer SQL Injection :
Man hat eine Seite mit Username und Passwort als Eingabefelder daraus wird die Abfrage generiert. Der Angreifer schmuggelt was rein.In der Sql-Abfrage steht dann :
SELECT * FROM tblAdmin WHERE user = [username] AND password = [Passwort];Normaler User :
Username = willi
password = 123456Dann steht da :
SELECT * FROM tblAdmin WHERE user = "willi" AND password = "123456";Angreifer :
Username = bla
password = \" OR 1=1 #Dann steht da :
SELECT * FROM tblAdmin WHERE user = "bla" AND password = "" OR 1=1#;# steht für Kommentar
während eine Virusinfektion mit Schadcode so aussieht
Assemblercode vor der infektion :
LDAA #56
LDAB 1894,D
MUL
ADDA 89
STAD 4000
BRA SP,1Assemblercode nach der infektion :
;Schadcode anfang
....
TFR A,B
....
;Schadcode ende
LDAA #56
LDAB 1894,D
MUL
ADDA 89
STAD 4000
BRA SP,1natürlich steht da kein assemblercode sondern maschinencode nur zu Beispielzwecken
Und jetzt soll man beeindruckt sein oder was? Dies zeigt überhaupt nichts...
-
@lowbyte nein das war auf den Post darüber bezogen es tut mir leid das du es trotzdem nicht verstehst.
-
AmonAmarth schrieb:
@lowbyte nein das war auf den Post darüber bezogen es tut mir leid das du es trotzdem nicht verstehst.
Du bist mir ja einer...