Sicherheitstest (Software)

Sicherheitstest (Software)

Sicherheitstests sind Softwaretests, welche die Sicherheit einer Software testen. Sie stellen eine Möglichkeit zur Erhöhung der Informationssicherheit dar. Die Tests können beginnen, sobald die erste Zeile Quelltext geschrieben wurde, damit Fehler so früh wie möglich entdeckt werden.

Inhaltsverzeichnis

Besonderheiten

Sicherheitstests haben eine andere Fragestellung als die meisten der übrigen, allgemeinen Tests, weil sie den Nachweis erbringen sollen, dass eine Software keine Funktionen enthält, die sie nicht enthalten soll. Daher handelt es bei Sicherheitstests meistens um so genannte Negativtests. Weiterhin sollen Sicherheitstests den Beweis erbringen, dass keine unsicheren Nebeneffekte in einem Programm vorhanden sind, weil bereits ein einzelner Fehler ausreicht, um das gesamte Programm zu kompromittieren. Die Formulierung eines Sicherheitstests ist in der Regel problematisch, weil die Muster der Schwachstellen nicht präzise genug definierbar sind. Sicherheitstests können allerdings nie den Beweis erbringen, dass eine Software zu einhundert Prozent sicher ist.

Ziel

Das Ziel von Sicherheitstests ist das Auffinden von sicherheitskritischen Schwachstellen in Programmen. Auf diese Weise wird versucht, die Abwesenheit von Schwachstellen in einer Software zu erbringen. Wichtig ist, dass sich die Tests über das gesamte Programm erstrecken, weil, wie oben bereits angeführt, ein einzelner Fehler ausreichend ist, um das gesamte Programm zu kompromittieren.

Programmierfehler

Sicherheitstests werden entwickelt, um alle Fehler innerhalb eines Programms zu finden. Die meisten dieser sicherheitskritischen Fehler lassen sich auf wenige Ursachen zurückführen. Die häufigste Ursache sind Programmierfehler. Zur Kategorisierung dieser Programmierfehler existieren verschiedene Schemata, um die einzelnen Fehler sauber voneinander abzugrenzen. Die häufigsten immer wieder genannten Kategorien sind die folgenden:

Im Rahmen des Open Web Application Security Project (OWASP) wurde eine Applikation (WebGoat) entwickelt, die dem Nutzer hilft, die verschiedenen Programmierfehler zu verstehen und nachzuvollziehen. Diese Applikation ist dadurch auch eine gute Ausgangsbasis für die Entwicklung von Sicherheitstests.

Werkzeuge

Bei den nachfolgend aufgelisteten Werkzeugen handelt es sich zumeist um Sicherheits-Testwerkzeuge. Einige der Werkzeuge sind Open Source.

  • Jlint (Java)
  • PQL/bddbddb (Java)
  • Nikto (Perl)
  • RATS (C, C++)
  • WebScarab
  • ITS4 (C, C++)
  • Virtual Forge CodeProfiler (SAP ABAP)
  • Fortify SCA Suite (Java, C, C++, etc.)
  • Beyond Security beSTORM (Fuzzing Tools für über 140 verschiedene Protokolle, z.B. IPv4, IPv6, SIP, DHCP)
  • Microsoft Security Development Lifecycle (SDL) (8 frei verfügbare Anwendungen)

Siehe auch

Links

Literatur

  • Michael Howard, David LeBlanc: Writing secure code. Practical strategies and proven techniques for building secure applications in a networked world. 2nd edition. Microsoft Press, Redmond, WA 2003, ISBN 0-7356-1722-8

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Sicherheitstest — Sicherheitstests gibt es Im Bereich Software, siehe Sicherheitstest (Software) Im Bereich der Automobilindustrie, siehe Crashtest Diese Seite ist eine Begriffsklärung zur Unterscheidung mehrerer mit demselben Wort bezeichneter Begr …   Deutsch Wikipedia

  • Software-Test — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Akzeptanztest (Softwaretechnik) — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Programmtest — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • System-Test — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Systemtest — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Test (Informatik) — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Fuzzing — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Softwaretest — Ein Softwaretest prüft und bewertet Software gegen die für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt. Tests während der… …   Deutsch Wikipedia

  • Penetrationstest (Informatik) — Penetrationstest ist der fachsprachliche Ausdruck für einen umfassenden Sicherheitstest einzelner Rechner oder Netzwerke jeglicher Größe. Unter einem Penetrationstest versteht der Sicherheitsfachmann in der Informationstechnik die Prüfung der… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”