Visual Studio 2015 stopft ungefragt Tracing-Code in C++-Programme
Microsofts aktuelle Entwicklungsumgebung baut ungefragt und automatisch Funktionsaufrufe in C++-Code ein, die dem Erfassen von Telemetrie-Daten dienen. Microsoft will das nun mit Updates abstellen.
Die aktuelle Version von Microsofts Entwicklungsumgebung Visual Studio kompiliert ungefragt Funktionsaufrufe in C++-Programme ein, die eine Ablaufverfolgung des fertigen Programms ermöglichen. Damit erfassbare Daten wie Zeitstempel oder Module Load Events landen zwar nur auf lokalen Datenträgern, können aber unter Umständen leicht nach außen dringen. Microsoft will dieses kürzlich publik gewordene Verhalten beim Update 3 für Visual Studio 2015 entfernen; bis dahin kann man die automatische Erfassung von Telemetrie-Daten mit einem Linker-Parameter deaktivieren.
Das ungefragte Tracking war einem Anwender aufgefallen, der ein Minimal-Programm mit der Entwicklungsumgebung ĂĽbersetzt und dann untersucht hat. Das fertige Programm rief die von der Systemkomponente ETW (Event Tracing for Windows) bereitgestellten Funktionen telemetry_main_invoke_trigger
und telemetry_main_return_trigger
auf, obwohl der Quellcode gar keine Anweisungen dazu enthielt. Ein Screenshot zeigt das Ganze.
Das Verhalten wurde auf Reddit diskutiert und von Infoq verifiziert. Bei Reddit meldete sich Steve Carroll zu Wort, der bei Microsoft als Development Manager für Visual Studio arbeitet. Er entschuldigte sich für das Verhalten und kündigte an, dass es mit dem nächsten großen Update entfernt werde. Ferner soll es auch aus der nächsten, bereits als Vorabversion erhältlichen Generation der Entwicklungsumgebung getilgt werden, die unter der Bezeichnung Visual Studio '15' entwickelt wird. Sowohl dort als auch in der aktuellen Version soll sich das Einkompilieren der Telemetrie-Funktion deaktivieren lassen, indem man notelemetry.obj
zum Linker-Aufruf hinzufügt. Die älteren Visual-Studio-Versionen 2012 und 2013 bauen laut Infoq Telemetrie-Funktionen nicht unaufgefordert ein.
(thl)