Tractatus Logico-Philosophicus Instrumentum Computatorium |
Vorwort | Einführung | | Begriffe | Kontakt |
Letztes Update des Tractatus: 12.04.2018 Darstellung: Liste | Logik | Prosa | Diagramm (474 kb) Details: 6 | 5 | 4 | 3 | 2 | 1 Informale Herleitung zu 5.2.3.1.1.2 (aufheben): Eine Programmcode mit unerwünschten Nebeneffekten gilt als korrupter Programmcode. Es gibt verschiedene Arten korrupten Programmcodes. Im weitesten Sinne lässt sich auch ein Exploit als korrupten Programmcode bezeichnen. Ein Exploit ist eine Anleitung oder eine Software, die das Ausnutzen einer Schwachstelle erleichtert oder automatisiert. q.e.d. 1 Sicherheit ist ein Zustand. 1.1 Er sieht eine wohldefinierte Anzahl an erlaubten Handlungen vor. 1.1.1 Eine Handlung ist eine ausgeführte Tätigkeit. 1.1.2 Eine Handlung kann sowohl aktiv (aktionär) als auch passiv (reaktionär) erfolgen. 1.1.3 Eine aktive (aktionäre) Handlung ist eine freiwillige Aktion ohne vorausgehenden Reiz. 1.1.3.1 Nur Menschen können freiwillige Aktionen durchführen. (Vielleicht noch nicht mal diese.) 1.1.3.2 Provozierte Reaktionen sind hingegen vorzugsweise durch Computer, Maschinen und Roboter gegeben. 1.1.4 Eine passive (reaktionäre) Handlung ist eine provozierte und unausweichliche Reaktion auf einen vorangegangenen Reiz. 1.1.4.1 Der vorangegangene Reiz kann entweder selber eine aktive oder eine passive Handlung gewesen sein. 1.1.4.2 Ein Reiz lässt sich im Computerbereich am ehesten als Eingabe oder Anfrage (z.B. HTTP Request) beschreiben. 1.1.4.3 Ein Reiz, der eine Antwort generiert, die wiederum ein Reiz ist, der die gleiche Antwort generiert, wird als Loop bezeichnet. 1.2 Die produktive Sicherheit eines Systems (im Betrieb) wird in erster Linie an der Unterbindung unerwünschter Handlungen gemessen. 1.2.1 Eine Möglichkeit ist der Spielraum einer Handlung. 1.2.2 Das Ausbleiben jeglicher Möglichkeiten lässt absolute Sicherheit erlangen. 1.2.2.1 Ein System ohne Möglichkeiten erfüllt jedoch keinen Nutzen. 1.2.2.2 Ein produktives System muss mindestens eine Möglichkeit bereitstellen, um einen Nutzen gewähren zu können. 1.2.2.3 Viele Systeme bieten eine Vielzahl an Möglichkeiten. 1.2.2.4 Die Qualität und der Nutzen eines Produkts wird oftmals gar an seinen Möglichkeiten gemessen. 1.2.3 Sind alle unerwünschten Handlungen unterbunden, kann mit grösstmöglicher Wahrscheinlichkeit von einem sicheren Produkt ausgegangen werden. 1.2.3.1 Werden ausschliesslich gewünschte Handlungen und Zugriffe gewährleistet, spricht man vom "need to know" Prinzip. 1.2.3.2 Spätestens das Erlangen einer unerwarteten und unvorhergesehenen Möglichkeit mündet also in reaktionärer (nach Reiz) oder aktionärer (ohne Reiz) Unsicherheit. 1.2.4 Auch eine ursprünglich vorgesehene Möglichkeit kann eine Unsicherheit darstellen. 1.2.4.1 Nur weil eine Möglichkeit vorgesehen ist, heisst es nicht, dass sie sich bei näherer Betrachtung nicht doch als unsicher herausstellt. 1.2.4.2 Die gegebene Unsicherheit einer vorgesehenen Möglichkeit hat sich schon bei ihrer Realisation manifestiert und war stetig präsent (im Hintergrund). 2 Unsicherheit gewährt eine nicht zugelassene Handlung. 2.1 Unsicherheit sowie Sicherheit existieren auf theoretischer (ℑ) und auf praktischer (ℜ) Ebene. 2.1.1 Eine (praktische) Unsicherheit lässt sich stets theoretisch erfassen. 2.1.1.1 Theoretische Unsicherheit erfordert, dass in erster Linie ausserhalb der Praxis eine nicht zugelassene Handlung möglich ist. 2.1.1.2 Praktische Unsicherheit erfordert, dass auch in der Praxis die nicht zugelassene Handlung umgesetzt werden kann. 2.1.1.3 Praktische Unsicherheit lässt sich theoretisch erfassen. Theoretische Unsicherheit manifestiert sich hingegen nicht zwangsweise in der Praxis. 2.1.1.4 Nur die praktische Unsicherheit (theoretisch bewiesen oder praktisch ermittelt) gibt Aufschluss über die produktive Sicherheit des Systems. 2.1.2 Der maximale Aufwand des Erkennens der Sicherheit eines Systems erfordert das Erkennen und Bewerten sämtlicher möglichen Zustände dessen. 2.1.2.1 Der Aufwand einer solchen Erfassung ist immer grösser als Null, da es mindestens immer einen Zustand (die Existenz als solche) gibt. 2.1.2.4 Je komplexer ein System ist, desto mehr Zustände lässt es zu. 2.1.2.5 Je mehr Zustände ein System zulässt, desto aufwendiger wird die Prüfung eben dieses. 2.1.2.6 Das Durchführen einer absoluten Prüfung aller möglicher Zustände ist bei heutigen Computersystemen aufgrund der vielfältigen und umfassenden Ressourcen (CPU, Festplatte, RAM, ...) wohl nie wirtschaftlich rechtfertigbar. 2.2 Eine Gefahr generiert sich dadurch, dass die gegebene Unsicherheit auch ausgenutzt werden wird. Dies wird als Risiko bezeichnet. 2.2.1 Das Ausnutzen einer Unsicherheit kann verschiedene Motive haben. 2.2.1.1 Es wird in der Gegenwart und Zukunft immer jemanden geben, der mit einem entsprechenden Motiv daherkommen wird. 2.2.1.1 In populistischen Diskussionen wird fälschlicherweise gerne angenommen, dass Geldgier das zentrale Motiv der meisten Übergriffe darstellt. 2.2.1.2 Spieltrieb und Neugierde sind wohl die wichtigsten Motive vieler Errungenschaften, auch im Bereich der Computersichersicherheit. 2.2.1.3 Es zeichnet sich der Trend ab, dass die meisten effektiv ausgenutzten Unsicherheiten aus Gründen des Gelds angegangen werden. 2.2.2 Je einfacher ein Handlungsspielraum ist, desto eher werden sich Leute in diesem bewegen wollen. 2.2.2.1 Deshalb werden statistisch und längerfristig auch mehr in diesem agieren. 2.2.2.2 Die Einfachheit einer Umgebung führt zu mehr Akzeptanz. Die Popularität vieler Produkte ist auf ihre Einfachheit zurückzuführen. 2.2.2.3 Mit einem Mehr an Akzeptanz für eine Umgebung wird automatisch ein Mehr an potentiellen Angreifern erschlossen. Wer in einer Umgebung agieren kann, ist ein potentieller Angreifer. 2.2.3 Je wertvoller die erreichbaren Möglichkeiten sind, desto eher werden sich die Leute diesen nähern wollen. 2.2.3.1 Der Wert einer Möglichkeit ist nur bedingt objektiv. 2.2.3.2 Wohl in den meisten Fällen ist der absolute Wert vollumfänglich subjektiv definiert. 2.2.4 Das potentielle Risiko orientiert sich an der Qualität und Quantität der drohenden Gefahr. 2.2.4.1 Die Qualität der Gefahr ist durch ihre Mächtigkeit definiert. Diese ist aus den verfügbaren Ressourcen (Zeit und Wissen) beschaffen. 2.2.4.2 Die Quantität der Gefahr ist durch die Anzahl potentieller Angreifer definiert. 3 Eine unzulässige Handlung ist ein Angriff. 3.1 Ein Angriffsversuch ist die Grundlage eines erfolgreichen Angriffs. 3.1.1 Ein Angriffsversuch erfordert die Möglichkeit mindestens einer Handlung. 3.1.2 Ein Angriffsversuch, der mit ausschliesslich einer Handlung initiiert wird, wird als One-Shot bezeichnet. 3.1.2.1 Ein misslungener One-Shot Angriff sagt lediglich etwas über die Sicherheit bezüglich des spezifischen Angriffsversuchs aus. 3.1.3 Je mehr Angriffsversuche durchgeführt werden können, desto eher lässt sich die Qualität des Angriffs optimieren. 3.1.3.1 Mittels Iteration wird zum perfekten Angriff konvergiert. 3.1.3.2 Es gibt immer mindestens einen perfekten Angriff. 3.1.3.3 Intelligente Systeme versuchen Angriffsversuche frühzeitig zu erkennen und weitere Zugriffe zu unterbinden. 3.2 Ein erfolgreicher Angriff erfordert die Möglichkeit einer erfolgreichen Handlung ausserhalb des vorgesehenen Handlungsspielraums. 3.2.1 Er beweist die praktische Unsicherheit des Systems im gegenwärtigen Zustand. 3.2.2 Ist nach dem Durchspielen aller erdenklichen Angriffsversuche kein erfolgreicher Angriff erreicht, kann das System punktuell (bezüglich der Angriffstechnik und des Angriffszeitpunkts) als sicher eingestuft werden. 3.3 Ein erfolgreicher Angriff kann zu einem späteren Zeitpunkt in gleicher Weise wiederholt werden. In manchen Fällen ist dies aber nicht möglich. 3.3.1 Nur weil sich ein Angriff zu einem späteren Zeitpunkt nicht mehr wiederholen lässt, heisst dies nicht, dass eben diese Unsicherheit nicht bestand, nicht mehr besteht oder nicht mehr bestehen wird. 3.3.1.1 Sicherheit ist und bleibt ein Zustand, der sofort wieder verfallen kann. 3.3.1.2 Sicherheit muss als fortwährenden Prozess verstanden werden. 3.3.2 Eine geringe Änderung im System kann dazu führen, dass ein Angriff nicht mehr erfolgreich sein kann. 3.3.2.1 Zur Erhöhung der Sicherheit müssen Massnahmen ergriffen werden, die den Handlungsspielraum derartig anpassen, dass kein erfolgreicher Angriff mehr erfolgen kann. Ist eine Massnahme erfolgreich, wird sie als Gegenmassnahme (Gegen die Unsicherheit) bezeichnet. 3.3.2.2 Es gibt Situationen, in denen soll oder kann die Sicherheit durch Massnahmen nicht erhöht werden. 4 Unsicherheiten und Angriffe sind unter sich nicht gleichwertig. 4.1 Die Qualität einer Unsicherheit ist von der erforderlichen Effizienz und Eleganz, die für einen erfolgreichen Angriff unabdingbar ist, abhängig. 4.1.1 Die Qualität einer Unsicherheit hat in einem gewissen Rahmen Einfluss auf die Qualität eines Angriffs. 4.1.2 Die Qualität einer Unsicherheit ist umso grösser, je mehr Handlungspielraum sie ungewollt zur Verfügung stellen kann. 4.1.3 Die Einstufung einer Unsicherheit muss objektiv erfolgen. 4.1.3.1 Leider ist das Erstellen eines metrischen Systems in höchstem Mass einer Subjektivität unterworfen. 4.1.3.2 Eine Unsicherheit kann in den Phasen der Risikoanalyse und Risikobewertung nach verschiedenen Gesichtspunkten klassifiziert werden.
4.1.4 Eine Unsicherheit A kann als Grundlage für eine Unsicherheit B dienen. 4.1.4.1 Die Grundlage A kann dabei eine niedrige oder gleichwertige Einstufung wie die weiterführende Unsicherheit B haben. 4.1.4.2 Es ist jedoch nicht möglich, dass eine Grundlage A höher eingestuft wird, weder die weiterführende Unsicherheit B. 4.1.4.3 Ebenso ist es nicht möglich, dass in symmetrischer und zeitgleicher Weise sowohl die Unsicherheit A die Grundlage für Unsicherheit B als auch die Unsicherheit B die Grundlage für Unsicherheit A ist.
4.2 Die Qualität eines Angriffs kann, unabhängig vom charakteristischen Erfolg dessen, unterschiedlich ausfallen. 4.2.1 Ein Angriff gilt als effizient, wenn er mit einem Minimum an Bewegung im auferlegten Handlungsspielraum durchgeführt werden kann. 4.2.2 Ein Angriff gilt als elegant, wenn er den auferlegten Handlungspielraum in unerwarteter und kreativer Weise nutzt. 4.2.2.1 Die Definition von Kreativität ist vom gegebenen Handlungsspielraum abhängig. 4.2.2.2 Je grösser der Handlungsspielraum ist, desto mehr Möglichkeiten gibt es für Komplexität, nicht jedoch automatisch ebenso für Kreativität. 4.2.2.3 Kreativität ist verbrauchbar. Ein erfolgreicher und bekannter Angriff mit einem gewissen Mass an Kreativität verliert mit zunehmender Durchführung eben diese. 4.2.2.4 Ein fortwährend erfolgreich durchführbarer Angriff hat in seiner Rohform keine Kreativität mehr. 4.2.3 Ein Angriff gilt als einfach, wenn für die erfolgreiche Durchführung ein Minimum an Effizienz und Eleganz erforderlich ist. 4.2.3.1 Eine grosse Unsicherheit erfordert lediglich einen kleinen Angriff. 4.2.3.2 Die kleinste Unsicherheit erfordert hingegen den effektivsten Angriff. 4.2.4 Das Messen der Qualität eines Angriffs an der Qualität des Angreifers ist subjektiv und damit minderwertig. 4.2.4.1 Es lassen sich vier unterschiedliche Angreifertypen definieren. 4.2.4.2 Ein kleiner Angriff eines professionellen Angreifers kann nämlich ein grosser Angriff eines unbedarften Skriptkiddies darstellen. 4.2.4.3 Die Vergleichbarkeit der Qualität von Angriffen auf einzelne Unsicherheiten erfordert eine objektive Messung in Relation zur tangierten Unsicherheit als solche. 5 Eine Programmcode mit unerwünschten Nebeneffekten gilt als korrupter Programmcode. 5.1 Ein korrupter Programmcode ist nur dann korrupt, wenn er unerwünscht ist. Jeglicher andere Code ist bis zu dieser Definition entweder legitim oder unnötig. 5.1.1 Programmcode ist dann legitim, wenn er eine Arbeit ausführt, die ausgeführt werden will und soll. 5.1.2 Programmcode ist dann unnötig, wenn er Arbeit ausführt, die nicht ausgeführt werden muss oder müsste. 5.1.2.1 Unnötiger Programmcode ist für die Ineffizienz von Anwendungen und Computersystemen verantwortlich. 5.1.2.2 Ein Computersystem ist umso ineffiizenter, desto mehr unnötiger Programmcode ausgeführt wird. 5.1.2.3 In gewissem Sinne ist also auch eine NOP-Anweisung ineffizient. Es sei denn, sie wird für eine höhere Aufgabe (z.B. Synchronisation von Threads) genutzt. Wie zum Beispiel ein Leerlaufprozess (Idle Task). 5.1.3 Um einen korrupten Programmcode als solchen erkennen zu können, muss man sich seiner Nützlichkeit/Erwünschtheit bewusst werden. 5.2 Es gibt verschiedene Arten korrupten Programmcodes. 5.2.1 Die populärste Form korrupten Programmcodes sind Computerviren. 5.2.1.1 Computerviren waren zu Zeiten des Computer-/Internet-Booms am meisten verbreitet, sind aufgrund dessen am meisten diskutiert und auch von der breiten Öffentlichkeit am ehesten verstanden. 5.2.1.2 Die kleinste Definition eines Computervirus lautet, dass es sich dabei um sich selber reproduzierenden Programmcode handelt. 5.2.1.3 Die Schadensroutine eines Computervirus ist optional und nicht als Kardinaleigenschaft eines solchen anzusehen. 5.2.2 Fast so populär wie Computerviren sind Trojanische Pferde. 5.2.2.1 Trojanische Pferde werden im Volksmund auch als Trojaner bezeichnet. 5.2.2.2 Trojanische Pferd gehören einer gänzlich anderen Familie korrupten Programmcodes an. Es ist nicht selbst um eine Reproduzierung von sich selbst bemüht. 5.2.2.3 Ein Trojanisches Pferd führt im Hintergrund ohne das Wissen oder Einwilligen des Anwenders Operationen durch. 5.2.2.4 Ein Trojanisches Pferd kann aber auch zu rein zerstörerischen Zwecken eingesetzt werden. 5.2.3 Im weitesten Sinne lässt sich auch ein Exploit als korrupten Programmcode bezeichnen. 5.2.3.1 Ein Exploit ist eine Anleitung oder eine Software, die das Ausnutzen einer Schwachstelle erleichtert oder automatisiert. 5.2.3.2 Will ein Anwender einen Exploit nutzen, ist er für ihn selbst nicht als korrupter Programmcode zu verstehen. Jedoch gegenüber dem System, welches damit angegriffen wird. 5.3 Korrupter Programmcode lässt sich unter gewissen Umständen als solchen erkennen. 5.3.2 Viele Antiviren-Lösungen benutzen eine patternbasierte Methode, um typische Zeichen bekannter Schädlinge zu entdecken. 5.3.2.1 Dies setzt voraus, dass der Schädling und seine Struktur bekannt sind, analysiert und in der Pattern-Datenbank vermerkt wurden. 5.3.2.2 Starre Pattern-Mechanismen sehen sich ausser Stand, Varianten von korruptem Programmcode ebenfalls als solchen zu erkennen. 5.3.3 Bei einer heuristischen Analyse wird das Verhalten einer Software auf potentiell schädliche Routinen hin geprüft (z.B. Funktion zum Löschen ganzer Datenträger). 5.3.3.1 Ein heuristisches Verfahren sieht sich in der Lage, die Latenz des patternbasierten Ansatzes wettzumachen, indem sich auch neue und unbekannte Schädlinge aufgrund ihres dubiosen Verhaltens identifizieren lassen. 5.3.3.2 Auch eine heuristische Analyse kann man kompromittieren, indem absichtlich scheinbar legitime Kommandoabfolgen programmiert werden. 5.3.3.3 Da bei einer heuristischen Analyse jeder Funktionsaufruf des Programms geprüft werden muss, hat dies entsprechend negative Auswirkungen auf Ressourcen und Performance des Systems. 5.3.4 Korrupter Programmcode lässt sich entfernen. 5.3.4.1 Um korrupten Programmcode entfernen zu können, muss dieser eindeutig als solcher identifiziert und vom legitimen Programmcode getrennt werden können. 5.3.4.2 Nur weil ein korrupter Programmcode A als solcher identifiziert und entfernt wurde, muss das desinfizierte System nicht zwangsweise komplett gesäubert sein. Ein anderer korrupter Programmcode B könnte übersehen worden sein. 6 Sensitive Daten müssen vor Manipulationen geschützt werden. 6.1 Eine unerwünschte Manipulation ist die unerlaubte Einsicht durch Dritte. Die Daten verlieren dadurch ihre Vertraulichkeit. 6.1.1 Das Mitlesen einer Kommunikation wird umgangssprachlich als Lauschangriff bezeichnet.
6.1.1.1 Als "Grosser Lauschangriff" werden Überwachungen staatlicher Dienste (Strafverfolgungsbehörden und Nachrichtendienste) bezeichnet.
6.1.2 Um eine unerwünschte Einsicht zu verhindern, kann ein abgeschotteter (dedizierter) Kanal genutzt werden. 6.1.2.1 Ein Kanal gilt als abgeschottet, wenn er nicht durch andere Medien benutzt wird oder werden kann. 6.1.2.2 Mit einem VPN (Virtual Private Network) lässt sich auch über geteilte Leitungen (vorwiegend dem Internet) ein abgeschotteter Kanal realisieren. 6.1.3 Ist das Einsetzen eines dedizierten Kanals nicht möglich, muss eine Verschlüsselung ihre Anwendung finden. 6.1.3.1 Daten, die ohne Verschlüsselung übertragen werden, werden als Klartext (Cleartext oder Plaintext) bezeichnet. 6.1.3.2 Daten, die mit einer Verschlüsselung übertragen werden, werden als Geheimtext (Ciphertext) bezeichnet. 6.1.3.3 Eine symmetrische Verschlüsselung benutzt den gleichen Schlüssel K. Für die Verschlüsselung der Nachricht M wird die Funktion EK(M) = C verwendet. Die Entschlüsselung findet sodann mit der Funktion DK(C) = M statt. 6.1.3.4 Eine asymmetrische Verschlüsselung benutzt für die Verschlüsselung und die Entschlüsselung zwei unterschiedliche Schlüssel. 6.1.3.5 Es gibt verschiedene Methoden, wie eine verschlüsselte Kommunikation angegriffen werden kann. Dies wird als Kryptoanalyse (cryptanalysis) bezeichnet. 6.1.3.6 Durch Quantenkryptografie kann ein auf physikalischer Ebene abhörsicherer Kanal erreicht werden.
6.2 Eine weitere unerwünschte Manipulation ist die Veränderung. Die Daten verlieren dadurch ihre Integrität. 6.2.1 Typischerweise werden digitale Signaturen eingesetzt, um die Integrität (Fälschbarkeit) und Authentizität (Herkunft) von Daten verifizieren zu können. 6.2.1.1 Bei einer digitalen Signatur wird der private Schlüssel nicht direkt auf die Nachricht angewendet, sondern auf deren Hash-Wert, der mittels einer Hash-Funktion (wie z. B. SHA-1) aus der Nachricht berechnet wird. 6.2.1.2 Bei deterministischen digitalen Signaturverfahren ist die digitale Signatur durch die Nachricht und den Schlüssel eindeutig festgelegt. 6.2.1.3 Bei probabilistischen digitalen Signaturverfahren gehen Zufallswerte in die Signaturberechnung ein, so dass die digitale Signatur zu einer Nachricht und einem Schlüssel viele verschiedene Werte annehmen kann. 6.2.2 Es gibt auch hier verschiedene Verfahren zur Generierung elektronischer Signaturen. 6.2.2.1 Das mit Abstand und seit Jeher bekannteste Verfahren ist RSA, welches sich die Schwierigkeit der Faktorisierung grosser Primzahlen zunutze macht. 6.2.2.2 Alternativ werden DSA, El-Gamal und Schnorr-Signaturen eingesetzt, die einen diskreten Logarithmus in endlichen Körpern anwenden. 6.2.2.3 ECDSA, ECGDSA oder Nyberg-Rueppel-Signaturen verwenden einen diskreten Logarithmus in elliptischen Kurven. 6.2.3 Das Gewährleisten der Integrität kann ebenso durch eine Verschlüsselung realisiert werden. 6.2.3.1 Um die Daten bewusst zu verändern, müsste die Verschlüsselung dem Angreifer bekannt und durch ihn reproduzierbar sein. 6.3 Eine andere unerwünschte Manipulation ist das Verzögern oder Unterbinden des Datenflusses. Die Daten verlieren dadurch ihre Verfügbarkeit. 6.3.1 Eine destruktive Attacke auf einen Dienst wird als Denial of Service (DoS) bezeichnet. 6.3.1.1 Werden verschiedene Systeme eingespannt, um eine Denial of Service-Attacke durchzusetzen, spricht man von einer Distributed Denial of Service Attacke (DDoS). 6.3.2 Die einfachste und direkteste Methode einen Dienst unbrauchbar zu machen, ist diesen zu überlasten. 6.3.2.1 Das Überlasten eines Dienstes mittels einer Vielzahl an (grossen) Anfragen wird als Flooding bezeichnet.
6.3.2.2 Das erfolgreiche Überlasten eines Dienstes erfordert, dass man mit den eigenen verfügbaren Ressourcen die bereitgestellten Ressourcen des Ziels aufbrauchen kann. 6.3.2.3 Da Überlastungsangriffe keine intelligente Interaktion mit einem Zielsystem erfordern, werden sie als besonders einfach und primitiv angesehen. (Marc Ruef, Die Kunst des Penetration Testing, 2007)
6.3.3 Schlecht umgesetzte oder gewartete Dienste lassen sich unter Umständen als Drittperson einfachso deaktivieren. 6.3.3.1 Im Rahmen von TCP/IP kann beispielsweise ein ARP-Segment mit falscher Adresse für ein Drittsystem verschickt werden, um die Netzwerkkommunikation abrupt abzubrechen. Dies funktioniert jedoch naturbedingt nur in lokalen Netzen (LAN). 6.3.3.2 ICMP-, TCP- und UDP-Kommunikationen lassen sich ebenfalls mit diversen ICMP-Fehlermeldungen (z.B. ICMP port unreachable) beenden. 6.3.3.3 Wird der Zugriff auf administrative Bereiche möglich (z.B. da eine Authentisierung fehlt), können die Deaktivierungen ganz normal umgesetzt werden. |
© 2007-2024 by Marc Ruef |