T_55 schrieb:
Genau das meine ich, es müsste im Grunde in die Virenscanner implementiert werden, es ist Schadcode der zwar nicht direkt wie eine exe ausgeführt wird aber indirekt und so eine Kompromittierung ermöglicht. Insofern sollten auch diese Datentypen gecannt werden.
Also Virenscanner-Hersteller haben in Vergangenheit schon extreme Inkompetenz bewießen. Aber so dämlich zu erwarten, dass ein Virus grundsätzlich '*.exe' genannt werden muss, ist dann doch niemand. Hoffe ich zumindest
.
T_55 schrieb:
Zudem spielt auch das OS eine Rolle, FreeBSD hat beispielsweise einen Heap-Schutz und Überläufe sind dort nicht möglich.
Wer hat denn das behauptet?
Mal kurz erklärt: Heap, das ist einfach Speicher, den sich eine Software zur freien Verwendung reservieren kann.
Jetzt stelle dir vor, dein Speicher sieht so aus:
_ _ _ _ _ *
Wobei jedes _ Information über einen Pixel speichern kann. In * ist aber etwas ganz anderes gespeichert - z.B. die Lautstärke.
Jetzt komme ich als Film daher, und speichere einen roten Pixel. dann einen grünen, einen blauen, einen blauen, einen roten Pixel. Unser Speicher sieht nun so aus:
r g b b r *
Jetzt wird die Software böse und versucht - obwohl der Speicher voll ist - noch einen gründen Pixel zu speichern. Unsere Software prüft nicht korrekt, dass der Speicher voll ist. Und was erhalten wir:
r g b b r g
Wir haben erfolgreich die Lautstärke mit 'g' überschrieben.
Das OS kann solche Überläufe nicht verhindern. Wie denn auch? Woher soll das Betriebssytem wissen, dass die Software einen Pixel dahin schreiben will, wo eigentlich nur die Lautstärke gespeichert werden darf?
Natürlich gibt es Schutzmaßnahmen. Dabei geht es aber nicht darum, Überläufe zu verhindern (denn das sind Programmierfehler) - sondern zu verhindern, dass böse Sachen mit diesen Überläufen gemacht werden kann.
Beispiel: Kannst die Reihenfolge, in der du Informationen speicherst, randomisieren. Jetzt gerade steht nach den 5 Pixeln die Lautstärke. Bei der nächsten Programmausführung aber z.B. Text vom Untertitel. Dadurch weiß der Angreifer nicht im Vorraus, was er da überschreibt.
Oder kannst den heap als "nicht ausführbar" markieren und somit verhindern, dass der Angreifer direkt Schadcode, den er auf den Heap geschrieben hat, ausführen kann.
Oder du führst verschiedene Checks aus, um Überläufe zu erkennen. Das musst dann aber in der Software selber machen (auch wenn das Betriebssystem im Falle FreeBsd oder Linux doch einen Unterschied macht, da du z.B. der VLC direkt vom Betriebssytem bereit gestellt wird).
Jedenfalls: Diese Vorkehrungen sind in modernen Betriebssytemen unterschiedlich ausgeprägt implementiert (nicht nur im FreeBSD). All diese Vorkehrungen machen das Leben der Angreifern schwer. Aber einen 100% Schutz liefert das alles nicht.