MIDI-Dateien sicher?

  • Ersteller muhnwalker
  • Erstellt am
M
muhnwalker
Registrierter Benutzer
Zuletzt hier
03.11.20
Registriert
22.06.12
Beiträge
30
Kekse
0
Ort
Münster
Hallo,

kann ich MIDI-Dateien aus dem Internet bedenkenlos runterladen und abspielen und z.B. in Synthesia öffnen,
oder könnten da Viren drin sein?

LG
Muhnwalker
 
Eigenschaft
 
BIS JETZT sind IMHO keine Viren bekannt die auf Midi-Datenströme aufbauen.
Midi ist ein serielles Übertragungsprotokoll das Daten überträgt.
Klar - unsinnige Midi-Kommandos können "Hänger" zur Folge haben; das lässt sich oft nicht vermeiden kriegt man aber beim Ausprobieren der Datei zu spüren.
Da passiert nix.
 
Rein theoretisch kann in jedem Datenstrom ein Virus eingebaut werden. Dazu werden bekannte Fehler in der Software ausgenutzt, wenn Synthesia z.B. bei bestimmten SysEx Befehlen etwas nicht überprüft oder falsch interpretiert, dann ist es durchaus möglich das Verhalten auszunutzen und Schadcode auszuführen. Bisher ist mir allerdings nichts dergleichen bekannt, man sollte nur nicht gleich pauschal da passiert nix sagen.

Ich erinnere an die berühmte JPEG Lücke, wo das alleinige Betrachten eines Bildes Schadcode ausführen konnte. Dies ist mit JEDEM Dateiformat möglich. http://www.heise.de/newsticker/meld...Mausklick-fuer-jedermann-3-Update-105805.html
 
Mit dem Jpeg hast du Recht - aber wie gesagt ist Midi ein serieller Datenstrom der nicht ausgeführt wird - im Gegensatz zu einem JPEG das erst mal "entpackt " werden muss.
Glaub mir - ich arbeite als Netzwerk-Sicherheits-Ing in einer großen Amerikanischen Firma und habe täglich mit solchen Dingen zu tun - in Midi-Dateien kann aufgrund der Datenstruktur kein Schadcode in Form von Viren enthalten sein.
Anders sieht es aus wenn die Dateien mit einem Pack-Programm behandelt wurden und z.B. in einem .zip Archiv vorliegen; hier kann durchaus etwas enthalten sein. Das muss erst ausgeführt werden - da kann was drin sein.
Solange die Datei nur mit ".mid" endet besteht keine Gefahr.
 
  • Gefällt mir
Reaktionen: 2 Benutzer
Könntest du das näher ausführen? Warum spielt es eine Rolle, ob ein serieller Datenstrom abgebildet wird? Wodurch unterscheidet sich die Ausfürung bei einem Entpackvorgang von der Behandlung anderer Daten? Es ist klar, dass die Behandlung anders aussieht, aber warum sollte nicht durch einen Implementierungsfehler auch bei einem Midi-Programm ein buffer overflow passieren können?

Ich sehe sofort ein, dass die Wahrscheinlichkeit dafür gering ist, allein schon, weil das Protokoll ziemlich einfach ist (selbst, wenn man irgendwelche SysEx-Daten mitnimmt), und ich glaube auch nicht, dass da irgendwelche praxisrelevanten Gefahren von ausgehen, aber warum es grundsätzlich unmöglich sein soll, verstehe ich noch nicht...
 
Beim Entpacken werden die die Daten "ausführbar" durch ein Programm geschleust und es können sich (schon geschehen) Daten mit entpacken die man gar nicht haben möchte. Durch Auto-Run der Entpacker bzw. der gepackten Anwendung kommt es dann zur Ausbreitung des Schadcodes.
Midi-Daten dagegen werden nicht "ausgeführt" sondern bewirken innerhalb eines bereits ausgeführten Programms eine Verhalten das ausschließlich dazu dient "Klang" zu erzeugen (innerhalb einer sog. API die u.U. von einem zusätzlichen Treiber bereitgestellt wird.
Daten dieser Art kommen nicht mit Kernel-Routinen in Verbindung die Ausführbar im Sinn von Programmen sind.
Einen Buffer-Overflow könnte man damit erzeugen;dieser müsste aber dann im Programm etwas bewirken können das Einfluss auf ausgeführte Programme hat bzw. selbst als Programm mit Zugriff auf Systemressourcen laufen.
Wenn ein Midi-File Schaden anrichten sollte, müsste das ausführende Programm Programmierschnittstellen nutzen die dem Schadcode Zugriff auf Systemressourcen verschaffen.
Wenn der Programmierer nicht ganz neben der Kappe war wird er aber Midi-Daten nur an die Midi-API senden (oder ein externes Gerät das diese API benutzt).
Also müsste man erst die App/Programm/Treiber hacken/verändern und dann per Midi Befehlssequenzen einschleusen.
Das klingt sehr nach TRON.....
Ich möchte es nicht als absolut unmöglich einstufen - aber es wäre mehr als eine Dummheit ein aus Zweifelhafter Quelle stammendes Programm mit dem dazu passenden Midi-File zu füttern das dann den Gau auslöst.
Zumal heutige Hacker mehr davon haben dümmliche Emails mit Anhang zu verschicken auf die immer noch gut 30% der Empfänger hereinfallen und durch öffnen / Anklicken einer "bitte hier Klicken" Message den Virus/Spyware/... selbst installieren.
 
Wie bereits geschrieben, unwahrscheinlich aber nicht unmöglich. ;)
 
Interessantes Thema. Die Akzentverschiebung von "unmöglich" zu "möglich" unterstütze ich sehr:

in Midi-Dateien kann aufgrund der Datenstruktur kein Schadcode in Form von Viren enthalten sein.
Ich möchte es nicht als absolut unmöglich einstufen

...denn man kann nie ausschließen, dass Sysex-Verarbeitung nicht doch zu einem Buffer Overflow führen kann, oder z.B. XF-Meta-Events , die zum Zeitpunkt der Programmierung unbekannt waren, ein ungeplantes Verhalten einer Software auslösen, was ausgenutzt werden könnte. Allerdings müsste so ein Schadcode enge Annahmen über das System machen und könnte sich nur schwerlich verbreiten.

Ich halte die Gefahr eines Virus in einem MIDI-File zwar für theoretisch denkbar, aber für praktisch vernachlässigbar.

Harald

P.S. In diesem Zusammehang vielleicht interessant: hier im Yamaha-Forum wurde im Jahr 2005 über Viren für den Tyros diskutiert
 
Könnte man im Vorfeld prüfen, ob eine MIDI-Datei "konform" ist,
d.h. weder Fehler, noch Inhalt, der da nicht reingehört, enthalten sind?
 
Könnte man im Vorfeld prüfen, ob eine MIDI-Datei "konform" ist,
d.h. weder Fehler, noch Inhalt, der da nicht reingehört, enthalten sind?

Ja klar, du kannst ihre Inhalte in einem Sequenzerprogramm darstellen. Alternativ, wenn du's wirklich detailliert wissen willst, lass dir die MIDI-Datei durch einen Hex-Editor (wie diesen online) darstellen. Ravels Bolero von hier sieht am Anfang dann so aus:
Code:
	00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF
000000	4D 54 68 64 00 00 00 06 00 01 00 1F 00 C0 4D 54 MThd..........MT
000010	72 6B 00 00 00 19 00 FF 51 03 0C B7 35 00 FF 58 rk......Q...5..X
000020	04 03 02 18 08 00 FF 59 02 00 00 00 FF 2F 00 4D .......Y...../.M
000030	54 72 6B 00 00 4D DD 00 FF 03 07 2A 46 6C 75 74 Trk..M.....*Flut
000040	65 73 00 FF 20 01 00 00 B0 07 64 00 C0 49 00 B0 es.. .....d..I..
000050	00 00 00 B0 20 01 92 00 90 48 2A 82 20 80 48 00 .... ....H*. .H.
000060	00 90 47 2B 30 80 47 00 00 90 48 2B 30 80 48 00 ..G+0.G...H+0.H.

Damit kannst du alles prüfen, was du prüfen möchtest. Allerdings solltest du dich mit dem MIDI-Standard, speziell den Aufbauregeln eines Standard MIDI-Files (SMF) auseinandersetzen. Um abschätzen zu können, ob Inhalte drin stehen, die nicht reingehören, musst du entscheiden, was du für überflüssig hältst.

Jede MIDI-Datei, die der SMF-Spezifikation entspricht, ist "konform", entspricht also dem Standard. Ob sie problematische Inhalte enthält, kann man nur anhand eines Klangerzeugers und dessen Betriebssystem entscheiden.

Zusammengefasst: du kannst durchaus Stunden und Tage mit der Analyse von MIDI-Files verbringen, ich hab's aus anderen Gründen als der Virus-Gefahrabschätzung auch gemacht. Aber letztlich wirst du mit dem vernachlässigbar kleinen Risiko von Viren in MIDI-Files leben müssen, denn es gibt keine Möglichkeit, diese Gefahr komplett auszuschließen.

Harald
 
Hallo Harald,

echt coole Seite der OnlineHex-Editor, danke!

Mit dem MIDI-Header und Tracks habe ich kein Problem, eher mit dem Inhalt der Tracks, das ist mir dann doch zu viel Aufwand, da durchzublicken ;-)

Ich habe zu dem Thema noch folgendes gefunden:
http://www.securityfocus.com/bid/8567/info/
(MIDI Buffer-Overflow in Winamp)

Naja, ich denke meine Lösung wird sein, die MIDIs in mit einem Virenscanner zu scannen
und dann mit dem Risiko zu leben... wenn man absolute Sicherheit will muss man ja eh das Netzwerkkabel rausziehen - am Besten gleich das Stromkabel :)

LG
Muhnwalker
 
Naja, ich denke meine Lösung wird sein, die MIDIs in mit einem Virenscanner zu scannen
und dann mit dem Risiko zu leben...
Sofern man einen anständigen Virenscanner hat werden ja sowieso alle Dateien die man runterlädt gescannt.
Abgesehen davon ist es sicher faszinierend, über die grundlegenden Möglichkeiten von Viren in MIDIs nachzudenken, aber als konkrete Schadensanalyse ist es so als würde man sich Sorgen um das Unfallrisiko einer Achterbahnfahrt machen obwohl man bereits bei der Autofahrt zum Vergnügungspark einer irrsinnig viel höheren Gefahr ausgesetzt ist.
 
Ich glaube man muss da wirklich trennen:

a) das Risiko, dass eine Midi-Datei (der Container) infiziert ist mit einem Virus, der den PC als solches angreift (z.B. wenn man versucht, die Datei per Doppelklick zu öffnen oder die dem Windows Media Player zu "futtern" gibt) ist genauso groß wie bei jedem anderen Dateityp auch. Je nach dem, aus welcher (dubiosen?) Quelle die Datei stammt, auch deutlich überdurchschnittlich - ich denke da an z.B. russische Anbieter, die es mit dem Urheberrecht nicht so genau nehmen.
Gegen dieses Szenario sollte ein Virenscanner recht zuverlässig schützen - zumindest ist die Gefahr damit überschaubar und sicher geringer, als Opfer irgendeiner anderen Javascript-Schweinerei im Browser zu werden o.ä.

b) Die Möglichkeit, dass sich in dem eigentlichen Midi-Datenstrom etwas versteckt, das den Software-Player infiziert oder dort eine Lücke ausnutzt, halte ich für vernachlässigbar. Erstens dürfte es schwierig sein, dort etwas unterzubringen, zweitens müsste im Player eine entsprechende Lücke vorhanden (und bekannt) sein - und drittens ist die Zahl der potentiellen Angriffsziele (Opfer) sehr gering und die Softwarelandschaft in dem Bereich relativ heterogen, so dass dieser Angriffsvektor recht unattraktiv sein sollte.

c) Schlussendlich bleibt die Frage, inwieweit sich Hardware-Synths kompromittieren lassen. Halte ich aus den o.g. Gründen und zusätzlich dem "Problem", dass vielfach die genaue Architektur und Softwareimplementation der Synths gar nicht bis ins Detail bekannt sind für beliebig unwahrscheinlich.
 
Ich kann mir nicht vorstellen, daß es universell gefährliche MIDI-Dateien gibt.

Der 30 Jahre alte MIDI-Befehlssatz - und .MIDs enthalten nichts anderes, absolut nicht - ist so spezialisiert und eingeschränkt (CCs, NRPNs und SysEx hin und her, er ist eingeschränkt), daß er meines Erachtens gar nicht die technischen Möglichkeiten mitbringt, damit wirklich universellen Schadcode zu erzeugen. Außerdem können die MIDI-Befehle nichts, was über das Ansteuern eines Klangerzeugers oder vergleichbaren Geräts hinausgeht. Wenn überhaupt, dann kann ich mir allenfalls noch vorstellen, daß irgendwo in einer Windows-Komponente (Windows Media Player, Microsoft GS Wavetable Synth) einen Bug gibt, der per CC oder SysEx oder so irgendwie das System kompromittierbar macht, aber der wird schon längst gefunden worden sein. Und selbst wenn - anderer Sequencer, anderer Klangerzeuger, die MIDI-Signale nicht über Windows-Komponenten schicken, fertig.

Erst recht kann man damit keine Hardware-Klangerzeuger "angreifen" oder "hacken" oder "verseuchen", jedenfalls nicht universell, daß man mit einer und derselben .MID alle Synths vom Prophet T600 bis zum King Korg angreifen kann. Allenfalls könnte man bei moderneren Geräten per SysEx eine kompromittierte Firmware einflashen. Aber das würde schon ziemlich auffallen, wenn eine .MID statt des erwarteten Tophits eine neue Synth-Firmware enthält, es klappt nur jeweils mit einem ganz bestimmten Modell, und man muß sich fragen, inwiefern das ein Sicherheitsrisiko sein soll. (Kronos im Botnetz? Ultranova späht am Rechner Paßwörter und Bank-PINs aus? Nee...) Geräte aus der Vor-Flash-Ära kann man damit überhaupt nicht angreifen, jedenfalls nicht permanent.


Martman
 
Ich kann mir nicht vorstellen, daß es universell gefährliche MIDI-Dateien gibt.

Da stimme ich voll zu, ...

Der 30 Jahre alte MIDI-Befehlssatz - und .MIDs enthalten nichts anderes, absolut nicht

..da nicht so ganz. MIDI-Dateien enthalten über den Befehlssatz hinaus (also zusätzlich zu sendbaren MIDI-Messages) noch Delta-Times, Meta-Events sowie Header-Chunks und Track-Chunks. Ausserdem gibt es zwei Möglichkeiten der Sysex-Speicherung, aber bei gesendeten MIDI-Daten gibt es nur eine Methode zum Senden von Sysex.

SMFs speichern MIDI-Daten schon durchaus geringfügig anders, als sie gesendet werden. Vor allem ist in einer MIDI-Datei mehr enthalten, als im daraus entstehenden MIDI-Stream. Und falls man Sicherheitslücken einer bekannten Software ausnutzen will, ergeben sich da schon Spielräume.

Aber universell gefährlich sind MIDI-Dateien sicher nicht. Und wie gesagt, das Risiko generell ist vernachlässigbar klein.

Harald
 
Die Frage ist, was heißt "universell gefährlich"...?

Universell im Sinne von: Daten im Midi-Strom verstecken, die beliebige Midi-Geräte (oder virtuelle) angreifen - das halte ich auch für beliebig unwahrscheinlich.

Universell im Sinne von: Die Datei selbst ist mit einem Virus/Trojaner/Wurm infiziert und kompromittiert das Betriebssystem (den Browser, das Email-Programm, ... etc.), sobald irgendeine Betriebssystem-Routine versucht, da irgendetwas auszuführen: das ist problemlos möglich. Man kann letztlich jede Datei, die einen Virus enthält, als Midi-File tarnen, und dort möglicherweise sogar neben dem Schadcode auch noch gültige Midi-Daten zusätzlich unterbringen. Man muss den Schadcode ja nicht zwingend in dem Midi-Datenstrom unterbringen. Es reicht ja, wenn sich beispielsweise der Windows-Mediaplayer aufgrund der Dateiendung für die Datei "zuständig fühlt" und dann versucht, da eine Vorschau zu erzeugen...
 
ich gebe mal zu bedenken, das die Firmware von machen Geräten auch per Midi File eingespielt wird ( z.B. CC-121 Steinberg). Damit wäre natürlich ein Missbrauch MÖGLICH, aber wie schon gesagt, da kein lohnendes Ziel, sehr UNWAHRSCHEINLICH
 
Die Frage ist, was heißt "universell gefährlich"...?

Da folge ich Martman - "universell gefährlich" bedeutet: gefährlich für eine große Menge Hard- und Software ("alle Synths vom Prophet T600 bis zum King Korg"), nicht beschränkt auf wenige spezielle Geräte.

Die Frage des Threaderstellers bezog sich ja auf MIDI-Dateien, nicht auf MIDI-Streams, das sollten wir hier deutlich unterscheiden. Ich denke, bei MIDI-Streams sind wir uns soweit auch einig, dass da Viren keine Rolle spielen. Von daher nochmal zu den MIDI-Dateien, den Standard MIDI Files (SMF):

Universell im Sinne von: Die Datei selbst ist mit einem Virus/Trojaner/Wurm infiziert und kompromittiert das Betriebssystem (den Browser, das Email-Programm, ... etc.), sobald irgendeine Betriebssystem-Routine versucht, da irgendetwas auszuführen: das ist problemlos möglich.

Ja gut, aber ein Betriebssystem, das versucht, ein MIDI-File auszuführen, wäre fehlerhaft programmiert. Genauer gesagt: dilettantisch. Jedes .MID-File muss auf den Header-Chunk-Start MThd überprüft werden, und muss auch anderen Kriterien genügen, sonst darf es nicht als MIDI-File interpretiert werden.

Wenn es die Prüfung bestanden hat, darf es nicht als lauffähiger Code ausgeführt werden (quasi als Subroutine aufgerufen werden), sondern es sollte als Daten behandelt werden, mit denen bestimmte Aktionen passieren. Auch kein JPG/PDF/etc. darf ja direkt als lauffähiger Code aufgerufen werden, sondern darf nur als Daten behandelt werden. Viren nutzen Umwege und Schwachstellen aus (Buffer overflow, so war's zumindest früher..), um dann doch eigenen Code auszuführen. (Nachtrag: so wie hier bei der Verwendung von DirectX im Jahr 2003).

Es reicht ja, wenn sich beispielsweise der Windows-Mediaplayer aufgrund der Dateiendung für die Datei "zuständig fühlt" und dann versucht, da eine Vorschau zu erzeugen...

Ich traue ja Microsoft auch nicht so ohne weiteres :D, aber ich bin mir recht sicher, dass auch der Media Player SMFs ausschließlich als Daten betrachtet und nicht als ausführbaren Code anspringt. Zumindest wäre das eine so offensichtliche Sicherheitslücke, dass einerseits hier im Board, andererseits bei allen Virenschutzherstellern und bei Microsoft alle verfügbaren Alarmglocken klingeln müssten.

Harald
 
Zuletzt bearbeitet:
Ja gut, aber ein Betriebssystem, das versucht, ein MIDI-File auszuführen, wäre fehlerhaft programmiert. Genauer gesagt: dilettantisch. Jedes .MID-File muss auf den Header-Chunk-Start MThd überprüft werden, und muss auch anderen Kriterien genügen, sonst darf es nicht als MIDI-File interpretiert werden.
Ich glaube, da überschätzt du gewaltig, was ein Betriebssystem typischerweise tut oder tun sollte - und selbst wenn diese Prüfung durchgeführt wird, ist es bei schlampiger Programmierung leicht möglich, dass sich doch ein Fehler ausnutzen lässt.

Ein Beispiel (dort für JPG-Bilder, lässt sich aber beliebig auf andere Dateitypen übertragen): http://www.heise.de/newsticker/meld...Mausklick-fuer-jedermann-3-Update-105805.html

Wenn es die Prüfung bestanden hat, darf es nicht als lauffähiger Code ausgeführt werden (quasi als Subroutine aufgerufen werden), sondern es sollte als Daten behandelt werden, mit denen bestimmte Aktionen passieren. Auch kein JPG/PDF/etc. darf ja direkt als lauffähiger Code aufgerufen werden, sondern darf nur als Daten behandelt werden. Viren nutzen Umwege und Schwachstellen aus (Buffer overflow, so war's zumindest früher..), um dann doch eigenen Code auszuführen.
Eben - wenn sich jetzt für eine verbreitete Player-Software, z.b. den WMP ein entsprechender Exploit findet, dann ist es kein Problem.


Ich traue ja Microsoft auch nicht so ohne weiteres :D, aber ich bin mir recht sicher, dass auch der Media Player SMFs ausschließlich als Daten betrachtet und nicht als ausführbaren Code anspringt. Zumindest wäre das eine so offensichtliche Sicherheitslücke, dass einerseits hier im Board, andererseits bei allen Virenschutzherstellern und bei Microsoft alle verfügbaren Alarmglocken klingeln müssten.
Sicherlich wird ein WMP nicht eine Midi-Datei "ausführen". Was aber, wenn wir sagen wir eine verseuchte MPG-Datei erstellen, bei der der WMP Schadcode ausführt. Diese nennen wir dann XYZ.mid. Bei Doppelklick darauf würde der WMP die Datei versuchen zu öffnen, weil er für .mid als systemweite Applikation eingetragen ist. Der WMP kümmert sich aber nicht mehr um die Dateiendung, sondern sieht nach, was als MIME-Typ eingetragen ist. Ergo interpretiert er das Ding als Film und schwuppss...

Noch einfacher wäre es, gleich einen ausführbaren Code unterzubringen, und den lediglich statt "virus.exe" "virus.mid" zu nennen. Ist jetzt jemand zu unbedarft und doppelklickt darauf, dann wird die Datei u.U. ausgeführt. Zugegeben, das sollte heute aufgrund von diversen Sicherheitsmaßnahmen scheitern. Aber bei einem 10 Jahre alten, ungepatchten System kann das Probleme geben...
 
ich gebe mal zu bedenken, das die Firmware von machen Geräten auch per Midi File eingespielt wird ( z.B. CC-121 Steinberg). Damit wäre natürlich ein Missbrauch MÖGLICH, aber wie schon gesagt, da kein lohnendes Ziel, sehr UNWAHRSCHEINLICH
Absolut richtig, das wäre allein schon sehr unwahrscheinlich, weil man sowas auch nur gerätespezifisch machen könnte. Es kommt aber noch ein Punkt dazu: Alle Geräte, die ich kenne, müssen vor einem Update in den entsprechenden Modus versetzt werden (z.B. durch Drücken einer Taste beim Einschalten). Im normalen Betrieb reagieren sie überhaupt nicht, wenn man ihnen OS-Updates schickt. Das kann man also in der Tat komplett vergessen.

---

Sicherheitslücke, dass einerseits hier im Board, andererseits bei allen Virenschutzherstellern und bei Microsoft alle verfügbaren Alarmglocken klingeln müssten.
Wenn man sich ansieht, wie bei den diversen Anbietern mit echten und schwerwiegenden Sicherheitslücken umgegangen wird, verliert man (ich zumindest) sehr schnell das Vertrauen, dass da irgendwas passieren würde. Die Alarmglocken klingeln ja meist erst, wenn einige tausend Rechner befallen sind - auch, wenn der Fehler schon seit 2 Jahren bekannt war... Aber das ist natürlich noch eine andere Geschichte ;)
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben