Anwendungssicherheit und Software-Sicherheit: Was ist der Unterschied?

Monica Chakraborti

Die Begriffe "Anwendungssicherheit" und "Software-Sicherheit" werden häufig synonym verwendet. Es gibt jedoch tatsächlich einen Unterschied zwischen den beiden. Der Pionier der Informationssicherheit, Gary McGraw, argumentiert, dass Software-Sicherheit ein reaktiver Ansatz ist, der nach der Installation der Software stattfindet. Software-Sicherheit beinhaltet andererseits einen aktiven Ansatz in der Phase vor der Bereitstellung. Die Sicherheit muss in allen Phasen des Lebenszyklus der Softwareentwicklung (SDLC) festgelegt werden, um die Sicherheit der Software zu gewährleisten. Software-Sicherheit ist also keine Anwendungssicherheit - sie ist riesig.

Anwendungssicherheit als Teilmenge der Software-Sicherheit

Wie Sie wissen, sind Anwendungen Beziehungen zwischen Daten und dem Benutzer (oder einer anderen Anwendung). Wenn ein Benutzer beispielsweise eine umfassende Analyse der medizinischen Daten eines Patienten wünscht, kann dies einfach mithilfe einer App durchgeführt werden, um komplexe und zeitaufwändige manuelle Berechnungen zu vermeiden. In ähnlicher Weise erfolgt das Online-Banking über Webanwendungen oder mobile Anwendungen, und nichtfinanzielle Informationen werden verarbeitet, übertragen und dabei gespeichert. Die Software erkennt die Vertraulichkeit oder Vertraulichkeit von Informationen, die über das Internet übertragen oder übertragen werden, nicht an. Daher sollte die Software basierend auf der Empfindlichkeit der verarbeiteten Daten entworfen und entwickelt werden. Wenn die Daten als "öffentlich" klassifiziert sind, kann auf sie zugegriffen werden, ohne dass eine Benutzerauthentifizierung erforderlich ist. Ein Beispiel sind die Informationen auf der Kontaktseite der Website oder auf der Richtlinienseite. Wenn die Anwendung jedoch eine Benutzerverwaltung durchführt, muss eine Multi-Faktor-Authentifizierungsmethode vorhanden sein, um auf diese Daten zugreifen zu können. Entsprechend der Klassifizierung der Daten, die in der Anwendung verarbeitet werden, müssen die Daten zusätzlich zur sicheren Codierung authentifiziert, autorisiert und bei der Speicherung oder Übertragung geschützt werden. Sie sollte bei jedem Schritt des SDLC gemessen werden, um die Software und die damit verbundenen vertraulichen Informationen zu schützen. Diese Maßnahme unterteilt Probleme in Phasen vor und nach der Entwicklung. Die Software-Sicherheit befasst sich jedoch mit Problemen vor der Bereitstellung und Problemen mit der Software-Sicherheit nach der Bereitstellung.

Zu den Aktivitäten im Bereich Software-Sicherheit (Vorverteilung) gehören:

- Sicheres Software-Design - Entwicklung sicherer Codierungsrichtlinien für Entwickler - Entwicklung sicherer Konfigurationsverfahren und -standards für die Verteilungsphase - Sichere Codierung gemäß den Anweisungen - Überprüfung der Benutzereingaben und der zugehörigen Implementierung von Codierungsstrategien - Benutzerauthentifizierung - Verwaltung von Benutzersitzungen - Zugriffskontrolle auf Funktionsebene - Verwendung einer starken Kryptografie zum Schutz von Daten während der Ruhe- und Transitzeit - Überprüfung von Komponenten von Drittanbietern - Festnahme von Softwarefehlern

Zu den Aktivitäten zur Anwendungssicherheit (nach der Zuweisung) gehören:

- Sicherheitstests nach dem Hosting - Erkennen von Mängeln in der Konfiguration der Softwareumgebung - Erkennen von schädlichem Code (erzeugt durch Hintergrund, Zeitbombe) - Patch / Modernisierung - IP-Filterung - Löschen verwendeter Dateien - Implementieren von Softwarerichtlinien Überwachung von Laufzeitprogrammen zur Leistungssteigerung

Weitere Informationen finden Sie im Building Security Maturity Model (BSIMM).

Szenario 1: Sicherheit von Webanwendungen Webanwendungen sind häufig Client-Server-basierte Anwendungen, bei denen der Browser als Client fungiert, Anforderungen an den Benutzer sendet, um Informationen bereitzustellen, und Antworten vom Server erhält. Daher ist die Sicherheit von Webanwendungen mit Kundenproblemen, Serverschutz und Datenschutz in Freizeit und Transit verbunden. Wenn beim Entwerfen der Benutzeroberfläche keine Vorsichtsmaßnahmen getroffen werden, ist es schwieriger, clientseitige Probleme zu lösen. Ein Beispiel sind DOM-basierte standortbasierte Skripts, bei denen ein DOM-Objekt mithilfe von Javascript von einem anderen DOM-Objekt geändert werden kann. Moderne Browser bieten mehr Schutz für Apps, aber viele Programme unterstützen erweiterte Kompatibilität, einschließlich einer Vielzahl von Benutzern, älteren Browserversionen und nicht sicheren Computern. Wenn Sie diese Probleme beheben, sollte die Sicherheit daher vom Client während der Entwurfsphase ausgeführt werden. Während der Entwicklungs- und Codierungsphase der Anwendung können die serverseitigen Komponenten mithilfe von Gegenstücken geschützt werden. Dies erfordert die Installation einer sicheren System- / Serversoftware. Veraltete Serversoftware wie Apache Tomcat (3.1 und früher) wird nicht mehr unterstützt, und es gibt möglicherweise einige unvorhergesehene Sicherheitslücken für diese Versionen. Sie sollten sofort auf die neueste Version aktualisiert werden.

Andere häufige Sicherheitslücken in der Infrastruktur:

- Ausführliche Server-Banner - Zwischenspeichern von Seiten, auf denen Daten lokal und während der Übertragung gespeichert werden - Servergestützte verschlüsselte Bundles - Von Cookies beeinflusste Domänennetzwerkadressen - Cookie-Sicherheit

Szenario 2: Sicherheit mobiler Anwendungen

Verschiedene Betriebssysteme und mobile Systeme wie Smartphones und Tablets, die Sicherheitsdesign verwenden, sind heutzutage häufiger als Webanwendungen. Diese Geräte und Anwendungen, die auf diesen Geräten ausgeführt werden, können eine ernsthafte Bedrohung für die von ihnen gespeicherten vertraulichen Informationen darstellen. Geschäfts-E-Mails und persönliche Kontakte können unzuverlässigen Netzwerken ausgesetzt sein. Diese Programme interagieren mit vielen Supportdiensten. Geräte können gestohlen werden. Es ist möglich, Malware zu installieren. Mobile Apps können umgekehrt erstellt werden, um auf vertrauliche Informationen zuzugreifen. Dies sind nur einige der Möglichkeiten. Darüber hinaus erfassen einige Marketinganwendungen auf Mobilgeräten möglicherweise persönliche oder berufliche Informationen wie Textnachrichten, Anrufverlauf und Kontakte.

Zu den Risikofaktoren für mobile Software gehören:

- Anwendungscodierung - Anwendungsbereitstellung - Anwendungskonfiguration - Gerätekonfiguration

Mobile Anwendungen sollten in der Lage sein, interne Root- / Jailbreak-Erkennungsfunktionen, vollständigen Widerstand gegen Reverse Engineering, Authentifizierung mit mehreren Gesichtern, Fingerabdruck, Bild- und Geolokalisierungserkennung zu bieten. Ganz zu schweigen von der Notwendigkeit, die Anweisungen zur sicheren Codierung zu befolgen. Für verschiedene Anbieter mobiler Geräte verwenden Anwendungsspeicher unterschiedliche Sicherheitsüberprüfungen. Stellen Sie sicher, dass die Anwendungen während des Verteilungsprozesses nicht beschädigt werden. In diesem Stadium ist der volle Widerstand besonders wichtig. Geräte, auf denen diese Programme ausgeführt werden, verwenden ihre Software und können sicher konfiguriert werden. Die Konfiguration von Geräten, die mit dem Schutz des Anwendungscodes, der Erkennung von Root- / Malware, der Authentifizierung und der Kanalüberprüfung verbunden sind, muss gemäß den Konfigurationsstandards für mobile Geräte erfolgen. Dies ist nicht nur ein Programm, das hervorgehoben werden muss. Für all diese Funktionen muss auch mobile Software entwickelt und sicher angepasst werden. Die Implementierung von Sicherheit in mobilen Anwendungen ist schwieriger als bei Webanwendungen. Maßnahmen wie Entschlüsselung und Entschlüsselung (um Code nicht zu beschädigen) sind in mobilen Apps mehr als in Webanwendungen erforderlich.

Arten von Anwendungstests

Das Testen wurde entwickelt, um Leistungsfehler, Design- und Architekturfehler sowie unsichere Konfigurationen zu erkennen. Einige effektive Anwendungen für Sicherheitsüberprüfungen sind:

  1. Statische Software-Sicherheitstests (SAST) konzentrieren sich auf den Quellcode.
  2. Dynamic Application Security Testing (DAST) dient zum Erkennen von Schwachstellen in Software und Infrastruktur.
  3. Der interaktive praktische Sicherheitstest (IAST) verwendet eine Kombination aus DAST und SAST und führt eine Verhaltensanalyse durch, um den Datenfluss, die Eingabe / Ausgabe usw. zu bestimmen.
  4. Mit Runtim Self-Defense (RASP) können sich Anwendungen mithilfe von Sicherheitsfunktionen der Laufzeit-Engine wie Sitzungsbeendigung, Herunterfahren von Programmen, Absturzberichterstellung usw. schützen. .

Es ist wichtig zu beachten, dass die Anwendungssicherheit einer von vielen Bereichen der Software-Sicherheit ist.

Zu den Softwarerisiken gehören:

- Kein Web / Webanwendung / Infrastruktur - Sicheres Design - Falsche Einstellung - Technologieeinschränkung - Übertragungsverschlüsselung - Back-End-Datenbanksicherheit

Wie Sie in den beiden oben genannten Szenarien sehen können, variieren die Anwendungstests in der Phase nach der Bereitstellung von Web- und Mobilanwendungen in vielerlei Hinsicht. Mobile Apps sind in der Regel störender als Webanwendungen. Darüber hinaus ist die Sicherheit mobiler Geräte ein wichtiger Faktor für die Sicherheit mobiler Apps.

Wo passt die Netzwerksicherheit in all das?

Es gibt ein weit verbreitetes Missverständnis bezüglich der Software-Sicherheit, wie z. B. Firewalls, die die Leistung von Programmen oder Programmen wie Firewalls einschränken. Unternehmen geben viel Geld für Netzwerksicherheitsmaßnahmen aus (z. B. Router, die verhindern, dass eine IP-Adresse direkt im Internet angezeigt wird).

Andere übliche Gegenmaßnahmen sind:

- Typische Firewalls - Verschlüsselungs- / Entschlüsselungsprogramme - Antivirenprogramme - Spyware-Erkennungs- / Deaktivierungsprogramme - Biometrische Authentifizierungssysteme - Tools zur Datenanalyse und Verhinderung von Datenverlust

Der Verizon Data Breach Report 2015 zeigt nur 9,4% der Web-App-Angriffe bei verschiedenen Vorfällen. Die Software Security Initiative (SSI) der Organisation sollte über den Bereich der Anwendungssicherheit hinausgehen und in alle Arten von Software integriert werden.

[tweetthis remove_hidden_hashtags = "true"] # Appsec und #Swsec werden häufig synonym verwendet. Aber es gibt einen großen Unterschied. Hier ist der Grund: [/ tweetthis]

Anwendungssicherheit und Software-Sicherheit: Abschluss

Das sichere Entwerfen und Codieren einer Anwendung ist nicht die einzige Möglichkeit, diese Anwendung zu sichern. Die Anwendungsinfrastruktur, Server und Netzwerkkomponenten müssen sicher eingerichtet sein. Um die Anwendung so sicher wie möglich zu halten, ist es wichtig, all dies zu berücksichtigen, einschließlich der Anwendungs- und Serverkonfiguration, der Übertragungsverschlüsselung, der Speicherung von Authentifizierungsdaten und des Zugriffs auf die Datenbank, in der die Datenbank und die Verschlüsselungsschlüssel gespeichert sind. Software und softwarebetriebene Infrastruktur müssen geschützt werden, um maximale Sicherheit zu gewährleisten. Dies umfasst Software-Sicherheit (in der Entwurfs-, Codierungs- und Testphase) und praktische Sicherheit (Tests nach der Platzierung, Überwachung, Debugging, Aktualisierung usw.). Die Software-Sicherheit umfasst einen ganzheitlichen Ansatz zur Verbesserung der Informationssicherheit, des Schutzes von Vermögenswerten und der Vertraulichkeit nicht öffentlicher Informationen des Unternehmens. Die Anwendungssicherheit ist während des gesamten Prozesses nur eine Domäne.

Anwendungssicherheit ist der erste Schritt auf dem Weg zur Software-Sicherheit. Erfahren Sie mehr.