• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/99

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

99 Cards in this Set

  • Front
  • Back

Was regelt das BGB?

- die allgemeinen Rechtsbeziehungen zwischen Privatpersonen


- Es legt fest, „welche Freiheiten, Rechte, Pflichten und Risiken die Menschen im Verhältnis zueinander haben“

Was ist ein Vertrag?

- grundsätzliche Form von Vereinbarungen.


- Aus ihm ergeben sich Ansprüche der Vertragsparteien

Warum unterliegen E-Commerce-Angebote dem BGB?

- Auch wirtschaftliche Aspekte werden im BGB behandelt.


- Es regelt (zumindest in allgemeiner Form), das Recht der Schuldverhältnisse, die beim Kauf
Anwendung finden.


- E-Commerce Angebote im Internet, bei denen Waren oder Dienstleistungen verkauft werden sollen, unterliegen also auch den allgemeinen
Vorschriften des BGB

Welche Probleme gibt es Problem bei Verträgen im Internet?

- Vertrag kommt durch Willenserklärung zustande


- Was ist eine Willenserklärung - ein Mausklick?


- Weiterhin ist im BGB festgelegt, daß für bestimmte Vertragsarten bestimmte Formvorschriften eingehalten werden müssen. Ein Beispiel hierfür ist die Schriftform mit eigenhändiger Unterschrift

Welche Gesetze versuchen Formvorschriften in die elektronische Welt zu übertragen?

- Signaturgesetzt


- Signaturverordnung

Was wird im Strafgesetzbuch geregelt?

welche Handlungen kriminell sind und mit welchen Strafen diese Handlungen bedroht sind

Was ist im Strafgesetzbuch bzgl. Internet geregelt?

- Ausspähen von Daten


- Computerbetrug


- Erschleichen von Leistungen


- Datenveränderungen


- Computersabotage

Was ist im Bundesdatenschutzgesetz geregelt?

- Datenschutz


- Abgeleitet vom Recht auf informationelle Selbstbestimmung enthält es allgemeine Vorgaben zum Datenschutz, beispielsweise die Gebote der Datenvermeidung und der Datensparsamkeit

Was ist Datensparsamkeit?

nur die wirklich erforderlichen Daten sollen erfaßt und bearbeitet werden

Was müssen Urheber tun, damit sie den Schutz durch das Urhebergesetz genießen?

Die Urheber genießen den Schutz durch
das Urheberrecht automatisch, also auch ohne eine Registrierung, Anmeldung oder spezielle Kennzeichnung am Werk

Welche Nutzungsarten erfordern die Erlaubnis des Urhebers?

• Vervielfältigung (Kopien erstellen)
• Verbreitung (Senden oder Übertragen)
• Verarbeitung (Umgestaltung oder Erweiterung)

Welche Vorschriften, die früher Teil des Fernabsatzgesetzes waren, finden sich jetzt im BGB?

- Informationsrecht


- Widerrufs- und Rückgaberecht

Zwischen welchen Arten von Internet Service Providern kann man unterscheiden?

- Inhaltsanbieter


- Zugangsanbieter


- Dienstanbieter

Was ist ein Zugangsanbieter?

- Ein Zugangsanbieter ermöglicht seinen Kunden den technischen Zugriff auf das Internet und die Internet-Dienste.


- Dieser Zugang ist häufig zeitlich begrenzt und
dient im wesentlichen dem Abrufen von Informationen.


- In geringerem Umfang werden auch Informationen gesendet, beispielsweise in Form von Emails

Was ist ein Inhaltsanbieter?

- bietet zum einen zusätzlich eigene Inhalte, beispielsweise aktuelle Nachrichten, Hintergrundinformationen, usw. an.


- Zum zweiten bietet er seinen Kunden oft auch die Möglichkeit, selbst als dauerhafter Anbieter
von Inhalten im Internet aufzutreten.

Was ist ein Dienstanbieter?

bieten Dienste wie Mietsoftware, Hosting von Rechnern in einem Rechenzentrum oder Wartung von Systemen an

Was regelt das Telekommunikationsgesetz?

- Schutz der Kunden vor der Macht des Anbieters


- stellt sicher, dass


• die (Zugangs-)Dienste flächendeckend, angemessen und ausreichend zur
Verfügung stehen,
• Funkfrequenzen koordiniert genutzt werden und
• fairer Wettbewerb zwischen den Anbietern möglich ist.

Was ist in der Telekommunikations-Überwachungsverordnung geregelt?

- welche Möglichkeiten den Überwachungsbehörden wie Polizei und Nachrichtendiensten durch die Provider eingeräumt werden müssen.


- In begründeten Fällen sollen nicht nur Telefongespräche, sondern beispielsweise auch Email überwacht werden können.


- In der Verordnung geht es im wesentlichen um den technischen Zugang, der durch die Provider bereit gestellt werden muß.

Was ist in der Telekommunikations-Datenschutz- Telekommunikations-Datenschutz-Verordnung
geregelt?

- Dort geht es um die personenbezogenen
Daten der Kunden und wie mit ihnen verfahren werden darf.


- Dazu gehören die Verbindungsdaten.


- Sie sind zur Erstellung und Überprüfung der Rechnung erforderlich.


- Damit aber keine Benutzerprofile erstellt werden können, dürfen sie nicht beliebig lange gespeichert werden, sondern müssen gelöscht werden

Was ist das Herkunftslandprinzip?

- Demnach gelten für den Anbieter von Diensten die rechtlichen Bestimmungen des Landes, in dem der Anbieter seinen Sitz hat oder
anders ausgedrückt „am Ort der Niederlassung“.


- Weiterhin ist festgelegt, wo im Falle von mehreren Firmen-Standorten der Sitz sein kann.


- Dieser Ort ist aber auf jeden Fall unabhängig davon, wo die Computer stehen, auf denen die
Dienste angeboten werden.


- das Herkunftslandprinzip erfordert auch, dass die einzelnen Länder die Gesetze der anderen Länder anerkennen.


- Vom Herkunftslandprinzip gibt es aber auch Ausnahmen: „Nationale Grundsätze des Verbraucherschutzes bleiben erhalten“

Was muss eine Person nach dem Telemediengesetz bzgl. seiner Daten wissen?

zu welchem Zweck,
• welche persönlichen Daten,
• von wem
verarbeitet oder gespeichert werden

Was sind die typischen Phasen eines Softwareprojekts?

1. Analyse


2. Design
3. Implementierung
4. Test
5. Betrieb

Womit beginnt ein Projekt normalerweise?

mit der Analyse und Spezifikation der funktionalen Anforderungen (engl. requirements analysis)

Was sind die funktionalen Anforderungen?

- Darin wird festgehalten, was das System am Ende für den Benutzer leisten soll.


- Außerdem wird an dieser Stelle die Umgebung beschrieben, in der das System am Ende arbeiten soll.


- Deshalb kommen also möglicherweise auch schon technische Details hinzu.


- Die funktionalen Anforderungen beschreiben aber nicht, wie das System diese Leistungen erbringen soll.


- Die Leistungen können informell oder in einer
formalen Sprache beschrieben werden


- enthält neben den Leistungen (Funktionen) aber auch eine Beschreibung der Daten, mit denen das System später arbeiten soll.


- Da diese Phase unabhängig von einer später zu wählenden Implementierung sein soll, ist an dieser Stelle noch nicht von konkreten Datenstrukturen die Rede, sondern eher von Informationsstrukturen.


- Sie stammen aus der Anwendersicht und enthalten neben den Informationen (Daten) auch eine Beschreibung der Beziehungen zwischen den Daten

Was erfolgt bei dem Entwurf sicherer Systeme zeitgleich mit der Anforderungsanalyse?

eine Bedrohungs- und Risikoanalyse.

Was ist die Bedrohungsanalyse?

- man untersucht, welche Bereiche gefährdet sind


- Zusätzlich werden die Ursachen der Gefährdungen analysiert.


- Die Ursachen können
• benutzerbedingter,
• technischer oder
• organisatorischer
Art sein

Wie geht man bei der Erstellung der Bedrohungsanalyse vor?

- Häufig beginnt man damit, bereits bekannte Bedrohungen vergleichbarer Systeme zu sammeln.


- Diese erweitert man um möglicherweise neue Bedrohungen.


- Hierzu kann man einerseits die Warnungen vor bekannten Bedrohungen durchsehen und andererseits kreativ über neue Bedrohungsmöglichkeiten nachdenken.


- Aus den konkreten Bedrohungen werden dann durch „Herausfaktorisieren“ der gemeinsamen Eigenschaften allgemeine Gefährdungsbereiche abgeleitet.


- Diese Entwurfsart (vom Konkreten zum Allgemeinen) nennt man auch Generalisierung.

Wie können die Gefährdungsbereiche nach Eckert klassifiziert werden?

- Externe Angriffe: Hier benutzt der Angreifer das bedrohte System nicht direkt. Statt dessen wirkt er von außen auf es ein.


- Interne Angriffe: Der Angreifer benutzt das System direkt, aber in einer nicht beabsichtigten Art und Weise.


- Denial of Service: Dieser Bereich betrifft die nicht erlaubte Benutzung von Ressourcen, so dass diese für die erlaubte Nutzung blockiert sind.
- Abstreiten: Hier geht es darum, wer Ressourcen benutzt hat und für die daraus resultierenden Folgen verantwortlich ist.
- Rechtemissbrauch: Bedrohungen dieser Kategorie treten auf, wenn ein erlaubter Benutzer seine zugeordneten Rechte missbraucht.

Nach welchen Eigenschaften könnte man Bedrohungen noch klassifizieren?

• Einteilung nach den Schutzzielen die bedroht sind (Vertraulichkeit, Integrität, Verfügbarkeit und Authentizität)
• Einteilung nach dem Auslöser der Bedrohung (Programmierer, interner Nutzer, externer Nutzer, technische Einrichtungen)


• Einteilung nach der Ursache der Bedrohung (Benutzer, Technisch, Organisatorisch)

Was sind abuse cases?

- Während man bei use cases beschreibt, was Benutzer normalerweise mit dem System machen können und wie das System jeweils reagiert, wird in den abuse cases dokumentiert, wie das System bei unerwünschter, „nicht normaler“ Benutzung reagieren soll.


- Hier wird auch die Motivation eines Angreifers mit bedacht

Was ist die Risikoanalyse?

die Bedrohungen werden anhand der Kriterien Eintrittswahrscheinlichkeit und Schadensumfang bewertet und beispielsweise in eine probability impact Matrix eingetragen

In welche Kategorien kann man Schäden einteilen?

- Gesetzliche oder regulatorische Verletzungen: Hier entsteht der Schaden, wenn diese Vorgaben verletzt werden. Das kann dazu führen, dass man verklagt wird oder seinen Geschäftsbetrieb gezwungenermaßen auf-
geben muß.


- Finanzielle Schäden entstehen, wenn man zusätzliche Aufwände durch Schadensbehebung hat, wenn einem Gewinne entgehen aber auch durch den Verlust von wertvollem know how.
- Vertragsaspekte beispielsweise durch Verstoß gegen service level agreements (SLA) oder Schadenersatzforderungen anderer

Wann ist eine Bedrohung ist ein großes Risiko?

wenn entweder die Eintrittswahrscheinlichkeit oder der Schadensumfang groß ist

Was bedeutet Risikio zu reduzieren?

die Eintrittswahrscheinlichkeit zu senken oder den Schadensumfang zu reduzieren

Warum ist Quantifizierung des Schadens wichtig?

- Alle Aktionen zur Erhöhung der Sicherheit sind mit Kosten verbunden.


- Entscheider in Firmen denken im wesentlichen in Aufwänden und Erträgen.


- Sie können Risiken der Art „ein Ausfall des Buchungssystems für einen Tag kostet uns XXX Euro“ besser einschätzen und verarbeiten als Aussagen „das System könnte ausfallen
und es dauert einen Tag bis man es wieder korrekt laufen hat“

Wie geht man beim Design vor?

erst Grobentwurf, der später verfeinert wird

Was wird im Grobentwurf festgehalten?

aus welchen Komponenten das System bestehen soll, was sie machen und wie sie miteinander interagieren (Architektur)

Welche Sicherheitsanforderungen sollen durch die Architektur erfüllbar sein?

- Identifikation und Authentisierung


- Rechtevergabe


- Protokollierung

Was bedeutet Identifikation und Authentisierung?

- Alle Benutzer des Systems, seien sie
Menschen oder andere Programme, die die Dienste des Systems benutzen wollen, müssen eindeutig identifizierbar sein.


- Eine Architektur braucht also eine Form von Benutzer-Kennungen.


- Zusätzlich muß man sich überlegen, wie ein Benutzer beweisen soll, daß er es tatsächlich ist


- An dieser Stelle muß auch entschieden werden, wie oft eine Authentisierung vorgenommen werden soll

Welche Möglichkeiten gibt es, wann eine Authentisierung vorgenommen werden soll?

einmal am Anfang einer Sitzung oder jedesmal vor einer sicherheitskritischen Aktion.

Was bedeutet Rechtevergabe?

- Die einzelnen Benutzer des Systems müssen mit konkreten Rechten ausgestattet werden.


- Sie ermöglichen die beabsichtigte Benut-
zung und verbieten andere Nutzungen.


- Die Architektur muss also die Vergabe von solchen Rechten unterstützen und im Betrieb auch die Einhaltung der Rechte prüfen

Was ist Protokollierung?

- Im laufenden Betrieb muss man später die wichtigen Vorgänge im System nachvollziehen können.


- Dadurch kann man beweisen, welche Aktionen stattgefunden haben und von wem sie ausgelöst wurden.


- Weiterhin helfen Protokolle bei der Analyse von Problemen unterschiedlichster Art.

Was unterscheidet die Risikoanalyse in den Anforderungen von der in dem Architekturentwurf?

geht nicht mehr von den Zielen eines Angreifers aus, sondern von und bekannten (Sicherheits-)Problemen

Welche Bedrohungskategorien gibt es zum Beispiel?

• Spoofing-Bedrohungen aller Art (Angriff auf Authentizität)
• Unbefugte Manipulation von Daten (Angriff auf Integrität)
• Preisgabe sensibler Daten (Angriff auf Vertraulichkeit)
• Denial of Service (Angriff auf die Verfügbarkeit)
• Unbefugte Rechteerlangung (elevation of privilege)

Welche Entwurfstechniken gibt es bei der Entwicklung sicherer Architekturen?

- Wrapper


- Interposition


- Compartmentalization

Was sind Wrapper?

- Diese Idee basiert darauf, daß man einem Programm oder einem System eine neue Hülle gibt.


- Die Aufrufer / Benutzer treten nicht mehr in direkten Kontakt mit dem System, sondern mit der neuen Hülle, dem sog. Wrapper.


- Wrapper hat die Aufgabe, die Benutzereingaben zu prüfen und möglicherweise gefährliche Eingaben zu erkennen und entsprechend darauf zu
reagieren.


-Weiterhin stellt der Wrapper dem Programm oder System eine eigene Ablaufumgebung zur Verfügung.


- Bei UNIX-Umgebungen kann das beispielsweise durch die Definition passender Umgebungsvariablen geschehen.


- Anschließend ruft der Wrapper das eigentliche Programm oder System auf


- Benennt man das eigentliche Programm oder System um und gibt dem Wrapper den ursprünglichen Namen, dann ist diese Änderung für den Benutzer transparent.


- Man kann den Wrapper nun zusätzlich dafür benutzen, jeden Startversuch zu protokollieren oder weitere Anweisungen vor oder nach dem Ablauf des eigentlichen Programmes oder Systems auszuführen.

Was ist Interposition?

- Diese Technik schaltet ein „Zwischenstück“ zwischen zwei Systeme, bzw. zwischen den Benutzer und ein System.


- Falls man die beiden Systeme (oder eines der beiden) nicht unter Kontrolle hat, dann
kann das Zwischenstück wenigstens die Kommunikation zwischen den Systemen kontrollieren.


- Bei der Interposition filtert das Zwischenstück die Inhalte der Kommunikation und gefährliche Inhalte werden entweder blockiert oder so verändert, dass sie ungefährlich sind

Was ist Compartmentalization?

- Für den Fall, dass Sicherheitsprobleme auftreten, möchte man wenigstens den Schaden so gering wie möglich halten.


- Das kann man dadurch erreichen, dass verschiedene Teile des Systems oder
Programms von einander abgeschottet werden.


- Die einzelnen Bereiche (compartments) lassen sich dann einfacher kontrollieren.


- Außerdem kann man bei der Vergabe von Rechten genauer eingrenzen, welche Bestandteile eines Systems welche Rechte bekommen sollen

Wie kann Compartmentalization in Unix erreicht werden?

- durch das Kommando chroot


- Dieses Kommando kann eine Shell oder ein Programm in einer speziellen Umgebung ablaufen lassen.


- Die Umgebung ist dadurch gekennzeichnet, dass die Wurzel des Dateisystems für diese Umgebung nicht mit der Wurzel des
Dateisystems des Rechners übereinstimmen muß.


- In der eingeschränkten Umgebung sind nur Dateien aus dieser Umgebung sichtbar.

Was ist die Drei-Schichten-Architektur in E-Commerce-Anwendungen?

- Der Client benutzt einen Web Browser, um auf die Inhalte und Dienste zu-

zugreifen.


- Dabei kommt er zunächst mit dem Presentation Layer in Kontakt.


- Er ist dafür zuständig, die Benutzerschnittstele darzustellen.


- Im Internet ...

- Der Client benutzt einen Web Browser, um auf die Inhalte und Dienste zu-
zugreifen.


- Dabei kommt er zunächst mit dem Presentation Layer in Kontakt.


- Er ist dafür zuständig, die Benutzerschnittstele darzustellen.


- Im Internet liefert das System also HTML-Seiten an den Client.


- Bei Transaktionen finden in der Regel mehrere Interaktionsschritte statt.


- Der Application Layer (auch Business Logic
Layer genannt) steuert diese Schritte.


- Dort werden die Funktionen aus den
funktionalen Anforderungen also umgesetzt.


- Die Daten, die hierzu erforderlich
sind, werden in einer eigenen Schicht, dem Data Layer verwaltet.


- Ein Datenbank Management System übernimmt diese Aufgabe.

Was ist die Aufgabe der Firewall zwischen Webserver und Internet?

- arbeitet als Stellvertreter und vertritt zum einen den Web-Server gegenüber allen Clients aus dem Internet und zum anderen alle Clients aus dem Internet gegenüber dem Web-Server.


- Die Clients kommunizieren also nur mit
dem Proxy und nur der Proxy kommuniziert mit dem Web-Server

Welche Konsequenzen hat die Architektur mit einem Proxy zwischen Internet und Webserver?

1. Der erste Paketfilter vor Proxy läßt nur Pakete von Adressen außerhalb der DMZ und außerhalb des privaten Netzes des Anbieters an Port 80 des
Proxy durch bzw. Port 443 bei SSL


2. Der zweite Paketfilter läßt nur Pakete vom Proxy an Port 80 des Web-Servers passieren. Da man sich hier bereits innerhalb der „priva-
ten“ Infrastruktur des Anbieters befindet, kann man die Kommunikation unverschlüsselt fortsetzen


3. Die IP-Adresse des Proxies muß sich hinter dem offiziellen DNS-Namen des Web-Servers des Anbieters verbergen


4. Soll der Client den Server authentisieren, so muß das Zertifikat auf den Proxy ausgestellt sein und auch dort installiert werden


5. Da jeder HTTP-Request auf diese Art und Weise behandelt wird, bekommt man möglicherweise ein Performance Problem. Die Arbeit des Proxies und das Weiterleiten der Anfragen an den eigentlichen Web-Server kosten Zeit und vergrößern die Wartezeit des Clients. Schnelle Netzverbindungen und leistungsfähige Paketfilter sind daher unerläßlich.

Wie kann die Kommunikation zwischen Web-Server und Application-Server erfolgen?

direkt durch das lokale Netz. Erst beim Zugriff auf Daten, die möglicherweise sensibel sind und geschützt werden müssen, ist ein weiterer Paketfilter zu passieren.

Wie wird der Datenbankserver geschützt?

- Paketfilter lässt nur Pakete vom Application-Server an den Datenbank-Port des Datenbank-Servers durch.


- Damit wird verhindert, dass ein Angreifer beispielsweise vom Web-Server aus eine telnet Verbindung zum Datenbank-Server aufbaut und dort Manipulationen vornimmt.


- Man kann damit aber nicht verhindern, dass ein Angreifer vom Application-Server aus SQL-Anfragen an den Datenbank-Server sendet.


- Deshalb sollten
Programme, die so etwas ermöglichen auf dem Application-Server gar nicht erst installiert sein.
- Weiterhin kann man den Datenbanken-Server durch einen Wrapper „umschließen“, der Angriffe durch SQL injection erkennen und verhindern soll.


- Nur „ungefährliche“ SQL-Anweisungen werden an den eigentlichen Datenbanken-Server weiter geleitet.


- Der Rest wird protokolliert und ein Administrator wird alarmiert.

Was ist das Backend-System und wie wird es geschützt?

- Werden auf dem Application-Server echte Transaktionen ausgelöst, so müssen diese auf den Backend Systemen ausgeführt werden


- Ein Paketfilter überwacht diese Kommunikation und läßt nur Transaktionen vom Application-Server zum Backend durch


- Weiterhin kann dieser Filter auch die Kommunikation zwischen den Systemen der drei Schichten und einem Administrator-Arbeitsplatz regeln

Wie sieht die detailliertere Architektur einer E-Commerce Anwendung aus?

Welche weiteren Sicherheitsaspekte müssen bei der Architektur einer E-Commerce-Anwendung beachtet werden?

- Einrichtung von Benutzern und Gruppen (z.B. mittels LDAP)


- Instrusion Detection System, das Angriffe und Konfigurationsfehler besonders der Paketfilter erkennen soll


- Ständige Überwachung der Status der Paketfilter


- Jedes System sollte die wichtigen Ereignisse protokollieren


- Zeitserver, damit die Uhren der Systeme synrchon laufen, was für die Protokollierung wichtig ist.


- weitere Server, um Cluster in den einzelnen Schichten aufzubauen

Wie sieht die zeitliche Verzahnung der verschiedenen Versionen eines Systems aus?

- eine erste Version des Systems wird entworfen und gebaut. Sie enthält die Grundfunktionen.


- Weitere Funktionen werden dann in die
nächste Version eingebaut.


- Die Entwicklung der nächsten Version findet zeitlich versetzt zur Entwicklung der ersten Version statt.


- Nachdem die Anforderungen an die erste Version spezifiziert wurden, beginnt das Design.


- Parallel dazu können die Anforderungen an die nächste Version spezifiziert werden.


- Wenn die erste Version dann in die Implementierungsphase kommt, kann das Design der zweiten Version begonnen werden, und die dritte Version kommt in die Anforderungsanalyse

Mit welchen Programmen kann man die Anforderungsanalyse und das Design vornehmen?

• Betriebssystem mit graphischer Oberfläche
• Kommunikationssoftware für Email und ähnliches
• Textverarbeitung, Tabellenkalkulation, usw.
• evtl. spezielle Anforderungsanalyse-Programme
• evtl. spezielle Design-Programme.

Welche Umgebungen bei der Entwicklung werden benötigt?

- Entwicklungsumgebung


- Produktionsumgebung


- Testumgebung

Was ist die Produktionsumgebung?

- Der Betrieb läuft in der Produktionsumgebung auch Betriebsumgebung genannt.


- Sie ist an das Internet und an die Produktionsbackendsysteme angeschlossen.


- Möglicherweise ist die Umgebung ausfallsicher in Form eines Hardware-Clusters ausgelegt.


- Sie besteht im wesentlichen aus den einzelnen Servern der drei Schichten Architektur

Aus welcher Software besteht die Produktionsumgebung?

• Server Betriebssystem
• Web-Server Software
• Application-Server Software
• Datenbank-Server Software
• Monitoring Software

Warum gibt es eine eigene Testumgebung?

Damit der laufende Betrieb nicht durch die Tests beeinträchtigt wird

Was ist die Testumgebung?

- Sie sollte der Produktionsumgebung möglichst ähnlich sein (identische Hardware, identisches Betriebssystem, usw.).


- Sie ist allerdings nicht an das Internet angeschlossen und kann auch nur auf Test-Backendsysteme zugreifen.


- Ansonsten enthält sie dieselben Komponenten wie die Produktionsumgebung

Warum gibt es die Entwicklungsumgebung?

Damit die Entwickler weder direkt in den laufenden Betrieb noch die Aussagekraft der Tests in der Testumgebung beeinträchtigen können

Welche Software enthält die Entwicklungsumgebung?

• Server Betriebssystem mit graphischer Benutzeroberfläche
• Kommunikationssoftware
• Textverarbeitung, Tabellenkalkulation, usw.
• Entwicklungsumgebungen (Compiler, Editor, Versionskontrolle, Linker, Debugger, usw.)
• Web-Server Software
• Application-Server Software
• Datenbank Entwicklungs Software

Warum wird aus Gründen der Sicherheit eine Testumgebung benötigt?

- Würde ein Rechner bei einem Test in der Produktionsumgebung abstürzen, wäre dann das Schutzziel der Verfügbarkeit gefährdet


- Eine spezielle Testumgebung ist erforderlich, damit das System unabhängig vom Betrieb, aber in einer realistischen Umgebung getestet werden kann


- Die Entwicklungsumgebung ist meistens deutlich anders als die Produktionsumgebung und ein erfolgreicher Test in der Entwicklungsumgebung sagt noch nichts
über das Verhalten des Systems in der Produktionsumgebung aus.


- Würde man also Tests nur in der Entwicklungsumgebung durchführen und das System anschließend in der Produktionsumgebung einsetzen, läuft man Gefahr, daß die Verfügbarkeit des Systems nicht gewährleistet ist

Warum wird aus Gründen der Sicherheit eine Entwicklungsumgebung benötigt?

- Entwickler brauchen meistens sehr weitgehende Rechte auf dem System brauchen.


- Da auf Produktionssystemen sensible Daten lagern, darf dort kein Entwickler mit seinen weitgehenden Rechten arbeiten.


- Er könnte sonst vertrauliche Daten ausspähen oder manipulieren.


- Die Schutzziele Vertraulichkeit und Integrität wären gefährdet

Welche Maßnahmen kann ein Programmierer ergreifen, um leichter Fehler zu finden?

- Compilerwarnungen einschalten


- Programme so schreiben, dass sie sich selbst überwachen und kontrollieren

Wie kann ein Programm sich selbst überwachen und kontrollieren?

- Alle impliziten Annahmen explizit formulieren und vom Compiler kontrollieren lassen


- Also Tests einfügen, die Werte überprüfen

Wann kann man assert einsetzen?

- Überprüfung von Parametern in Methoden, wenn es sich nicht um falsche Benutzereingaben u.ä. handelt, sondern die Ursache Programmierfehler sind


- assert nicht zur Parameterüberprüfung bei öffentlichen Methoden verwenden, die auch von anderen Programmierern aufgerufen werden können


- prüfen von Invarianten z.B. in Schleifen


- Überprüfung von Nachbedingungen


- Testen von Änderungen oder Verbesserungen in eniem Programm


- Konsistenzprüfung bei Klassen

Was sind die Vorteile von assert?

- Ein assert an der richtigen Stelle kann mehrere
Stunden Arbeit einsparen


- asserts bleiben im Programm. r-
weitert später ein neuer Programmierer das Programm und verletzt eine der impliziten Bedingungen, dann wird dieser Fehler sehr schnell auffallen


- man kann bei der Fehlersuche bestimmte Ursachen ausschließen, da sie von asserts automatisch angezeigt werden würden


Was ist der Vorteil bei OpenSource-Programmen bzgl. der Sicherheit?

- Untersuchung der Quelltexte auf Schwachstellen ist sinnvoll, aber aufwendig


- Der Open Source Ansatz ermöglicht durch die Veröffentlichung aller Open Source Quelltexte jedermann das Programm zu lesen und ggf. auch zu untersuchen.


- Gefundene Schwachstellen werden somit öffentlich und können dann behoben
werden.


- Dadurch hofft man, die Sicherheit von Open Source Programmen hoch zu halten

Was tun gute Review-Programme?

sie bauen aus den Quelltexten einen Syntaxbaum (engl. abstract syntax tree (AST)) auf und untersuchen diesen

Welche Problemfelder können Review-Programme erkennen?

• Aufrufe von sicherheitskritischen Funktionen
• Lokale Analyse von einzelnen Funktionen oder Methoden
• Globale Analyse von Datenfluß durch Funktionen und über Modulgrenzen hinweg

Welche Testarten gibt es?

- unit test


- integration test


- performance test


- user acceptance test


- penetration test


- Regressions Test

Was prüft ein Unit test?

Arbeitet eine Komponente so wie spezifiziert?

Was prüft ein Integration Test?

Arbeiten die Komponenten tatsächlich so zusammen, wie man das ursprünglich entworfen hat?

Was prüft ein Performance Test?

Erfüllt das System die Anforderungen an Ausführungsgeschwindigkeiten und Speicherplatzbedarf?

Was prüft ein user acceptance test?

Kommen die Benutzer mit dem Programm zurecht?

Was prüft ein Penetration test?

Wie verhält sich das Programm, wenn es angegriffen wird?

Was prüft ein Regressions Test?

Ob die alten Funktionen nach dem Hinzufügen einer neuen Funktion noch laufen.

Was ist die Vorgehensweise bei JUnit?

- Nach Entwurf der Klasse und Festlegung der öffentlichen Schnittstelle überlegt der Entwickler sich Testfälle für die Methoden


- Festlegung der Testfälle vor Implementierung des Rumpfes


- Implementierung der Tests als Javaprogramme und automatische Durchführung der Tests

Was ist die Vorgehensweise bei JUnit, wenn man später während der Implementierung einen Fehler findet?

1. Schreibe einen Testfall, der den Fehler reproduziert.
2. Trage diesen Testfall in die Testklasse ein.
3. Korrigiere den Fehler in der Implementierung.
4. Lasse alle Tests gegen die neue Implementierung laufen

Welche Vorteile hat das Vorgehen, wenn man später einen Fehler findet?

- Zunächst kann man sicher sein, dass der Fehler tatsächlich behoben wurde, denn man hatte vorher einen Testfall, in dem der Fehler auftrat, nach der Fehlerbehebung trat der Fehler im Testfall nicht mehr auf.


- Weiterhin ist man sicher, daß man nicht unbeabsichtigt einen alten Fehler wieder eingebaut hat.

Welche speziellen Testverfahren zur Sicherheit eines Systems gibt es?

1. Einbruchs- oder Penetrationstests.
2. Audits und Zertifizierungen.

Wie werden Penetrationstests durchgeführt?

- Test der Sicherheit des Systems durch Durchführung verschiedener Angriffe


- Sie sollten nicht von den Herstellern des Systems gemacht werden.


- Statt dessen sollten Dritte für diese Tests engagiert werden.


- Sie waren nicht in die Entwicklung eingebunden und kennen die Entstehungsgeschichte des Systems nicht.


- Die Tests können also unvoreingenommen durchgeführt werden


- die Tester versuchen, das System an allen zugänglichen Stellen durch die Eingabe von ungültigen Daten an diesen Stellen zu knacken


- Obwohl ein einfacher externer Angreifer nichts außer der Schnittstelle des Systems sieht, sollte man den engagierten Angreifern alle Informationen über das System zur Verfügung stellen.


- Dadurch wissen sie mehr als der normale
Angreifer und haben deshalb auch größere Erfolgsaussichten

Was sind Audits und Zertifizierungen?

- Methoden, bei denen (externe) Experten sich Systeme oder Abläufe anschauen und eine Beurteilung hierzu verfassen.


- Manche Audits und Zertifizierungen konzentrieren sich nicht auf konkrete Systeme, sondern beziehen sich auf die Prozesse.


- Die Prozesse beschreiben das Vorgehen bei der Erstellung eines Systems.


- Die Idee dieser Zertifizierungen ist, dass ein Zusammenhang zwischen dem Vorgehen und dem Endergebnis besteht.


- Die Wahrscheinlichkeit, dass aus chaotischem Vorgehen am Ende ein gutes und sicheres System entsteht, ist sehr gering.


Wenn in den Prozessen also nicht gewisse Mindeststandards eingehalten werden, unterstellt man, dass die so entstandenen Systeme wohl nicht sicher sind

Welche Mindestanforderungen gehören zu einem Prozess?

• Dokumentation des Prozesses
• Überwachung der Einhaltung der Prozessschritte
• Dokumentation der Anforderungen an das System
• Dokumentation der Entwurfsergebnisse

Was misst die Trusted Computer System Evaluation Criteria (TCSEC)?

die Sicherheit von Computersystemen.

Welche Stufen können bei TCSEC als Messergebnis auftreten?

D: minimale Sicherheit
C: etwas sicherer. Dieser Bereich wird noch in weitere Unterstufen C1 und C2 unterteilt.
B: zwingender Schutz. Dieser Bereich ist weiter in die Teilbereiche B1, B2 und B3 unterteilt.
A: verifiziertes Design

Was enthalten die Information Technology
Security Evaluation Criteria (ITSEC)?

Sie enthalten eine Auflistung von Funktionsklassen, von denen jeden bestimmte Sicherheitsgrundfunktionen beschreibt

Welches Problem gibt es bei Sicherheitszertifizierungen?

- Eine Zertifizierung bezieht sich immer auf ein konkretes Produkt, d. h. eine Kombination aus Hardware und Software in einer konkreten Umgebung.


- Für genau diese Kombination hat die Zertifizierung eine Aussagekraft.


- Nach jeder Änderung an der Hardware oder der Software müsste die Zertifizierung
wiederholt werden


- Ohne neue Zertifizierung sollte man davon ausgehen, dass die Sicherheit nach der Änderung wahrscheinlich nicht mehr so hoch sein wird wie vorher.

Welche Punkte gehören zum sicheren Betrieb eines Systems?

• Ordnungsgemäßer Ablauf des normalen Betriebs.
• Beheben von kleineren Problemen durch den Administrator.
• Erkennen von ungewöhnlichen Aktionen. (Intrusion Detection)
• Abwehr von Angriffen aller Art. (z.B. Firewalls)
• Kontrollierte Aktualisierungen (engl. updates) des Systems.

Was ist beim Betrieb eines Administratorkontos zu beachten?

- Verschlüsselter Zugriff z.B. mittels ssh


- Nutzung der Administratorkennung nicht zu eigentlichen Arbeit, sondern nur für Aktionen, die entsprechende Rechte benötigen.

Welche Maßnahmen bzgl. der Sicherheit liegen im technischen Bereich?

- Datensicherung


- Vorschlagen von Maßnahmen zur Reduzierung der Risiken


- Betrieb des Systems


- Teile der Analyse und des Designs


- Hauptspeichererweiterungen


- Einbau größerer Festplatten


- Sicherheitspatches der Software

Welche Maßnahmen bzgl. der Sicherheit liegen im organisatorischen Bereich?

- verantwortlich für System und Daten


- Beauftragung aller Änderungen und Erweiterungen und anschließende Abnahme


- Risikoanalyse, da man im Geschäftsbereich weiß, welche Daten anfallen und wie sensibel sie sind


- Auch die Auswirkungen von Problemen können nur dort richtig eingeschätzt werden


- Entscheidung darüber, welche Maßnahmen zur Reduzierung der Risiken eingesetzt werden

Was ist bei Änderungen eines Systems zu beachten?

- Einhaltung eines genau definierten Prozesses


- Eine Änderung sollte also wie eine Neu-Entwicklung betrachtet werden und denselben Entwicklungsprozeß durchlaufen.

Welche Sicherheitsrisiken bestehen, wenn Änderungen ohne einen Prozess einfach ins Produktivsystem eingespielt werden?

- Verfügbarkeit ist nicht mehr gewährleistet, weil möglicherweise nach den Änderungen nicht mehr alle Funktionen ausgeführt werden können.


- Integrität der Daten könnte nicht mehr gewährleistet sein


- Vertraulichkeit der Daten könnte nicht mehr gewährleistet sein