Backdoor
{{#if: beschreibt einen Zugang zu Rechnern; zur gleichnamigen britischen Jazzrock-Band siehe Back Door.
| Vorlage:Hinweisbaustein | {{#ifeq: 0 | 0 |}}
}}
{{#invoke:Vorlage:lang|flat}} (auch {{#invoke:Vorlage:lang|flat}} oder Hintertür) bezeichnet einen (oft vom Autor eingebauten) Teil einer Software, der es Benutzern ermöglicht, unter Umgehung der normalen Zugriffssicherung Zugang zum Computer oder einer sonst geschützten Funktion eines Computerprogramms zu erlangen.<ref name="Backdoor-Definition">Robert C. Newman: Computer Security – Protecting digital Resources; Februar 2009, ISBN 978-0-7637-5994-0, Auszug Seite 49: „Backdoor software tools allow an intruder to access a computer using an alternate entry method. Wheras legitimeate users log in through front doors using a userid and password, attackers use backdoors to bypass these normal access controls.“, books.google.de (komplette online-Einsicht in den zitierten Auszug); Windows Vista Security; O’Reilly Verlag, 2007, ISBN 978-3-89721-466-8, Auszug Seite 105: „Ein Backdoor ist eine Hintertür zu einer Anwendung, ein versteckter Zugang zu einem Computer oder eine Abkürzung durch einen Autorisierungsmechanismus“; books.google.de (komplette online-Einsicht in den zitierten Auszug).</ref>
Ein Beispiel sind Universalpasswörter für ein BIOS<ref name="BIOS-Backdoor_lkwpeter">Privacy protection and computer forensics – second edition. ISBN 1-58053-830-4, 2004, Auszug Seite 250: „Openly available on the Internet is the following list of backdoor CMOS BIOS passwords: […] lkwpeter […]“, books.google.de (kompletter Auszug des zitierten Textes).</ref> oder eine spezielle (meist durch einen Trojaner heimlich installierte) Software, die einen entsprechenden Fernzugriff auf den Computer ermöglicht.
In der Kryptografie bezeichnet man auch eine Möglichkeit zum Brechen eines Verfahrens (z. B. einer Verschlüsselung), die von dessen Entwickler bewusst eingebaut wurde, als Backdoor.
Unterschied zwischen Backdoor und Trojaner
{{#if: Trojanisches Pferd (Computerprogramm)|{{#ifexist:Trojanisches Pferd (Computerprogramm)|
|{{#if: |{{#ifexist:{{{2}}}|
|{{#if: |{{#ifexist:{{{3}}}|
|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}
Als Trojanisches Pferd, kurz Trojaner, wird ein Computerprogramm oder Skript bezeichnet, das sich als nützliche Anwendung tarnt, im Hintergrund aber ohne Wissen des Anwenders eine andere Funktion erfüllt.<ref name="bsi_Trojaner-Definition"><templatestyles src="Webarchiv/styles.css" />{{#if:20121027080429
| {{#ifeq: 20121027080429 | *
| {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20121027080429}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20121027080429}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Trojanische Pferde | {{#invoke:WLink|getEscapedTitle|Trojanische Pferde}} | {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20121027080429|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html}}
|| {{#if: || }}
}}{{#if: Trojanische Pferde
| {{#if: {{#invoke:WLink|isBracketedLink|Trojanische Pferde}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|https://www.bsi-fuer-buerger.de/ContentBSIFB/GefahrenImNetz/Schadprogramme/TrojanischePferde/trojaner.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}, eine Kurzbeschreibung vom BSI</ref> Das einfachste Beispiel dafür ist ein schädigendes Programm, welches Dateien des Benutzers löscht, dessen Dateiname aber auf eine andere Funktion schließen lässt, wie lustiger_Bildschirmschoner.exe. Dabei ist es unerheblich, ob der „lustige Bildschirmschoner“ tatsächlich auch einen Bildschirmschoner anzeigt, während er die Daten zerstört, oder ob er einfach nur die Daten zerstört. Die Nutzung des irreführenden Dateinamens genügt, um das Programm als Trojanisches Pferd zu klassifizieren.
Trojaner können auch dazu dienen, Backdoorprogramme zu installieren, müssen diese jedoch nicht notwendigerweise enthalten. Beherbergt und installiert ein Trojaner ein eigenständiges Backdoorprogramm, greift der Eindringling auf das installierte Backdoorprogramm zu und nicht auf den Trojaner. Der Trojaner diente in diesem Fall lediglich als Hilfsprogramm für die heimliche Installation. Der Trojaner kann danach jederzeit gelöscht werden, ohne dass dies einen Einfluss auf die weitere Funktion des Backdoorprogramms hat.
Allerdings hält niemand den Entwickler eines Backdoorprogramms davon ab, sich der Technik eines Trojaners zu bedienen. Bei einem Backdoorprogramm, das sich selbst als nützliche Anwendung tarnt (beispielsweise als Desktopuhr, die heimlich einen Fernzugriff auf den Computer ermöglicht), handelt es sich um eine Mischform zwischen einem Backdoor und einem Trojaner. Wird ein solches Programm beendet oder gar gelöscht, so steht auch die heimliche Backdoorfunktion nicht mehr zur Verfügung.
Beispiele
Eine Variante besteht darin, in einem System fest vorgegebene, nur dem Ersteller des Systems bekannte Passwörter oder andere versteckte Funktionen einzubauen, die einen Zugriff ohne die sonst übliche Authentifizierung ermöglichen.<ref name="Backdoor-Definition" /> Ein bekanntes Beispiel hierfür ist der von Award Software über mehrere Jahre vergebene Hash-Code, der mit dem BIOS-Universalpasswort „lkwpeter“<ref name="BIOS-Backdoor_lkwpeter" /> bedient wird.
Zur Software, die einen Fernzugriff auf den Computer ermöglicht, zählen z. B. Programme wie Sub Seven und Back Orifice.
1999 wurde eine Variable namens NSAKEY in Windows gefunden und ebenfalls eine Backdoor vermutet.
Auch die Router von Cisco Systems, die weite Teile des Internetverkehrs abwickeln, sind mit Backdoors für US-Geheimdienste versehen.<ref name="handelsblatt-2013-109-4">{{#invoke:Vorlage:Literatur|f}}</ref>
Im März 2024 sorgte die Backdoor in den XZ Utils, einer auf Servern weit verbreiteten Bibliothek, für Aufsehen.<ref>{{#invoke:Vorlage:Literatur|f}}</ref>
In Kinofilmen wurden Backdoors einer breiten Masse bekannt gemacht. So hackt sich beispielsweise der Teenager David Lightman in WarGames – Kriegsspiele mithilfe eines Backdoor-Passworts in den Kriegssimulator WHOPR ein. In Jurassic Park versucht sich der Ingenieur Ray Arnold ebenfalls mithilfe eines Backdoor Passworts in ein Computersystem zu hacken.
Schutz vor einem Backdoor durch Überprüfbarkeit des Quelltextes
{{#if: Closed Source|{{#ifexist:Closed Source|
|{{#if: Open Source|{{#ifexist:Open Source|
|{{#if: freie Software|{{#ifexist:freie Software|
|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}
Bei Softwareprodukten ist eine freie Einsicht in deren Quellcode ein Aspekt der Computersicherheit. Dabei gilt es unter anderem die Gefahr zu minimieren, dass ein Produkt Funktionalitäten enthalten kann, von denen der Anwender nichts wissen soll, wie die heimliche Funktion einer Backdoor.
Quelloffene Software lässt sich von der Öffentlichkeit dahingehend überprüfen und darüber hinaus mit rechtlich unbedenklichen Mitteln auf Schwachstellen untersuchen, die auf diese Weise schneller geschlossen werden können.
Grenzen
Quelloffene Software kann zwar durch jeden mit entsprechender Sachkunde selbst auf heimliche Funktionalitäten und Schwachstellen hin untersucht werden, was jedoch nicht bedeutet, dass die bloße Verfügbarkeit des Quelltextes ein Garant dafür ist, dass dieser von den Computernutzern hinreichend überprüft wurde. Über einen langen Zeitraum bestehende Sicherheitslücken in quelloffener Software weisen auf diesen Umstand hin.<ref>Der quelloffene IRC-Server UnrealIRCd enthielt von November 2009 bis Juni 2010 einen Backdoor, der es Fremden gestattet, Kommandos mit den Rechten des UnrealRCd-Benutzers auf dem Server auszuführen – Meldung von heise Security, Autor Reiko Kaps, 12. Juni 2010.</ref><ref>Am 13. Mai 2008 gab das Debian-Projekt bekannt, dass das OpenSSL-Paket der Distributionen seit 17. September 2006 (Version 0.9.8c-1 bis 0.9.8g-9) eine Sicherheitslücke enthielt.</ref> Zudem ist eine geschickt verbaute Hintertür auch mit fundierten Fachkenntnissen mitunter schwer zu erkennen. Der Zeitaufwand für eine Analyse ist bei komplexen Programmen oft beträchtlich.
Ob das von einer externen Quelle bezogene ausführbare Programm tatsächlich mit dem veröffentlichten Quellcode erstellt wurde oder ob hier nicht zuvor eine Hintertür eingebaut oder eine andere Veränderung vorgenommen wurde, ist für den Anwender oft schwer zu erkennen. Auch hierfür gilt, dass mit entsprechender Sachkunde wenigstens in der Theorie eine Überprüfung möglich ist. Dies gestaltet sich jedoch in der Praxis oft als schwierig, da die beim Kompilieren entstehenden Binärdateien gerade bei größeren Codebasen durch sehr viele Faktoren beeinflusst werden können und es im Allgemeinen keine zuverlässige Möglichkeit gibt, herauszufinden, unter welchen Bedingungen eine vorliegende ausführbare Datei entstanden ist.
Eine Methode, diesen Schritt des Kompilierens abzusichern, ist, reproduzierbare Builds zu erstellen. Dabei wird die Software reproduzierbar bzw. deterministisch kompiliert und so kann jeder durch eigene Kompilierung nachprüfen, dass das Kompilat aus dem entsprechenden Quellcode gebaut wurde und während des Build-Prozesses keine Hintertür eingeschleust wurde.
1984 stellte der Computer-Pionier Ken Thompson während seiner Turing-Award-Rede ein Beispiel für eine Hintertür vor, die selbst bei der Verfügbarkeit des Quelltextes schwer aufzuspüren wäre.<ref>Ken Thompson: Reflections on Trusting Trust. (PDF; 225 kB) Communications of the ACM, August 1984.</ref> Die Rede war von einem login-Programm für Unix, das derart verändert wird, dass es zusätzlich zum normalen Passwort auch ein Generalpasswort akzeptiert. Diese Hintertür könne, so Thompson, ein entsprechend manipulierter C-Compiler beim Übersetzen des login-Programms automatisch hinzufügen, wodurch der Quelltext des login-Programms keinen Hinweis auf eine Manipulation liefert. Das Vorgehen ließe sich auf eine weitere Instanz verschieben, die dafür zuständig ist, den C-Compiler selbst in eine ausführbare Datei zu übersetzen, wodurch die Manipulation dann nicht einmal mehr aus dem Quellcode des C-Compilers ersichtlich wäre.
Siehe auch
Weblinks
|1|= – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen |0|-= |X|x= |#default= –
}}{{#if:| {{#ifeq: {{{lang}}} | de | {{#ifeq: 0 | 0 | }} | ({{#invoke:Multilingual|format|{{{lang}}}|slang=!|shift=m}}) }}}}{{#invoke:TemplatePar|check
|opt= 1= 2= lang= suffix= |template=Vorlage:Wiktionary |cat=Wikipedia:Vorlagenfehler/Schwesterprojekt }}
Einzelnachweise
<references />
{{#ifeq: s | p | | {{#if: 4704524-3 | |
}} }}{{#ifeq:||{{#if: | [[Kategorie:Wikipedia:GND fehlt {{#invoke:Str|left|{{{GNDCheck}}}|7}}]] }}{{#if: | {{#if: | | }} }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#if: | {{#ifeq: 0 | 2 | | }} }}{{#ifeq: s | p | {{#if: 4704524-3 | | {{#if: {{#statements:P227}} | | }} }} }}{{#ifeq: s | p | {{#if: 4704524-3 | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P227}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P244}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P244}} | | }} }} }} }}{{#ifeq: s | p | {{#if: | | {{#if: {{#statements:P214}} | | }} }} }}{{#ifeq: s | p | {{#if: | {{#if: {{#invoke:Wikidata|pageId}} | {{#if: {{#statements:P214}} | | }} }} }} }}Vorlage:Wikidata-Registrierung
- Wikipedia:Vorlagenfehler/Mehrdeutigkeitshinweis
- Seiten mit defekten Dateilinks
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Wikipedia:Vorlagenfehler/Schwesterprojekt
- Wikipedia:GND fehlt
- Wikipedia:Normdaten-TYP falsch oder fehlend
- Wikipedia:GND in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:GND in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:LCCN in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:LCCN in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Wikipedia:VIAF in Wikipedia fehlt, in Wikidata vorhanden
- Wikipedia:VIAF in Wikipedia vorhanden, fehlt jedoch in Wikidata
- Schadprogramm
- Sicherheitslücke
- Hackertechnik (Computersicherheit)