Software-Sicherheit: Die Designphase Analyse


  Share  
|


Ein komplettes Design stellt Lösungen zum Problem zur Verfügung, das durch das Produkt adressiert wird, und auch Nehmen in Betrachtung die Effekte der Innovation. Die Sicherheit einer Anwendung wird auch durch ein komplettes Design verursacht und erhöht.

Sobald eine Organisation die Idee der Sicherheit als Eigenschaft wegwirft, wird es offensichtlich, daß secu rity Betrachtung früh benötigt. Während jede Organisation unterschiedliche Methoden des Entwerfens eines Produktes oder der Anwendung haben konnte, ist die folgende Annäherung nützlich, einem hohen Niveau von der Sicherheit in einem Design zu versichern. Die Designphase analysiert von drei Veranschaulichungen:

· Global

· Organisatorisch

· Bestandteil

Die globale Veranschaulichung ist die höchste Ansicht des Systems; sie kennzeichnet die Notwendigkeiten, die durch die Anwendung und seinen Eigenschaft Satz adressiert werden. Die organisatorische Veranschaulichung hebt die einzelnen Bestandteile hervor, die oben den Antrag stellen. Die Teilveranschaulichung geht zum folgenden Niveau von granularity, indem sie die ausdrücklichen Details jedes Bestandteils und seiner Implementierung überprüft. Die zusätzliche Annäherung, die hier verwendet wird, läßt eine tiefere und komplettere Analyse zu, die auch einen leicht verstandenen Prozeßfluß liefert. Dieses hilft Managern und Entwicklern, die passenden Verfahren in Platz zu setzen, um die Betrachtung der Sicherheit in ihrer Anwendung sicherzustellen.

Die Globale Veranschaulichung

Viele Anwendungen entstehen aus einer unausgeführten Notwendigkeit oder der Unzulänglichkeit der gegenwärtigen Lösungen. Ein gutes Design kennzeichnet die folgenden Sicherheit Interessen:

· Wertpapieremissionen bezogen auf vorhandenen Lösungen auf dem Problem oder der Notwendigkeit, die gelöst wurde

· Die Antwort der Anwendung zu jenen Wertpapieremissionen

· Die mögliche Sicherheit Verwundbarkeit, die in den Innovationen bestehen, die gebildet werden

Eine globale Analyse liefert Informationen, die ein Angreifer anders finden würde, nachdem die Anwendung freigegeben ist. An dieser Phase sollte eine Sicherheit Architektur für die Anwendung definiert werden. Diese Architektur formalisiert das Niveau der Sicherheit benötigt in einer Anwendung. Sie hilft, den Bereich Sicherheit der Anwendung herzustellen, indem sie das Verhältnis der Anwendung zu seinen Umlagerungen und das Niveau der Sicherheit bereitgestellt von ihnen kennzeichnen. Eine Sicherheit Architektur hebt auch die Notwendigkeit und Menge, von an der unabhängigen Sicherheit, die eine Anwendung voraussetzen muß, sowie die erforderten Eigenschaften hervor.

Eine globale Analyse und eine Einrichtung einer Sicherheit Architektur sind über die zusätzliche Kategorisierung der Module, der Bestandteile, der Schnittstellen und der Methoden erfolgt, die in der Anwendung verwendet werden. Ihre Position und Verhältnis miteinander und ihre Aussetzung zu den externen Anwendungen, zu den Benutzern und zu den Schnittstellen sind wichtige Punkte.

Die globale Veranschaulichung einer Anwendung stellt zuerst den sprichwörtlichen "schwarzen Kasten dar,", welches—die einzigen Details, die bekannt sind, die sind, die von den Außenseitern gesehen werden. Diese externen Eigenschaften und Funktionsanforderungen werden dann in Module für Sicherheit Analyse getrennt.

Verkäufer advisories suchend, verzeichnet newsgroup, Postsendung, und on-line-Foren für freigegebene Verwundbarkeit im Konkurrieren oder in den ähnlichen Anwendungen ist eine gute Weise, über einige der Hauptwertpapieremissionen zu erlernen, die auf der Anwendung bezogen werden. Sie hilft auch, erfolglose Lösungen zur Verwundbarkeit zu unterstreichen, die in den ähnlichen Anwendungen gefunden wird.

Fallstudie, Phase I

Dieses hypothetische Beispiel ist eine Fallstudie für die Entwicklung einer Internet-Handelanwendung. Dieser Service erlaubt Benutzern, von ihren Datenbanksuchroutinen anzuschließen, um on-line-Erwerbe abzuschließen.

Das erste Niveau im Design dieser Anwendung ist die Definition seiner Fähigkeiten, Unabhängiges der verwendeten Implementierung Methoden. Diese Eigenschaften konnten das folgende mit einschließen:

· Die Vorwähler eines passenden Betriebssystems, zum der Anwendungen zu bewirten

· Datenbankzugriff für Ablage der privaten und allgemeinen Informationen

· Netzumhüllung

· Konnektivität dieser Teile mit für einen Kunden entwickelnten Anwendungen

· Konnektivität zu den Geldinstituten für die Verhandlungen

Von der globalen Veranschaulichung erkennt ein Entwerfer die Sicherheit Eigenschaften, die für jeden Bestandteil dieser Funktionen erfordert werden.

Die Datenbank speichert private Informationen auf vielen unterschiedlichen Benutzern, einschließlich Kennwörter, Kreditkarte Zahlen und Kontaktinformationen. Um diese Informationen zu schützen, sollte die Datenbank Sicherheit Bestandteile haben die Beschränkungen zu den Gegenständen und möglicherweise zu ihrer Verschlüsselung stützen.

Das web server sollte sichere Kommunikationen mit dem sicheren Protokoll der Einfaßungen Schicht (SSL) und irgendeine Methode der Zusammenschaltung an externe Anwendungen und die Datenbank stützen. Dieses konnte über Java servlets und applet oder cgi Programme sein.

Netzkommunikationen sind ein zugehöriges Teil dieses Systems. Die web- server und Datenbankbediener-Software laufen vermutlich auf unterschiedliche Maschinen, folglich wird Mittel, die Netzkommunikation zwischen ihnen zu sichern angefordert.

Der letzte betrachtet zu werden Bestandteil ist der tatsächliche Anschluß zur Organisation, die die Verhandlungen autorisiert. Diese könnte eine Bank oder eine Kreditkarte Firma sein, die die Aufwendungen durch Benutzer autorisiert. Anschlüsse werden wahrscheinlich mit einem Modem oder anderem Stück Nachrichtentechnikausrüstung vollendet, die auf die finanzielle Organisation einwirkt und die Gültigkeitserklärung durchführt. Diese Anschlüsse erfordern hohe Sicherheit, um Zugang durch nicht autorisierte Benutzer zu vermeiden.

Diese Einblicke werden vom Wissen auffangen, von der Analyse der konkurrierender Produkte und von der Vertrautheit mit Kunde Anforderungen aufgelesen. An diesem Punkt muß sorgfältige Forschung erfolgt werden, um letzte und gegenwärtige Sicherheit Verwundbarkeit in in Verbindung stehenden Produkten zu dokumentieren. Die resultierende Liste sollte die Gefahr Bereiche kennzeichnen, die wenden müssen. Die Sicherheit Eigenschaften, die von der Ausgangsanforderungen Liste vermissen, werden häufig durch diese Analyse, andere seines Nutzens gekennzeichnet.

In unserem Internet-Handelbeispiel fanden Forscher die folgende Verwundbarkeit in den vergleichbaren Produkten:

· Datenbanken hatten keine Schutzentwürfe, und das resultiert in der Belichtung der Privatkundeinformationen.

· Das web server hatte Bohrungen, die die Durchführung des beliebigen Codes auf dem System erlaubten. Die Konfiguration Rückstellung des Bedieners erlaubte auch das traversal Verzeichnis, das externen Benutzern erlaubt, viele private Akten und Verzeichnisse auf dem System zugänglich zu machen.

· Die cgi Anwendungen, die verwendet wurden, um mit der Datenbank zu verständigen, hatten Verwundbarkeit, die Remoteangreifern erlaubte, andere Kunden zu verkörpern.

Die Forschung zeigt auch an, daß Datenschutz, Pufferüberlauf, Rückstellung Konfiguration und Eingang Gültigkeitserklärungausgaben vermieden werden müssen, weil diese Verwundbarkeit häufig mit ähnlichen Anwendungen auftrat. Sie zeigte auch, daß Verkäufer Sicherheit Eigenschaften und Flecken addiert haben, die gegen diese Probleme sich schützen. Dieses bildet Authentisierung und Zugriffssteuerung wichtige Anforderungen, zusammen mit Netzsicherheit.

An diesem Punkt weiß der Entwerfer von der Verwundbarkeit, die mit der Anwendung, den Methoden verbunden ist, durch die andere Organisationen auf sie reagieren, und einem Satz wichtigen Sicherheit Eigenschaften, die die Grundlage einer Sicherheit Architektur bilden. Die Sicherheit Architektur entwickelt sich weiter in der folgenden Phase des Designs.

Die Organisatorische Veranschaulichung

Sicherheit ist nicht eine genaue Wissenschaft; seine Notwendigkeiten sind zu jeder Anwendung und zu Klima spezifisch. Folglich ist es nicht genügend, Sicherheit nur von der globalen Ansicht zu betrachten. Obgleich eine anders gut entworfene Anwendung von allen weiteren Anwendungen auf dem System unabhängig bestehen konnte, die Interaktion aller Bestandteile dadurch, daß Anwendung Sicherheit Drohungen aufwerfen konnte. Die organisatorische Veranschaulichung kennzeichnet die einzelnen Elemente oder die Gruppen der Elemente, die die gesamte Anwendung, ihre Funktionen und ihre Verhältnisse zu einander bilden. Ein Element könnte eine Funktion, eine Kategorie, ein Prozeß oder ein Satz dieser Elemente sein, die durch ihr Verhältnis zur Anwendung gruppiert werden.

Ein Antrag wird gewöhnlich von einigen Funktionsmodulen, wie der Benutzerschnittstelle, die Netzwerkanschluß- oder Kommunikationsbestandteile oder die Datenspeicher- und Wiederherstellungswerkzeuge gestellt.

Während ein Modul recht sicher scheinen konnte, konnte sein Verhältnis zu den anderen Bestandteilen insecurely durchgeführt werden. Ähnlich der Analyse der Interaktionen der Anwendung, nimmt organisatorische waagerecht ausgerichtete Analyse die Funktionsanforderungen und stellt die verwendete Architektur fest. Die Funktionsanforderungen erlauben dem Entwerfer, einen Satz Bestandteile und Methoden zu kennzeichnen, die die Funktionalität liefern; eine Analyse der Sicherheit zwischen ihnen, wie sie Ergebnisse die sichersten Wahlen für Einbeziehung auf die Anwendung einwirken.

Die zusätzliche Kennzeichnung, die Organisation und die Kategorisierung jedes Bestandteils in der Anwendung fährt in dieser Phase fort. Ein logischer Platz, der in—Sicherheit ausgedrückt angefangen wird und besonders vermutlich defekt,—sind die Ränder eines Moduls. Die Ränder sind die Eintragung oder Ausgang Punkte, in denen Daten die Grenzen zwischen Modulen kreuzen. Z.B. kreuzen Daten Grenzen zwischen Modulen während dieser Funktionen:

· Überschreiten von Daten als Parameter

· Einstellung der globalen Variablen

· Manipulierengeteiltes Gedächtnis

· Schreiben Daten zu den Akten

· Senden von von Daten über einem Kommunikationskanal wie dem Netz

· Empfangen des Benutzereinganges

Fallstudie, Phase II

In der organisatorischen Phase des Entwerfens der Beispielinternet-Handelanwendung, wird jeder Anwendung—Bestandteil das web server, der Datenbankbediener und die verbundenen—Anwendungen in sein Funktionsmodul für weitere Analyse kategorisiert.

Der Datenbankbediener hat einen Speicherbestandteil, einen Authentisierung und Zugriffssteuerungbestandteil und einen Kommunikation Bestandteil. Das web server hat den Netzumhüllungbestandteil, ein externes programmierenmodell und sichere Klient Kommunikations- und sichere Datenbankkommunikation Bestandteile. Interaktionen zwischen diesen Bestandteilen bilden einen definierbaren Weg, mit einigen Punkten, in denen Sicherheit stark sein muß. Nach einer Interaktion zwischen dem web server und dem Kunden, mittelt ein Klient web browser empfindliche Daten dem web server über. Diese Daten werden dann zur kundenspezifischen Anwendung übermittelt, die auf die Datenbank und das Geldinstitut einwirkt. Nach dem Datenweg durch die Anwendung, kann ein Entwickler Punkte von Verwundbarkeit in der Klient Kommunikation, in der web serveranwendung Interaktion, in der Kommunikation vom web server zur Datenbank beobachten und in der Interaktion zwischen ihnen.

Die Sicherheit Anforderungen fangen an, Form zu nehmen. Die Anwendung muß diese Gefahr Bereiche adressieren und Sicherheit in diesen Formen zur Verfügung stellen:

· Befestigen Sie Kommunikation an das Klient web browser in Form von verschlüsselter Netzkommunikation, Authentisierung der Benutzer und Zugriffssteuerungeinheiten auf ihren Informationen.

· Sichere Interaktion zwischen dem web browser und der Ehandel Anwendung, zum der Sicherheit des Systems sicherzustellen

· Anwendung Vollständigkeit des Handelprogramms

· Sichern Sie Kommunikationen mit der Datenbank

· Sicherheit der Datenbankgegenstände

Von diesen Anforderungen fängt eine Architektur an, Form zu nehmen. Der Gebrauch SSL auf dem web server schützt die Bediener-zu-Datenbanksuchroutine Kommunikationen. Die Anwendung hat seine eigene Authentisierung Einheit, die Klienten erlaubt, innen sicher zu unterzeichnen. Datenprüfung- und Schutzeinheiten werden auch auf eine organisierte Art und Weise eingeführt, die nur das minimale erforderliche Privileg verwendet zu funktionieren. Funktionalität wird in die Anwendung für Gegenstandschutz und in Verschlüsselung auf dem Datenbankbediener enthalten. Die tatsächlichen Implementierung Details werden in der abschließenden Teilphase entwickelt.

Passende Sicherheit Methoden steigen zur Oberfläche, wenn die folgenden Fragen in der organisatorischen Phase gestellt werden:

· Wie schützen wir die geführten Informationen?

· Was sind die Effekte, wenn ein Modul unechte Daten zu anderen übermittelt?

· Sind die Begrenzungen der Daten definiert worden?

· Gibt es eine bevorzugte Methode des Übermittelns von von Daten, die zu erhöhter Sicherheit sich verleiht?

· Welche Bestandteile, Anwendungen und Benutzer benötigen Zugang zu den Daten? Welche Art des Zuganges ist oder—gelesen erforderliches Read-only und schreibt Fähigkeiten?

Die Teilveranschaulichung

Die abschließende Veranschaulichung, von der Designanalyse auftritt, ist die Zerlegung der einzelnen Bestandteile innerhalb einer Anwendung. Die kleinsten Design- und Implementierungsdetails können offensichtliches einführen und unverständliche Sicherheit Probleme, die schwierig zu finden sind, Pfosten-geben frei. Schlechte Implementierung kann die Bemühung auch annulieren, die in die Sicherheit eines Designs gesetzt wird.

Einige der Vorkehrungen schlugen hier Fall in vor, was als gute Kodierungpraxis gelten und nicht notwendigerweise Sicherheit Besondere sind, aber sie haben einen Effekt auf der Sicherheit einer Anwendung.

Die Sicherheit Architektur, die für eine Anwendung definiert wird, unterstellt, daß es Reihen Überprüfungen und Balancen gibt, an die die Anwendung sich anpassen muß. Diese Überprüfungen und Balancen liefern einen hohen Grad Versicherung, der eine Anwendung in einer konstanten Weise im Falle der unerwarteten Daten oder der Informationen fungiert.

Die Teilansicht überprüft jedes Stück, das ein Modul bildet. (Module bilden der Reihe nach die Anwendung.) Diese Bestandteile sollten auf ihre einzelnen Sicherheit Eigenschaften und die Interaktionen mit anderen Bestandteilen innerhalb dieses Moduls analysiert werden. Ausgangspunkte, wenn überprüfende programmatische Ausgaben innerhalb eines Moduls sind

· Rückholwerte

· Vorausgehen und Vorbedingungen

· Datenprüfung

· Gekennzeichnete Antwort und Wiederaufnahme

· Erlaubnis und Privileg

Rückholwerte sind Anzeigen des Erfolges oder des Ausfalls innerhalb einer Funktion. Bestandteile eines Einzelmoduls werden von den Funktionen gebildet, denen interoperate und Verhältnisse aufgebaut haben, die das Programm richtig durchführen lassen. Entwickler sollten auch verstehen, was es bedeutet, wann eine Funktion ausfällt und zu diesem Ausfall passend reagieren sollte. Ein komplettes Verständnis dieser Verhältnisse erlaubt einem Entwickler, die Abhängigkeiten zwischen Funktionalitäten zu verstehen. Gegründet auf diesen Abhängigkeiten, können Bestandteile innerhalb eines Moduls organisiert werden, um Zuverlässigkeit und Sicherheit zu erhöhen.

Daten sind in jeder möglicher Anwendung, die sie—zwischen Funktionen und Module reist und zu den unterschiedlichen Anwendungen dynamisch und ändern die Durchführung der Ausgangsanwendung, wie sie so. Mit der Kennzeichnung der Module, die eine Anwendung bilden und den Bestandteilen, die nachher jene Module bilden, kann der Weg von Daten durch eine gesamte Anwendung verfolgt werden. Die Eingänge zwischen Modulen und Funktionen sind die Angelelemente, die den Erfolg oder den Ausfall der Anwendung beeinflussen, Daten, an diesen Punkten folglich ist zu validieren lebenswichtig. Mit Gültigkeitserklärung Hand-in-Hand arbeiten ist eine definierte Antwort zu den unzulässigen Daten und zu den unregelmäßigen Bedingungen. Viele Anwendungen können eine Wiederaufnahme Einheit im Falle der unerwarteten Fälle formulieren nicht; dieses ergibt häufig instabile Anwendungen, die am frühesten Zeichen der unvollständigen Daten zusammenstoßen.

Wissen der Erlaubnis und der Privilegien, die für die Bestandteile erfordert werden, um zu arbeiten, stellt wichtige Informationen für die Anwendungsentwickleren zur Verfügung. Nach dem Modell wenigen Privilegs ist eine gute Designpraxis; sie empfiehlt die Lokalisierung und die Beschränkung des Privilegs in einer laufenden Anwendung. In den meisten Fällen werden hohe Privilegniveaus sehr selten und nur in lokalisierten Fällen benötigt. Viele Anwendungen, die erhöhte Privilegien für einen kleinen Teil Funktionalität erfordern, legen die gesamte Anwendung an diesem höheren Privilegniveau für sein gesamtes Bestehen fest. Dieses verursacht ein gefährliches Klima, worin jede Verwundbarkeit, die gefunden wird, in diesem privilegierten Modus besteht.

Privileg verweist hauptsächlich auf die einige Niveaus der Berechtigung auf einem Betriebssystem. Auf jedem höheren Niveau des Privilegs, haben autorisierte Benutzer Zugang zu nach und nach mehr Betriebsmitteln im System, wie Gedächtnis, in den anderen Anwendungen, in den Hardwareeinheiten und in den Daten. Der Wurzelbenutzer in UNIX, der Verwalter und das SYSTEM spezielle Konto in Windows illustrieren das höchste Niveau des Privilegs. Es gibt häufig verschiedene Grad Zugang, die granulierte Zugriffssteuerung liefern, auch. Granulierte Zugriffssteuerung erlaubt definierbare Zugang und Ablehnungmethoden für die Anwendung. Akten, Netzverkehr, Benutzer und Gegenstände können zu einem Satz ausdrücklicher Erlaubnis gesprungen werden, die Zugang zu ihnen erlauben oder mißbilligen.

Fallstudie, Phase III

Die Teilphase Analyse unserer Internet-Handelanwendung betrachtet die einzelnen Bestandteile, die in der Anwendung und in ihrer Sicherheit benutzt werden. Dieses Stadium eintragend, sollten Entwerfer eine Richtung des kompletten Datenweges und die Verhältnisse zwischen Modulen haben. Der folgende granulierte Schritt stellt die Grundlage für die Implementierung der Anwendung her. Die Ziele dieser Analyse sind, festzustellen die Privilegien der verschiedenen Bestandteile, eine Richtung der Organisation, die während der Implementierung verwendet wird, und Wissen von, wie die Implementierung auftritt. Hier werden vorher entschlossene Anforderungen in ausführliche Implementierung Methoden übersetzt.

Entwerfer wählen ein web server und einen Datenbankbediener an diesem Punkt, basiert auf den hergestellten Anforderungen. In unserem Beispiel wurde ein Apache web server gewählt, weil es gebildet werden kann, um SSL Kommunikationen zu stützen und eine gut dokumentierte Methode hat, zum auf externe Anwendungen einzuwirken. Ein Orakeldatenbankbediener wurde gewählt, weil er die Flexibilität, das scalability und die Sicherheit, die in der Datenbank erfordert wird liefert, und auch, weil sie Java-gegründete Interaktion stützt. Java wurde als die Sprache und die Verlängerung für das Einführen der tatsächlichen Internet-Handel-Software gewählt, weil es mit den Netz- und Datenbankbedienern funktioniert und ein starkes, konfigurierbares Sicherheit Modell stützt.

Der web- server und Datenbankbediener werden dann entworfen, indem man die sichersten Methoden für die folgenden Bestandteile feststellt:

· Bedienerrückstellung Konfiguration

· Sicherheit Konfiguration des zugrundeliegenden Betriebssystems

· Privilegien erfordert zum interoperate mit den Java Anwendungen

· Zugriffssteuerungbestandteile

Die Handel-Software wird organisiert, um diese Bestandteile zur Verfügung zu stellen:

· Privileganforderungen, seine Funktionen durchzuführen

· Die web serverinteraktion und -kommunikation Eingänge

· Benutzerauthentisierung und - Zugriffssteuerungmethoden

· Lernabschnittsicherheit Methoden, zum von von Personifizierung der Benutzer zu verhindern

· Die Datenbankbedienerinteraktion und -kommunikation Eingänge

Gegründet auf dieser Analyse und Organisation, wird es festgestellt, daß der einzige Teil des Systems, das erhöhte Betriebssystemprivilegien erfordert, die Handelanwendung ist. Es benötigt auch einen internen Satz Privilegniveaus, Zugriffskontrolle und Authentisierung zu erzwingen. Die Rückstellung Konfigurationen ermöglichen nur der Funktionalität, die für Betrieb des Systems benötigt wird, und jedes Betriebssystem wird mit der gleichen Minimalistannäherung Sicherheit-verhärtet.

Die Handelanwendung ist, wo die Majorität der Sicherheit Bestandteile bestehen. Sie hat die Verantwortlichkeit der Validierung der Benutzerbescheinigungen, stellt Erlaubnis auf Datenbank, einwendet ein, verfolgt jeden Benutzerlernabschnitt, und läßt die tatsächliche Intelligenz erfordern, um das System Arbeiten zu halten.

Die Handelanwendung benötigt erhöhte Privilegien, nur wenn sie Netz- und Datenbankbedienerstart und -abschaltung steuert. Die sicherste Methode, zum dieser Tätigkeiten durchzuführen wird festgestellt, um ein unterschiedlicher Kontrolleurprozeß zu sein, der seine Privilegien erhöht, zu der Zeit, das sie eine Start- oder Abschaltungstätigkeit durchführt; sie tritt dann seine Privilegien bis den folgenden Antrag ab. Der KontrolleurprozeßIST nur die Handelanwendung verbunden und benutzt beglaubigte Anzeigen, um den Start oder die Abschaltung des Systems einzuleiten.

Vor der Speicherung sie in der Datenbank die Handelanwendung verschlüsselt auch private Informationen, um Benutzerbescheinigungen und finanzielle Informationen zu schützen. Im Falle der unregelmäßigen und fehlerbeschaffenheiten wie unzulässige Eingang Daten, Benutzerauthentisierung Ausfälle und verlassene Kommunikationen, verlangt das Design ein berichtensystem, das diese Informationen loggen und auf die Fälle passend reagieren kann.

System Implementierung steigt natürlich von der ununterbrochenen Analyse, die in den vorhergehenden globalen, organisatorischen und Teilanalyse Phasen bereitgestellt wird. Die Entwickler verwenden die Führer und die Verfahren im Platz, um ihnen zu helfen, den Code zu schreiben, der den hohen hergestellten Sicherheit Standard beibehält.

dieses ist ein Artikel, der von Tamas Querolin hinzugefügt wird


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions