Definition von "Bug"

Hallo!
Bezeichnet man auch einen Fehler, der absichtlich (von einer Person, die das Programm ‚gehackt‘ hat) in ein Programm hineingeschrieben wird, als „Bug“? Hat mit einer Romanhandlung zu tun, das haarklein zu erklären, würde zu weit führen …
Gruß,
Eva

Moin,

Auch wenn der Bug eher etwas ist, was unabsichtlich zu Programmfehler führt, so wäre aus meiner Sicht die Definition von Bug auch für Sabotage gültig. Fehler ist schließlich Fehler …
Dazu ein Bericht über Fehler und deren Folgen: http://praxistipps.chip.de/die-gefaehrlichsten-software-fehler-aller-zeiten-todesfaelle-und-explosionen_47731

Ulrich

Hallo,

Prinzipiell sind Programmierfehler niemals beabsichtigt, aber leider nicht zu 100% vermeidbar.
Die meisten Fehler werden während Funktions-, ALpha- und Betatests entdeckt, bevor das fertige Programm auf den Markt kommt.

Ein Bug ist für mich ein Programmierfehler, welcher eine kleine Funktionsstörung hervorruft, welche für mich eher lästig als schädlich ist. Ist jetzt aber meine Definition.

Es gibt auch gröbere Fehler, welche mit Datenverlust einhergehen. Diese werden allgemein auch als Bug bezeichnet.

Siehe auch: https://de.wikipedia.org/wiki/Programmfehler

Es gibt auch sicherheitsrelevante Fehler (verletzte Speicherbereiche, sog. Overflows). Wird dieser von einem Hacker entdeckt und ausgenutzt, ist dies ein Exploit (von engl. = Ausnutzen).

Letztlich gibt es dann noch Schadsoftware, die zwar korrekt arbeitet, aber beim Nutzer Schaden verursachen soll.

LG
Chris

Hallo!
Danke Dir!
In diesem speziellen Fall gibt es ein Programm, das bei Menschen Bewusstseinsveränderungen hervorruft (frag mich nicht, ob das alles so funktioniert …) , jemand hat sich da eingehackt und einen Teil des Programms umgeschrieben oder ein Element eingefügt, das negative Auswirkungen zur Folge hat. Kann man da nicht sagen, jemand hat einen Bug eingebaut oder eingeschleust? Im Englischen hieß es, man hat einen „Hack“ gefunden. Ist das als Jargon auch im Deutschen gebräuchlich?
Gruß,
Eva

Das wäre dann nach meinem Verständnis (bin selber Hobby-Programmierer) ein Exploit.

Ein Programm umschreiben geht an sich nur, wenn du den Quellcode hast. Man könnte eine Software deassembleren, verändern und daraus wieder das (geänderte) Programm erstellen. Ist allerdings sehr aufwendig.

Der Hacker könnte also einen Stack-Overflow gefunden haben und damit beliebigen Code auf der Maschine ausführen.
Dabei wird am Programm selbst nichts verändert; der Angriff erfolgt zur Laufzeit des Programms im Arbeitsspeicher.

Das sind sehr tückische Fehler; es gibt wirksame Gegenmaßnahmen, welche aber meist aus Bequemlichkeit oder Zeitnot nicht getroffen werden.

Ohne jetzt zu sehr ins Detail zu gehen:
Ein Programm wird „zeilenweise“ von oben nach unten abgearbeitet. Es kann aus mehreren Unterprogrammen bestehen. Nach Abarbeitung eines Unterprogramms wird wieder zurückgesprungen und der Programmablauf dort weiter fortgesetzt.

Damit das Programm weiß, wohin es zurückspringen soll, wird die Adresse mit übergeben.

Der Stack ist ein Stapelspeicher, dessen Größe vorher für das Unterprogramm festgelegt wird. Es werden u.a. Variablen darauf abgelegt. Am Ende steht die Rücksprungadresse.

Werden jetzt mehr Daten in den Speicher geschrieben, als Platz zur Verfügung steht, werden benachbarte Bereiche überschrieben und die Rücksprungadresse wird verändert bzw. gelöscht.
Man könnte in den Stapelspeicher bspw. seinen Schadcode schreiben und die Rücksprungadresse auf den Anfang des Speicherbereiches legen, sodaß dieser als Endlosschleife ausgeführt wird.

Siehe auch: https://de.wikipedia.org/wiki/Stack_Overflow

Bevor ich gleich Haue von allen bekomme, ich meine es durchaus ernst. Kann man dann nicht von einem Virus sprechen?

Data

Den Stack kannst du dir wie eine Aktenablage „Posteingang“ auf dem Schreibtisch vorstellen.
Dein Chef hat dir so viele Akten da reingelegt, daß der Platz nicht mehr reicht und du schon auf das Fach „Pstausgang“ zurückgreifen mußt. Dummerweise war da noch ein Notizzettel mit deinen anderen Tagesaufgaben, der jetzt verschwunden ist.
Die wichtige Post bleibt liegen und es gibt Ärger mit Kunden…

1 Like

Klares Jein :smile:

Die Software im Roman hat ja weitreichende Fähigkeiten, was sie natürlich attraktiv für Angriffe macht. Ein Krimineller könnte speziell eine Schadsoftware dafür entwickelt haben, welche bspw. den in meinem Beitrag erwähnten Stackoverflow verursacht.

Ein Virus soll ja gezielt irgendwelche Schäden verursachen, selbst wenn er nur den Rechner langsam macht und sich im Netzwerk ausbreitet. Manche verschlüsseln Daten, sodaß du die nur gegen „Lösegeld“ wieder bekommst.

Dabei stellen manche ungerichtete Schäden an, manche sind für einen bestimmten Zweck erstellt (zB Stuxnet für Siemens-Steuerungen).

Sorry, hätte ich erwähnen müssen. der Quellcode ist vorhanden. Der Hacker schreibt einen Befehl in das Programm, der die Betroffenen konditioniert, auf ein Schlüsselwort bestimmte Handlungen auszuführen.

Danke Dir für Deine sehr informative Antwort. :thumbsup:
Gruß,
Eva

Okay, das macht es natürlich einfach.

Wenn der „Böse“ (wie auch immer) an den Quellcode gekommen ist, kann er diesen natürlich nach Belieben ändern und ggf wieder zurückschmuggeln.

Bspw. könnte er heimlich mit nem USB-Stick die Dateien vom Firmenrechner
kopiert, zuhause in Ruhe seine Änderungen gemacht und danach die Dateien wieder zurück auf den Rechner der Firma kopiert haben.

Ist das PRogramm komplex und die Veränderung klein genug und (im Sinne des Compilers) fehlerfrei, fällt das so gut wie gar nicht auf. Bei 40000 Zeilen Code fällt eine kleine zusätzliche Funktion mit sagen wir 10 Zeilen beim Überlesen nicht auf. Oder gar eine Änderung von paar Zeilen in einer bestehenden Funktion.
Gerade weil bei größeren Projekten auch mehrere Programmierer beteiligt sein können.

Dann ist das aber kein Bug mehr, eher ein Sabotageakt.

1 Like

Danke Dir! Jetzt sehe ich klar.
Gruß,
Eva

Im Englischen hieß es, man hat einen „Hack“ gefunden. Ist das als Jargon auch im Deutschen gebräuchlich?

Ja ist es, ein „Hack“ ist - auch - die bewusste Manipulation von Programmcode um ein bestehendes Programm oder System zu korrumpieren und zu eigenen Zwecken zweckzuentfremden

Ein Bug ist etwas anderes, ein eher unbeabsichtigter Programmierfehler in einer Software.

1 Like

Danke! Ich bin immer froh um jede Vokabel, das mir hilft, einen Text abwechslungsreich zu gestalten. Und wenn in einem Roman Programmierer sich unterhalten, fließt natürlich auch etwas Fachjargon ein, sonst wären die Dialoge unglaubwürdig.

Gruß,
Eva

Klingt auf jeden Fall interessant. Wenn dein Buch fertig ist, kannst ja mal bescheid sagen :wink:

Mache ich sehr gern. Ist notiert :slight_smile:

Würde ich auch so bezeichnen, egal ob es ein absichtliches Hintertürchen ist oder ein unbeabsichtigter Fehler.
Ich bin aber auch nicht die Programmiertante, da muss ich mal meinen Bugster fragen.