www.physikbuch.de >>Physik erklärt >>Geschichten vom Rande der Physik >>Bad Bios >>

BadBIOS

Vor einigen Wochen ging durch die Nachrichten, dass ein geachteter Computerexperte behauptet, dass seine Rechner sich über ihre Lautsprecher und Mikrophone unterhalten. Die Idee klingt absurd. Aber mit einigem Wissen über den inneren Aufbau der Geräte nicht absurd genug, als dass dies nicht tatsächlich möglich wäre.

Anbei daher der notwendige technische Hintergrund:

Delta-Sigma-DA-Wandler

Ein CD-Player wählt 44100-mal pro Sekunde einen neuen Spannungspegel für seinem Kopfhörer-Ausgang. Jedes Mal hat er dabei die Wahl zwischen 65536 verschiedenen Spannungen, was erlaubt, nahezu jedes Audiosignal wirklichkeitsgetreu nachzubilden.

 

Mit dem Schwingquarz steht ihm dabei ein Taktgenerator zur Verfügung, der den Zeitpunkt, zu dem die Spannung gewechselt werden muss, mit extremer Genauigkeit vorgibt.

Genau die richtige Spannung zu erzeugen ist aber mittels real existierender Bauelemente erstaunlich schwer: Eine der genauesten Schaltungen, mit dem man Spannungen erzeugen kann, ist ein aus Widerständen gebauter Spannungsteiler. Immerhin zählen Widerstände zu den präzisesten Bauelementen, die man im Handel bekommt. Sie sind dort in Genauigkeiten von 1% verfügbar, mit etwas Glück sogar in 0,5%ig. Für deutlich mehr Geld kann man sich sogar Widerstände kaufen, deren Fehler (allerdings nur bei Zimmertemperatur) garantiert unter 0,1% ihres Wertes liegt.

Die oben dargestellte Rampe ist allerdings selbst mit 0,1% an Fehler auf der maximal möglichen Ausgangsspannung des CD-Players fast nicht mehr erkennbar:

Man kann jetzt versuchen, alle Widerstände in einem Chip aus einem Stück zu gießen und so ineinander zu verschachteln, dass sie fast an derselben Stelle des Materials zu liegen kommen. Man kann Schaltungsanordnungen suchen, die mit nur wenigen Widerständen auskommen, was die Zahl der möglichen Fehler reduziert. Auch kann man ein Ding mit so vielen
Ausgangsspannungen zusammenbauen, dass, wenn man sie am Ende ihrer Höhe nach ordnet, tatsächlich sicher alle Pegel zu finden sind, die man wirklich braucht: Das Geheimnis der Elektrotechnik ist meist nicht, die für die Aufgabe passenden Bauteile zu finden. Oft findet sich stattdessen ein Weg, wie man mit erstaunlich ungenauen Dingen dasselbe Ziel erreicht.

Dann kommt die DVD auf dem Markt und die Karten mischen sich erneut:
Das neue Medium fordert nämlich, gleich zwischen 16 777 216 verschiedenen Ausgangsspannungen wählen zu können.

Das Beste in so einem Fall ist es, sich zurückzulehnen und nachzusehen, was an wirklich genauen Dingen man eigentlich besitzt.
Deren gibt es nicht viele:

  • Ein quarzgenauer Takt,
  • die Möglichkeit, den Ausgang genau auf 0V zu legen, indem man ihn kurzschließt und
  • die Möglichkeit, ihn stattdessen an die Versorgungsspannung des Gerätes anzulegen. Wie hoch diese liegt, ist dabei nur bedingt wichtig: Zur Not dreht der Kunde eben am Lautstärkeregler.

Desweiteren gibt es Filter, die ein Signal mitteln. Auch verschiebt ein beliebiger Kondensator jedes Signal, wenn nötig, um ein paar Volt nach oben oder unten, so dass sein Mittelwert bei 0V liegt, wie sich das für ein Audiosignal gehört. Bei Bedarf kann ein Filter so ausgelegt werden, dass es zwar alle Dinge herausmittelt, die zu hoch sind, um gehört zu werden, den eigentlichen Ton aber durchlässt.

Am Ende bleibt tatsächlich nur wenig übrig, als ein Signal zu generieren, das den korrekten Mittelwert besitzt und dann herauszufiltern, was zu hochfrequent zum hören ist.

Der offensichtlichste Ansatz dazu wäre, ständig von 0 bis 16 777 216 zu zählen. Er wird sogar verwendet und PWM (Pulsweitenmodulation) genannt.
Ist der Zählerstand kleiner als der Wert, der auszugeben ist, wird der Ausgang auf die Versorgungsspannung gelegt; den Rest der Zeit wird der Ausgang kurzgeschlossen.

Für eine DVD, die 48000-mal pro Sekunde eine neue Spannung ausgeben will, muss man dann allerdings sehr schnell zählen: 16777216 Zählerstände pro Spannungswert bei 44800 Spannungswerten pro Sekunde wären 805 Milliarden Zählerstände pro Sekunde. Fast sieht es aus, als ob wir schon verloren hätten. Um abwechselnd gleich lange 0V und 1V auszugeben, ist es jedoch nicht nötig, jedes Mal 8388608 Taktzyklen zu warten. Auch nicht, wenn man ganz ein Wenig mehr als  0,5V ausgeben will: Dann legt man an den Eingang des Filters ganz brav abwechselnd 0V und 1V an - und streut alle paar hundert Male für einen zusätzlichen Taktzyklus 1V ein.

Wir haben getan, was wir konnten. Auch schalten wir meist so häufig (also so hochfrequent), dass man einen Teil des Fehlers, den wir durch den Versuch, ein Audiosignal durch Rechtecke nachzubilden allein schon dadurch herausfiltern kann, dass er viel höher als die hörbaren Töne ist. Auf den ersten Blick erscheint es dennoch, als hätten wir nicht viel gewonnen. Aber etwas haben wir dann doch erreicht: Zwar ist der Fehler da. Aber was unser Filter nicht entfernen kann, ist jetzt auf extrem viele Frequenzen verteilt und dies bedeutet, dass wenn man sich sein Spektrum ansieht, für jede einzelne Frequenz nur noch erstaunlich wenig an Fehler übrig ist. Der Elektrotechniker würde nun beschließen, anstatt des Signals nur noch den Fehler zu beschreiben, ihn in "Rauschen" umzubenennen und das ganze Prinzip vollmundig als "Delta-Sigma-Modulator" zu bezeichnen. Dies alles, um zu verschleiern, wie einfach das Ganze in Wirklichkeit ist. Aber wir wissen: Etwas anderes, als das Signal so genau wie möglich durch Rechtecke anzunähern und sie dabei nie länger zu machen, als unbedingt nötig, tut unsere Schaltung nicht.

Allerdings wollen wir das Pulssignal vielleicht noch ein wenig modifizieren: Eine Schaltung zu bauen, die extrem hohe Frequenzen aus einem Audiosignal herausfiltert, ist leicht. Soll sie aber schon knapp über 20kHz zu filtern beginnen, benötigt sie dafür Kondensatoren und Widerstände, die eigentlich schon zu groß sind, um sie in einen Chip einzubauen. Das Filter dann auch noch so zu gestalten, dass es zwar alles knapp über 20kHz herausfiltert, die Audiosignale bis knapp unter 20kHz hingegen vollständig unverändert durchlässt, wäre komplette Magie.

Das Pulsmuster, das das Audiosignal annähert, sollte also keine Rechtecke enthalten, die auch nur grob in die Nähe einer Breite kommen, wie sie im regulären Audiosignal enthalten ist.

Delta-Sigma-AD-Wandler

Auch das Gegenteil lässt sich bauen: Eine Schaltung, die wilde Rechteckmuster erzeugt, die im Durchschnitt, wenn man sie lange genug mittelt, den Wert ergeben, den man misst.

Bei solch einem Wandler kann der Kunde (in den Grenzen, die die Genauigkeit des Wandlers zulässt) wählen, was er benötigt:

  • Lässt er die Werte durch ein extrem starkes Filter, bekommt er Ultragenaue 36-Bit-Daten, diese aber für ein Audiosignal wahrscheinlich zu selten.
  • Oder nimmt er ein schnelleres Filter, das dann nur 24 Bit an Genauigkeit bietet? Dafür bekommt er die Daten sicher häufig genug.
  • Oder reichen ihm vielleicht schon 10 Bit an Genauigkeit aus? 10 Bit sind immer noch eine Menge. Die Messfrequenz wäre aber überragend schnell.

Die Schaltung, die dies alles vollbringt, besticht darüberhinaus mit Einfachheit:

Ein Vergleicher misst einmal pro Quarztakt, ob ein Kondensator eine höhere oder eine niedrigere Spannung enthält, als sie das Mikrophon erzeugt. Ist die Spannung am Kondensator höher, wird der Kondensator den nächsten Takt über entladen, ansonsten lädt die Schaltung ihn den nächsten Takt lang ein Stückweit auf.

BadBIOS

Dragos Ruiu behauptet nun, er habe ein seltsames Verhalten beobachtet, das alle Rechner in der Nähe seines Labors befällt. Auch hat er nachgewiesen, dass dieser Virus sich nicht über das Netz verbreitet. Aber ein Rechner, bei dem er das Mikrophon ausgebaut hatte, wurde nicht angesteckt.

Dies wäre für einen Geheimdienst sicher praktisch:
Ein Lieferant kommt in eine Firma, spielt eine Präsentation vor, bekommt selbst eine vorgespielt - und sein Rechner hat dabei genügend viel Zeit, ein Spionageprogramm auf einen Laptop des Lieferanten zu kopieren. Später dann verbreitet es sich von Rechner zu Rechner in der Firma. Doch egal, wie genau der Netzwerkverantwortliche auch seine Leitungen kontrolliert: Etwas davon sehen tut er mit Sicherheit nicht.

Dragos Ruiu ist ein anerkannter Experte und weiß, was er tut. Auch gibt es in der Elektrotechnik nur wenig, was nicht objektiv zu messen wäre (Ich habe eine Hochachtung vor Medizinern, die mit Systemen arbeiten, in die man nicht einfach hineinmessen kann). Andererseits würde ich ihn nicht weniger schätzen, wenn er sich dieses Mal dennoch geirrt haben sollte: Selbst bei bedeutend einfacheren Systemen können ganze Forschergenerationen sehr lange Dinge messen, die später nie mehr reproduzierbar sind. In Computern gibt es die absurdesten Phänomene, die einen normalen Menschen zur Weißglut treiben und die einen Sicherheitsexperten, der darauf trainiert ist, in Alarmstimmung setzen müssen. Auch sind wir elektrisch blind und eigentlich ist das Einzige, was in einem Computer messen kann, der Computer selbst - von dem man in diesem Fall fast garantieren kann kann, dass er versucht, zu lügen. Wenn man sich nicht auf seine Augen verlassen kann: Worauf kann man dann noch vertrauen? Alles, worüber wir in den letzten Jahren spekuliert haben, hat sich am Ende als die Wahrheit herausgestellt, egal, wie absurd es klang.

Immerhin können wir untersuchen, ob die Existenz eines BadBIOS zumindest möglich wäre.

Softwarevoraussetzungen

Damit ein Rechner über die Soundkarte Daten empfangen kann, muss in ihn erst einmal bereits ein Programm eingebaut sein, das die Töne, die der Rechner hört, in Daten verwandelt und irgendwo ablegt, wo diese später ausgeführt werden. Auch muss es eventuell seine Spuren so verwischen können, dass ein Programm, das auf dem Rechner läuft, sie übersieht.

Dieses Programm wäre dann wahrscheinlich in jeden Rechner fest eingebaut und Orte, an denen dieses möglich wäre, gäbe es tatsächlich:

  • Das BIOS oder EFI (eben jenes Programm, das fest in den Rechner eingebaut ist und beim Hochfahren das Betriebssystem lädt, wäre solch ein Ort.
  • In den Prozessor selbst waren früher viele komplizierte Schaltungen eingebaut, die Dinge wie das Energiesparmanagement erledigten. Heute hat man sie durch Programme ersetzt, die fest in den Prozessor eingebaut sind - und von außen meist nicht sichtbar.
  • Viele Computer enthalten einen zweiten Prozessor (einen sogenannten Embedded Controller), der Zugriff auf Speicher und Geräte hat und für den Diebstahlschutz sowie die Fernwartung gedacht ist.
  • Auch haben die meisten Karten Zugriff auf den Speicher des Rechners. Viele brauchen diesen auch: Die Grafikkarte sowieso, die Soundkarte wahrscheinlich auch. Der Festplattencontroller will auch nicht für jedes Zeichen das  Programm unterbrechen und schreibt gelesene Daten von selbst in den Speicher des Rechners und über Firewire kann man den kompletten Speicher des Rechners auslesen oder ändern. Einfach, weil es ein Protokoll gibt, das dies erlaubt.

Woher soll man wissen, dass nicht auch eine andere in den Rechner eingebaute Karte sich diese Rechte einfach nimmt?

Das Datenformat

Das Frequenzband zwischen dem höchsten Ton, den man noch hört und dem höchsten Ton, den eine Soundkarte im normalen Zustand noch auszugeben bereit ist, ist sehr schmal. In es Daten hereinzufalten und diese dann noch zu interpretieren ist entsprechend schwer.
Aber ein Freund von mir hatte schon 1997 mit seiner Soundkarte Töne aus seinem Radio in Wetterkarten zurückkonvertiert und sein 40-MHz-Rechner war schnell genug dafür. Auch gab es schon zu dieser Zeit ein Linux-Kernel-Modul für AX.25-Datenfunk über die Soundkarte...
Die Frage ist also nicht, ob eine Datenübertragung über die Soundkarte möglich ist. Sie ist es. Die Frage ist, ob man die Soundkarte so umprogrammieren kann, dass sie einen ausreichend breiten Frequenzbereich außerhalb des hörbaren Bereichs zu verwenden bereit ist, um einfach auszuwertende Daten zu liefern.
Da Lautsprecher und Mikrophon meist über Delta-Sigma-Wandler an den Rechner angeschlossen sind, wäre die Frage dabei lediglich, ob man die Soundkarte so konfigurieren kann, dass sie das Pulsmuster vom Mikrophon ein wenig weniger filtert. Sie würde dann Ultraschall hören. Außerdem müsste man ihr sagen können, sie soll doch Pulsmuster generieren, in denen Frequenzen enthalten sind, die zwar zu hoch zum Hören sind, aber so niedrig, dass der Filter vor ihrem Ausgang sie nicht mehr entfernt.
Ob die heutigen Soundkarten so etwas können, weiß ich nicht. Im Handbuch wird es sicherlich nicht stehen: Wer (außer dem, der alle Geräusche von Meerschweinchen aufnehmen will) würde so etwas benötigen?

Lautsprecher und Mikrophon

Basslautsprecher sind deutlich größer als Hochtöner. Die Hochtöner einer Stereoanlage gehen bis zum Ende des hörbaren Spektrums und die in Laptops eingebauten Lautsprecher sind deutlich kleiner.Also sind sie auch für deutlich höhere Töne geeignet. Auch sind sie im Regelfall als Piezo-Lautsprecher ausgeführt wie diejenigen eines  Ultraschallmikroskops. Ähnliches gilt für die Laptopmikrophone: Kleine Mikrophone eignen sich nur wenig, um extrem tiefe Töne aufzunehmen. Auch rauschen sie tendenziell mehr. Dafür funktionieren sie aber auch für Ultraschall noch perfekt.

Falls jemand einen alten Laptop hat, aus dem er die Lautsprecher und das Mikrophon ausbauen kann, werde ich hier ein Diagramm einfügen, das zeigt, was ich mit diesen Bauteilen gemessen habe: Eine Möglichkeit, zu ermitteln, bei welcher Frequenz sie sich wie gut  für die Übermittlung von Schallwellen eignen, hätte ich zur Not.