Security through obscurity: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Security through obscurity''' - Sicherheit durch Verheimlichung  
'''Security Through Obscurity''' - Sicherheit durch Verheimlichung  


== Beschreibung ==
== Beschreibung ==
''Security Through Obscurity'' ist ein Ansatz, Sicherheit durch Geheimhaltung der Funktionsweise von Systemen zu gewährleisten
* ''Security through obscurity''
* ''Security through obscurity''
* ''Security by obscurity''
* ''Security by obscurity''
; Sicherheit durch
* Verwirrung
* Verwirrung
* Unklarheit
* Unklarheit
* Dunkelheit
* Dunkelheit


; Geheimhaltung der Funktionsweise
; ''Security Through Obscurity'' wirt NICHT empfohlen
Prinzip in der [[Computersicherheit|Computer-]] und [[Netzwerksicherheit]]
Ungeeignetes Sicherungsprinzip
* Es versucht, die Sicherheit eines Systems oder eines Verfahrens zu gewährleisten, indem seine Funktionsweise geheim gehalten wird
* [[National Institute of Standards and Technology]] (NIST) rät Sicherheitssysteme nicht auf dieser Basis zu konzipieren
 
*: "System security should not depend on the secrecy of the implementation or its components"
; Gegenkonzept
Sicherheit durch weitestgehende Transparenz
* [[Kerckhoffs’ Prinzip]]
* [[Full disclosure]]
 
Ausgehend von der [[Kryptologie]] wird hierbei vorgeschlagen;
* so wenig wie möglich geheim zu halten
* um dieses dann umso leichter schützen und
* gegebenenfalls ersetzen zu können
 
; Das Prinzip ''security through obscurity'' ist sehr umstritten
* So rät das [[National Institute of Standards and Technology]] (NIST), Sicherheitssysteme nicht auf dieser Basis zu konzipieren:
: "System security should not depend on the secrecy of the implementation or its components"


; Nachteile
; Nachteile
Auf diesem Prinzip beruhende Systeme sind  
Solche Systeme sind  
* intransparent für dessen Anwender
* Intransparent
* wenig geeignet, Vertrauen in Sicherheit zu schaffen
* Kundenfeindlich
: „Security by Obscurity ist ein Prinzip, das nicht nur ungeeignet als Sicherungsprinzip bleibt, es ist obendrein kundenfeindlich.“
* Wenig geeignet, Vertrauen in Sicherheit zu schaffen
 
== Hintergrund ==
Der Ausspruch des Informationstheoretikers [[Claude Shannon]] ''The enemy knows the system'' („Der Feind kennt das System“) ist ein Ansatzpunkt, von dem heute bei der Erstellung von Sicherheitskonzepten ausgegangen werden sollte
* Sicherheit, die ausschließlich auf der Geheimhaltung oder Verschleierung von Verfahren beruht, hat sich oft als ungenügend herausgestellt
* Als ''Ergänzung'' bestehender Sicherheitskonzepte konnte sich Verschleierung – bis zur Verbreitung automatisierter Test-Umgebungen ("Fuzzing") – jedoch als wirkungsvoll z. B. gegenüber automatisierten Angriffen erweisen
 
[[Kryptographie]] beruht grundsätzlich darauf, dass die Entschlüsselung durch Geheimhaltung von Daten verhindert wird
* Der Unterschied besteht darin, ob ein Schlüssel oder auch der verwendete [[Algorithmus]] geheim gehalten wird – denn sobald der Algorithmus für viele Dinge verwendet wird, ist er nicht mehr geheim, sondern weit verbreitet. ''Security by obscurity'' wäre dann der Versuch, Dinge geheim zu halten, die weite Verbreitung finden
 
Ein starker [[Algorithmus]], beispielsweise der [[Advanced Encryption Standard]] oder das [[RSA-Kryptosystem]], erfordert aus der Sicht der reinen Kryptographie-Sicherheit keine Geheimhaltung des Verfahrens, sondern nur des verwendeten Schlüssels
* Die Kryptographie-Sicherheit beschäftigt sich mit der Sicherheit eines Verfahrens
 
Gleichwohl werden immer wieder Verschlüsselungsalgorithmen geheim gehalten
* Schließlich können durch deren Kenntnis die eventuellen Schwachstellen entdeckt werden, so dass sich erst später herausstellt, dass die Verschlüsselung nicht effektiv war
* Ein Beispiel ist [[RC4]], welcher sieben Jahre lang geheim gehalten wurde, bis 1994 der Quellcode anonym veröffentlicht wurde – inzwischen gilt RC4 als massiv unsicher
 
Auf diese Weise führt ''security by obscurity'' zu einem Verlust von [[Sicherheit]], da bei diesem Prinzip die vermeintlichen Sicherheitsmethoden nicht auf ihre Wirksamkeit überprüft und die unwirksamen Methoden nicht frühzeitig als solche verworfen werden können
 
Das sehr weit verbreitete Konzept von [[Passwort|Passwörtern]] ist trotz der offensichtlichen Geheimhaltung ebendieser meist keine ''security through obscurity''
* Das Passwort entspricht dem verwendeten Schlüssel, der sowohl bei ''security through obscurity'' als auch bei dem Kerckhoffs’schen Prinzip geheim gehalten werden muss, um Unbefugten Zugang bzw. Zugriff zu verwehren
* Unabhängig davon ist die Methode zur Überprüfung der Eingabe und dem Abgleich des richtigen Passworts
* Diese sollte nach dem Kerckhoffs’schen Prinzip offengelegt werden bzw. wäre eine Geheimhaltung des Prinzips als ''security through obscurity'' einzustufen


== Beispiele ==
== Beispiele ==
{| class="wikitable options"
{| class="wikitable options big"
|-
|-
! Beispiel !! Beschreibung
! Beispiel !! Beschreibung
|-
|-
| [[Ping]] „ignorieren“ || Einige Hosts sind so konfiguriert, dass sie kein Gesuch um ein ''Echo'' erfüllen
| [[#Ping ignorieren|Ping ignorieren]] ||  
* Unbeachtet bleibt dabei, dass das [[Internet Control Message Protocol]] Rückmeldungen des [[Gateway (Informatik)|Gateways]] vorsieht, wenn der hinter dem Gateway befindliche Host nicht erreichbar ist
* Bleibt eine solche Rückmeldung aus, kann man daraus auf die Erreichbarkeit des Hosts schließen
|-
|-
| [[Portscan]]s „ignorieren“ ||  Konfiguration einer [[Firewall]], so dass Anfragen auf [[Port (Netzwerkadresse)|Ports]] still verworfen (''DROP'') statt ablehnend beantwortet (''REJECT'') werden
| [[#Portscan ignorieren|Portscan ignorieren]] ||  
* Dies hat allerdings den Nebeneffekt, dass auf sendender Seite [[Timeout (Netzwerktechnik)|Timeouts]] auftreten, die z. B
* automatisierte [[Brute-Force-Methode|Brute-Force]]-Angriffe über Netzwerke sehr stark verlangsamen oder gar unmöglich machen sollen
|-
|-
| Netzwerkdienste verstecken ||  Dienste wie die [[Secure Shell]] oder [[MySQL]] nicht auf ihren [[Liste der Portnummern|standardisierten Ports]], sondern auf anderen Ports laufen lassen
| [[#Netzwerkdienste verstecken|Netzwerkdienste verstecken]] ||
* Bei einem automatisierten Angriff mit der Frequenz von 50 Millisekunden auf dem Niveau einer [[Paketumlaufzeit]] im Internet dauert das Ausprobieren aller 65.535 Ports knapp eine Stunde. Übliche Portscanner wie [[Nmap]] unterstützen meist einen parallelen Angriff ([[Multithreading]]) auf die einzelnen Ports, dadurch lässt sich der Zeitaufwand ohne weiteres auf unter 5 Minuten verkürzen
|-
|-
| Ausgabe von Fehlinformationen ||  Die auf eingehende Verbindungen folgende reguläre Antwort ändern, beispielsweise Namen oder Versionsnummern der Programme, um Angreifern eine andere Software vorzugaukeln, die uninteressant ist
| [[#Ausgabe von Fehlinformationen|Ausgabe von Fehlinformationen]] ||
* Dieses Verfahren verwenden auch [[Honeypot]]s
|-
|-
| Closed-Source-Software || Wie sich [[Open Source]] und [[Closed Source]] unter dem Aspekt der Sicherheit verhalten, wird teilweise kontrovers diskutiert
| [[#Closed-Source-Software|Closed-Source-Software]] ||
|}
 
=== Ping ignorieren ===
Einige Hosts sind so konfiguriert, dass sie kein Gesuch um ein ''Echo'' erfüllen
* Unbeachtet bleibt dabei, dass das [[Internet Control Message Protocol]] Rückmeldungen des [[Gateway (Informatik)|Gateways]] vorsieht, wenn der hinter dem Gateway befindliche Host nicht erreichbar ist
* Bleibt eine solche Rückmeldung aus, kann man daraus auf die Erreichbarkeit des Hosts schließen
 
=== Portscan ignorieren ===
Konfiguration einer [[Firewall]], so dass Anfragen auf [[Port (Netzwerkadresse)|Ports]] still verworfen (''DROP'') statt ablehnend beantwortet (''REJECT'') werden
* Dies hat den Nebeneffekt, dass auf sendender Seite [[Timeout (Netzwerktechnik)|Timeouts]] auftreten, die z. B. automatisierte [[Brute-Force-Methode|Brute-Force]]-Angriffe über Netzwerke sehr stark verlangsamen oder gar unmöglich machen sollen
 
==== Netzwerkdienste verstecken ====
Dienste wie die [[Secure Shell]] oder [[MySQL]] nicht auf ihren [[Liste der Portnummern|standardisierten Ports]], sondern auf anderen Ports laufen lassen
* Bei einem automatisierten Angriff mit der Frequenz von 50 Millisekunden auf dem Niveau einer [[Paketumlaufzeit]] im Internet dauert das Ausprobieren aller 65.535 Ports knapp eine Stunde. Übliche Portscanner wie [[Nmap]] unterstützen meist einen parallelen Angriff ([[Multithreading]]) auf die einzelnen Ports, dadurch lässt sich der Zeitaufwand ohne weiteres auf unter 5 Minuten verkürzen
 
=== Ausgabe von Fehlinformationen ===
Die auf eingehende Verbindungen folgende reguläre Antwort ändern, beispielsweise Namen oder Versionsnummern der Programme, um Angreifern eine andere Software vorzugaukeln, die uninteressant ist. Dieses Verfahren verwenden auch [[Honeypot]]s
 
=== Closed-Source-Software ===
Wie sich [[Open Source]] und [[Closed Source]] unter dem Aspekt der Sicherheit verhalten, wird teilweise kontrovers diskutiert
* Betriebssysteme mit öffentlich einsehbarem Quellcode wie [[Berkeley Software Distribution|BSD]], [[OpenSolaris]] oder [[Linux]] profitieren davon, dass der Quelltext von vielen Programmierern durchgesehen werden kann und so auch [[Programmfehler]] gefunden werden
* Betriebssysteme mit öffentlich einsehbarem Quellcode wie [[Berkeley Software Distribution|BSD]], [[OpenSolaris]] oder [[Linux]] profitieren davon, dass der Quelltext von vielen Programmierern durchgesehen werden kann und so auch [[Programmfehler]] gefunden werden
* In diesem Zusammenhang wird oft [[Eric Raymond]] zitiert: {{" |Sprache=en |Text=Given enough eyeballs, all bugs are shallow.}} Wichtig ist der Aspekt des zugänglichen Quellcodes bei allen konkreten Algorithmen der Kryptographie ([[Kerckhoffs’ Prinzip]]) – dies ist selbst unter Microsoft Windows 10 nicht gewährt, weswegen das [[Bundesamt für Sicherheit in der Informationstechnik|BSI]] vom Einsatz in sicherheitskritischen Bereichen abrät
 
|-
In diesem Zusammenhang wird oft [[Eric Raymond]] zitiert: "Given enough eyeballs, all bugs are shallow"
| E-Postbrief ||  In einem Interview mit dem Magazin ''[[CIO (Magazin)|CIO]]'' gab der Projektleiter des [[E-Postbrief]]s, Georg Rau, an: „Grundsätzlich gilt, dass wir hier bei uns keine Sicherheitslücke sehen
 
* Mehr will ich nicht sagen
Wichtig ist der Aspekt des zugänglichen Quellcodes bei allen konkreten Algorithmen der Kryptographie ([[Kerckhoffs’ Prinzip]]) – dies ist selbst unter Microsoft Windows 10 nicht gewährt, weswegen das [[Bundesamt für Sicherheit in der Informationstechnik|BSI]] vom Einsatz in sicherheitskritischen Bereichen abrät
* Denn ein wesentlicher Aspekt unseres Sicherheitskonzeptes ist: Wir reden in der Öffentlichkeit nicht darüber
 
* Das ist Teil des Sicherheitskonzeptes.“
== Gegenkonzept ==
|}
Sicherheit durch weitestgehende Transparenz
* [[Kerckhoffs’ Prinzip]]
* [[Full disclosure]]
 
Ausgehend von der [[Kryptologie]] wird hierbei vorgeschlagen
* so wenig wie möglich geheim zu halten
* um dieses dann umso leichter schützen
* und gegebenenfalls ersetzen zu können
 


<noinclude>
<noinclude>

Aktuelle Version vom 1. November 2024, 14:15 Uhr

Security Through Obscurity - Sicherheit durch Verheimlichung

Beschreibung

Security Through Obscurity ist ein Ansatz, Sicherheit durch Geheimhaltung der Funktionsweise von Systemen zu gewährleisten

  • Security through obscurity
  • Security by obscurity
  • Verwirrung
  • Unklarheit
  • Dunkelheit
Security Through Obscurity wirt NICHT empfohlen

Ungeeignetes Sicherungsprinzip

Nachteile

Solche Systeme sind

  • Intransparent
  • Kundenfeindlich
  • Wenig geeignet, Vertrauen in Sicherheit zu schaffen

Beispiele

Beispiel Beschreibung
Ping ignorieren
Portscan ignorieren
Netzwerkdienste verstecken
Ausgabe von Fehlinformationen
Closed-Source-Software

Ping ignorieren

Einige Hosts sind so konfiguriert, dass sie kein Gesuch um ein Echo erfüllen

  • Unbeachtet bleibt dabei, dass das Internet Control Message Protocol Rückmeldungen des Gateways vorsieht, wenn der hinter dem Gateway befindliche Host nicht erreichbar ist
  • Bleibt eine solche Rückmeldung aus, kann man daraus auf die Erreichbarkeit des Hosts schließen

Portscan ignorieren

Konfiguration einer Firewall, so dass Anfragen auf Ports still verworfen (DROP) statt ablehnend beantwortet (REJECT) werden

  • Dies hat den Nebeneffekt, dass auf sendender Seite Timeouts auftreten, die z. B. automatisierte Brute-Force-Angriffe über Netzwerke sehr stark verlangsamen oder gar unmöglich machen sollen

Netzwerkdienste verstecken

Dienste wie die Secure Shell oder MySQL nicht auf ihren standardisierten Ports, sondern auf anderen Ports laufen lassen

  • Bei einem automatisierten Angriff mit der Frequenz von 50 Millisekunden auf dem Niveau einer Paketumlaufzeit im Internet dauert das Ausprobieren aller 65.535 Ports knapp eine Stunde. Übliche Portscanner wie Nmap unterstützen meist einen parallelen Angriff (Multithreading) auf die einzelnen Ports, dadurch lässt sich der Zeitaufwand ohne weiteres auf unter 5 Minuten verkürzen

Ausgabe von Fehlinformationen

Die auf eingehende Verbindungen folgende reguläre Antwort ändern, beispielsweise Namen oder Versionsnummern der Programme, um Angreifern eine andere Software vorzugaukeln, die uninteressant ist. Dieses Verfahren verwenden auch Honeypots

Closed-Source-Software

Wie sich Open Source und Closed Source unter dem Aspekt der Sicherheit verhalten, wird teilweise kontrovers diskutiert

  • Betriebssysteme mit öffentlich einsehbarem Quellcode wie BSD, OpenSolaris oder Linux profitieren davon, dass der Quelltext von vielen Programmierern durchgesehen werden kann und so auch Programmfehler gefunden werden

In diesem Zusammenhang wird oft Eric Raymond zitiert: "Given enough eyeballs, all bugs are shallow"

Wichtig ist der Aspekt des zugänglichen Quellcodes bei allen konkreten Algorithmen der Kryptographie (Kerckhoffs’ Prinzip) – dies ist selbst unter Microsoft Windows 10 nicht gewährt, weswegen das BSI vom Einsatz in sicherheitskritischen Bereichen abrät

Gegenkonzept

Sicherheit durch weitestgehende Transparenz

Ausgehend von der Kryptologie wird hierbei vorgeschlagen

  • so wenig wie möglich geheim zu halten
  • um dieses dann umso leichter schützen
  • und gegebenenfalls ersetzen zu können



Anhang

Siehe auch

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Security_through_obscurity