Bill Gates wird sich ärgern. Erst vor wenigen Tagen hat der Microsoft-Chefentwickler (Börse Frankfurt: MSF) die beiden Programmier-Tools Visual Studio .Net und .Net Framework vorgestellt, mit denen Entwickler XML-basierte Webservices erstellen sollen. Und schon jetzt ist der erste Fehler in dem Code entdeckt worden.
Durch den Fehler könnte es laut dem Sicherheits-Cheftechniker Gary McGraw der Firma Cigital passieren, dass Software-Entwickler versehentlich Programme schreiben, in die Hacker leicht eindringen könnten. Das Sicherheitsproblem läge im Compiler, der mit dem neuen Visual C++.Net ausgeliefert werde. Das Programm ist eins von mehreren Tools, die in der Suite Visual Studio .Net inkludiert sind.
Demnach enthält der Compiler einen Bug, der einen Hacker die Möglichkeit gibt, einen „Buffer Overflow“ auszulösen. Ein Compiler ist eine Software, die den Code des Programmierers in die Computersprache umsetzt.
Microsoft selbst regte sich jedoch zuerst nur über die Art und Weise auf, wie der Bug mitgeteilt wurde. „Wir sind beunruhigt darüber, wie wir über dieser Fehler informiert wurden“, sagte der Microsoft-Sprecher Jim Desler. „Professionelle Sicherheitsfirmen gehen mit solchen Informationen nicht so um, dass sie einen Verkäufer kontaktieren und die Sache gleichzeitig an die Presse bringen.“
Cigital hatte sich als Sicherheitsfirma für die Beratung rund um .Net beworben, erhielt jedoch nicht den Zuschlag. So spekulieren manche, das Cigital deswegen den Fehler an die große Glocke gehängt habe.
Laut dem Sicherheitschef McGraw, ist diese Vermutung „völlig unkorrekt. Wir erledigen für sehr viele weltweite Softwarefirmen Sicherheitsarbeiten. Es gibt an dieser Sache nichts Besonderes.“
Kontakt:
Microsoft, Tel.: 089/31760 (günstigsten Tarif anzeigen)
Neueste Kommentare
2 Kommentare zu Fehler in .Net-Tools von Microsoft entdeckt
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
Die Meldung ist schlicht NONSENSE
Es geht _NICHT_ darum Buffer-Overflows zu verhindern, sondern darum ihre Auswirkungen einzuschränken.
-Frage:
Was macht man mit einem Buffer-Overflow.
-Anwort:
Man will auf der ausführenden Maschine Code ausführen, der normalerweise nicht ausgeführt worden wäre, um z.Bsp. einen Virus einzuschleusen usw.
-Frage:
Wie führt man solchen Code aus.
-Antwort:
In vielen Programmiersprachen legt der Compiler die Rücksprungadresse einer Funktion auf dem Stack ab. Dort liegen nun aber auch Variablen wie z.Bsp. Character-Arrays. Wird solch ein Zeichenfeld nun zur Speicherung eines URLs verwendet, kann man durch eine Längenüberschreitung beim Kopieren der Inhalte auch Bereiche auf dem Stack verändern, die normalerweise nicht zugänglich sind. Und kann damit dann eben auch die Rücksprungadresse manipulieren. Beim Verlassen der Funktion wird also dorthin gesprungen, wo dann der modifizierte Code steht (wenn alles klappt, denn in den allermeisten Fällen stürzt das Programm jedoch ab oder bleibt hängen).
-Frage:
Wie kann man so etwas verhindern.
-Antwort:
Der in Visual C++ verwendete Ansatz ist folgender.
Für den Bereich auf dem Stack der u.a. die Rücksprungadresse enthält wird beim Kompilieren eine Signatur generiert. Diese Signatur wird vor dem Rücksprung aus der Funktion nochmals überprüft. Den Code zum Überprüfen generiert ebenfalls der Compiler und fügt diesen automatisch an das Ende der Funktion an.
Dieses Verfahren ist natürlich auch nicht sicher, aber bietet auf jedenfall mehr als ‚gar nichts‘.
Was nun der geniale Mann von Cigital getan hat ist, daß er sich eine Methode ausgedacht hat, um auch diese Überprüfung zu überlisten.
Es geht also keineswegs um etwas Microsoft spezifisches, sondern solche
Angriffe sind im Prinzip auf alle Stacksprachen möglich, die direkte
Manipulation von Speicherinhalten auf dem Stack gestatten.
Und es hat auch absolut nichts mit .NET zu tun, das will nämlich die Firma Cigital uns immer wieder weismachen.
KHS
Artikel ist "nicht ganz" korrekt…
>Demnach enthält der Compiler einen >Bug, der einen Hacker die Möglichkeit >gibt, einen "Buffer Overflow" >auszulösen. Ein Compiler ist eine >Software, die den Code des >Programmierers in die Computersprache >umsetzt.
Dieser Schalter dient dazu Buffer Overflow zu ENTDECKEN nicht auszulösen.
siehe:
zdnet.com.com/2100-1104-839039.html :-)
We maintain the opinion that fixing source code to eliminate buffer overruns is the best and only solid approach to securing software," Bray wrote in a statement. "However…buffer overruns are not always simple to find. Thus, anyone truly interested in writing secure code would not hesitate to use the (GS flag) for their builds."