Security

Internet Security Aspekte bei der Software- und Produkt-Entwicklung

Die Internet Security von Software-Komponenten und darauf aufsetzender Produkte ist heutzutage eine wesentliche Voraussetzung um das Risiko, Opfer eines der immer komplexer werdenden Angriffe aus dem Netz zu werden, zu minimieren. Dementsprechend sollte der Fokus der Organisationen bei der Software-Entwicklung bereits am Anfang des Entwicklungszyklus auf der Risikoanalyse liegen und Security Aspekte sollten in der Roadmap entsprechend berücksichtigt werden. Ziel sollte sein, nicht nur Produkte zu erstellen die wie geplant arbeiten, sondern Produkte zu erstellen, die ausschließlich wie geplant arbeiten. Leider zeigt die Erfahrung, dass häufig der Schwerpunkt bei der Software und Produkt Entwicklung ausschliesslich auf die Funktionalität gelegt wird, und dann später, wenn die Software am Markt ist, mittels 'patch and pray' Philosophie die Sicherheitslücken zu schließen.

Die ITXperts unterstützt ihre Kunden mit ihrer Jahrzehnte langen Erfahrung in der Entwicklung komplexer Software-Komponenten auch beim Thema Cyber Security von Software Komponenten und darauf aufsetzender Produkte. Organisationen die sich damit auseinandersetzen, Cyber Security von Begin an in ihren Software Entwicklungsprozess zu integrieren, sollten folgendes in Betracht ziehen:

Minimaler Produktumfang (Minimal-Version) benötigt keine Security Vorkehrungen

Marktanforderungen an die Software-Entwicklung können aus verschiedenen Gründen dazu führen, die Security Anforderungen an die Software-Komponenten zurückzustellen. Oft soll auch nur der Markt mittels eines Produkts mit minimalem Funktionsumfang evaluiert werden. Das Risiko attackiert zu werden, ist am Anfang des Produktzyklus eher gering. Dennoch, die Gefahr attackiert zu werden ist immer vorhanden und letztlich ist die Annahme, dass die Minimal-Version keine Security-Enhancements benötigt auch falsch. Entweder die Minimal-Version ist kein Erfolg, dann benötigt sie auch keine Security-Enhancements oder sie ist ein Erfolg, dann wird sie auch attackiert.

Beschränkung des Fokus auf notwendigen Funktionsumfang reicht

Ihre Software erfüllt die notwendigen funktionellen Anforderungen, hat jedoch keinerlei Anforderungen an Sicherheitskonzepte zur Erkennung und Abwehr möglicher Gefahren. Der Fokus bei modernen 'Agile Software Development Methoden' liegt auf einer ablauffähigen Software. Das führt tendenziell dazu, dass nicht funktionale Anforderungen an die Security vernachlässigt werden. Ihre Software sollte sicher sein und die eigene Anwendung und ihre Clients vor der Offenlegung ihrer Daten schützen. Sie sollte widerstandsfähig ausgelegt sein und mit sog. 'Denial of Service' (Dos) Attacken zurechtkommen. Bereits in einer frühen Phase sollte ausgeschlossen werden, dass bereits kleinere Attacken zu CPU-, Memory- und Netzwerk-Resource Engpässen führen können. Kurz, ihre Software muss 'gut' genug sein um gegen die bekanntesten und häufigsten Attacken geschützt zu sein (OWASP Top 10).

Penetrate and Patch

Security 'Management' Methode die das Nachziehen von Security Massnahmen in der Software aufgrund einer bereits erfolgten Attacke vorsieht. Dieses Prinzip verfolgt das oben bereits erwähnte Prinzip 'Features over Security' und sollte in ihrer Software nicht realisiert sein, zumal keiner vorhersagen kann, dass der erste 'Einschlag' nicht bereits fatal ist!

Erkennen von fundamental unsicheren Produkten

Server Implementierungen von Client/Server Architekturen dürfen sich nicht auf 'Zusagen' des Client verlassen. Client Code kann ausgetauscht oder durch Schadsoftware ersetzt werden.

Vertraue keinem Mobile- oder Web Client, dass er ...

  • definierte, vertrauenswürdige Daten verschickt. 'Jeder' kann JavaScript dahingehend anpassen, dass beliebige Daten verschickt werden.

  • Aktionen ausführt die er nicht ausführen will. 'Jeder' kann einen Chat-Client implementieren, der einen 'delete this picture' oder 'don't copy this movie' Befehl ignoriert.

  • nur Server-Requests absetzt, die in seinem User-Interface spezifiziert sind. Rechnen sie damit, dass das komplette Server API angesprochen wird.

Implementieren sie robuste Server Security und vertrauen sie dem Client Code so wenig wie möglich, selbst wenn der (echte) Client von ihrem Team, entwickelt wurde.

Organisatorische Verantwortlichkeit

Obwohl in der Regel viele Organisationen bereits Strukturen für Cyber Security geschaffen und über die verschiedenen Ebenen bereits verantwortliche Personen installiert haben, gibt es schnell Irritationen wenn es um den Produkt Entwicklungsprozess geht.

  • Wer bestimmt, welche übergeordneten Risiken wichtig sind, und wie diese in die Produkt Anforderungen einfließen.
  • Wie stellen sie fest, dass diese Anforderungen organisatorische Risiken adressieren, zumal in der Regel nur wenige Cyber Security Spezialisten sowohl die organisatorische als auch die technische Ebene verstehen.
  • Wer ist verantwortlich für die Umsetzung der Anforderung durch die Entwickler.
  • Wer ist verantwortlich für den Umgang mit einem Security-Breach.


Verständnis wie ein Kunde die Software einsetzt

Wie oben erwähnt, sollte das Ziel sein, dass die Software nicht nur wie geplant, sondern ausschliesslich wie geplant eingesetzt wird. Dazu muss der Hersteller wissen, wie ein Kunde die Software in einem Umfeld verschiedener, sich schnell verändernder Anwendungsszenarien einsetzt. Verschiedene Faktoren können hierbei eine Rolle spielen.

  • Hat der Kunde ein unterschiedliches Trust-Modell als sie? Kann oder will er keine Verschlüsselung bei der Datenübertragung einsetzten, obwohl ihr System das voraussetzt.
  • Der System-Operator ist keine vertrauenswürdige Person! Ihr System ist jedoch nicht gegen Insider-Angriffe geschützt.
  • Ihr Kunde kann keine Daten in der Cloud ablegen
  • Der Zugang zu den Systemen in der Kundenumgebung ist nicht geschützt. Potentielle Kontrahenten haben Zugang zur Hardware auf dem ihr System läuft.


Vorsorge

Internet Security sollte im Software Entwicklungsprozess von Anfang an berücksichtigt werden. Die Integration von Cyber Security in die initiale Phase des Software Entwicklungsprozess ist die Voraussetzung, dass die Software ausschliesslich so läuft wie es vorgesehen ist.


Leistungs-Portfolio

Neben dem Schwerpunkt Security bei der Software- und Produkt-Entwicklung bietet die ITXperts Service-Leistungen in folgenden Bereichen an:

Gateway Security

  • Firewall/VPN
  • SSL-VPN
  • Intrusion Detection/Prevention System
  • Load-Balancer
  • Router/Switches

Endpoint Security

  • Viren-/Malware-Filter
  • Applikationskontrolle
  • Datenträger-Verschlüsselung
  • Device-Management

Content Security

  • HTTP-/HTTPS-Filter/Proxy
  • Mail-/Spam-Filter
  • E-Mailsignatur und -verschlüsselung
  • Gateway-Anti-Malware

Monitoring & Alerting

  • Monitoring von IT Security Umgebungen und Systemen
  • Alarmierung per E-Mail/SMS
  • Security Information und Event Management (SIEM)

Mobile Security

  • Absicherung mobiler Geräte (Mobile Phones, Tablets, …)
  • Mobile Device Management
  • Sichere WLAN-Anbindung

Authentifizierung

  • Zertifikatsbasierte PKI-Lösungen
  • Network Access Control
  • Schutz vor unauthorisierten Geräten
  • Client Compliance Check