Mittwoch, 26. April 2023

Resilienz von Systemen

Resillienz von Systemen ist aus meiner Sicht ein wichtiges Thema , gerade in einem Bereich in dem Systeme in sog. Kritischen Infrastrukturen befinden, bei vernetzten Systemen ist nicht nur das jeweilige System zu betrachten sondern auch das gesamte Netzwerk von Systemen. Jetzt stellt sich die Frage wie kann man diese Resillienz erreichen.

Ich möchte hier folgende Robustheit‘s Axiome anführen und versuchen diese zu erklären.

„Das deutlichste Anzeichen für ein anfälliges System oder eine anfällige Installation ist ein unzureichendes Systemverständnis, das sich in einer fehlenden Dokumentation äußert.“

Unzureichendes Verständnis des betrachteten System angezeigt durch das Fehlen eines genauen, dokumentierenden Systemmodells führt zu fragilen Systemen , die von der Betriebsführung im Blindflug durchgeführt werden muss. Auch die Weiterentwicklung und Erweiterung des Systems ist schwierig wenn man die Auswirkung von Änderungen auf das System nicht abschätzen kann.

Ein nicht vollständig verstandenes System kann nicht zuverlässig sein und stellt ein großes Problem für die Wartung dar. Unzureichendes Systemverständnis und fehlende Dokumentation führen mit ziemlicher Sicherheit zu unangenehmen Überraschungen, insbesondere bei Systemen mit langer Lebensdauer. Wenn die Struktur und das Verhalten eines Systems unbekannt oder nur teilweise bekannt ist, ist es unmöglich, Ausfälle vorherzusagen.

„Je länger die voraussichtliche Lebensdauer eines System‘s ist , desto höher sind die Anforderungen an die Robustheit“

Natürlich je länger das System bestehen soll , desto wichtiger wird das das Thema , gewisse Fragestellungen werden wichtiger wenn das System länger 10 Jahre bestehen soll. Es kann auch durchaus bei der Entwicklung ein wenig zu kosten der Entwicklungsgeschwindigkeit geht. Die Auswahl der Technologie ist hier natürlich mit mehr Bedacht zu wählen.

Aspekte und Kriterien des Systemmodells

Ein Systemmodells kann verschiedenen Zwecken dienen. Es kann als Teil des Systemdesigns und der Spezifikation verwendet werden, Ein Modell ist eine abstrahierte Beschreibung , reduziert auf das Wesentliche, das für das Systemverständnis notwendig ist. Ziel ist es, das absolut notwendige Minimum an Dokumentation zu erstellen, das es ermöglicht, das System zu verstehen- auch von jemanden ohne Erfahrung vor Ort. In unserem Fall umfassen zwei Arten von Modellen unterschiedliche Bereiche, von denen einige trivial sind, andere sehr kompliziert werden können:

Ein strukturelles Systemmodell unterteilt das betrachtete System in kleinere Teile und identifiziert die Wechselwirkungen zwischen Subsystemen und Schnittstellen zu anderen Systemen.

Eine Ausführungsumgebung beschreibt die beteiligten Prozesse , einschließlich logischer, physischer und organisatorischer Einschränkungen.

Die Kriterien für das Systemmodell sind folgende:

Es existiert ein dokumentiertes Systemmodell.
Das Systemmodell ist auf ein Minimum reduziert.
Das Systemmodell ist verifizierbar.
Das Systemmodell ist genau.
Das Systemmodell wird so dokumentiert, dass auch unbeteiligte Personen ohne Erfahrung vor Ort (z.B. unabhängige Berater oder Mitarbeiter aus einer anderen Abteilung oder einer anderen Einrichtung) das Modell verstehen und verifizieren können.
Das Systemmodell ist in das Change Management integriert.

Bau eines strukturellen Systemmodells

Um ein System zu verstehen , müssen seine Subsysteme, Abhängigkeiten und Schnittstellen zu anderen Systemen bekannt und dokumentiert sein.

Hardware Inventarisierung

Es existiert ein Hardwareinventar, das anhand der realen Installation überprüft werden kann. Die Hardware-Inventur enthält Einträge für alle physischen Systeme und Komponenten, die durch den Umfang der Spezifikation abgedeckt sind. Alle Einträge sind auf dem neuesten Stand und soweit möglich vollständig. Der Systembestand ist für alle autorisierten Mitarbeiter zugänglich, die Bestandsinformation verwenden müssen. Die Systeminventur ist in das Änderungsmanagement integriert.

Software Inventarisierung

Das Inventar der Anwendungen und Dienste spezifiziert alle Anwendungen und Dienste, die erforderlich sind, um die angegebene Funktionalität des betrachteten Systems zu erfüllen. Alle Anwendungen und Dienste sind mit den Hardware-Systemen, auf denen sie gehostet werden, verknüpft. Für alle verteilten Anwendungen und Dienste sind die technischen Details des Datenflusses festgelegt. Die Auflistung der Anwendungen und Services ist in das Change Management integriert.

Netzwerkkonfiguration

Es existiert ein Dokument zur Netzwerkarchitektur, das die Netzwerkarchitektur, Endpunktsysteme, Segmentierung und Zonierung, Firewalls, Gateways und Schnittstellen zu anderen Netzwerken beschreibt. Das Dokument zur Netzwerkarchitektur ermöglicht die Identifizierung des technisch möglichen Verkehrs von und zu Endpunktsystemen, Access Points, Gateways und Schnittstellen. Das Dokument zur Netzwerkarchitektur ermöglicht das Bestimmen der Bandbreite, Latenz und QoS-Eigenschaften möglicher Kommunikationswege. Das Dokument zur Netzwerkarchitektur ist in das Änderungsmanagement integriert.

Menschen, Richtlinien, Verfahren

Personen, die mit dem betrachteten System und seinen Komponenten interagieren müssen oder können, werden zusammen mit Verantwortlichkeiten und Pflichten dokumentiert. Die Festlegung der Verantwortlichkeiten erfolgt über ein rollenbasierten Konzept, das den Benutzergruppen zuordenbar ist. Wiederkehrende Aufgaben werden als Standardanweisungen formalisiert. Das People und Policies Dokument listet die Anforderungen an Ausbildung und Zeiteinteilung auf, die erfüllt sein müssen, um die festgelegten Aufgaben angemessen zu erfüllen. Alle Personen , die mit dem System interagieren, sind nach Name, Abteilung und Unternehmen identifizierbar (im Falle von Lieferanten und Auftragnehmern). Die Verfahren sind dokumentiert und überprüfbar. Das Personen- und Verfahrensdokument (oder die Datenbank) ist in den Change-Management-Prozess integriert.


Fazit:

Ich bin der Meinung wenn diese Punkte durchgeführt werden ist der erste Schritt zur Resilienz gemacht. Es gibt noch weitere Punkte die vorgenommen werden können um den „Robustheits-Reifegrad“ zu steigern. 

Donnerstag, 30. März 2023

Enterprise Architektur und SAP

 Die große Frage die immer am Anfang steht ist was ist Unternehmensarchitektur?

Wenn sie zehn verschiedene Leute fragen erhalten sie zehn verschiedene Antworten. Jedes Unternehen hat eine Architektur, ob es sich dessen bewusst ist oder nicht.

Jedes Unternehmen besteht aus Elementen, die es ausmacht.

Unternehmensziele, Stakeholder, Daten, Anwendungen, Server, Standorte für die Notfallweiderherstellung usw.

Die wichtigste Frage ist das „Wie“

Die Antwort auf die Frage „Wie“ beginnt damit, dass Sie feststellen, wo ihr Unternehmen jetzt steht. Bei der Enterprise Architektur geht es darum, durch die Modellierung von Prozessen, Fähigkeiten, Ressourcen, Daten und technologischen Ressourcen, die unser Unternehmen aufrechtzuerhalten, anschaulich zu beschreiben, wo sich unser Unternehmen heute befindet, und zwar in einer Weise, die von mehreren Beteiligten verstanden wird. Das wird durch den mutliperspektivischen Ansatz erreicht, den die Enterprise Architektur bietet. Dieser Prozess wird erweitert , um die Vision der Zukunft des Unternehmens zu erfassen, wiederum durch die Modellierung der oben genannten Elemente. Die Unternehmensarchitektur ermöglicht auch die Modellierung von Golf-Zwischenzuständen zwischen dem aktuellen und dem zukünftigen Zustand unseres Unternehmens.

Die Unternehmens-Architektur bietet eine solide Grundlage für Planung, Analyse, Entscheidungsfindung und Strategieumsetzung.  Sie ist vergleichbar mit einem Puzzle , bei dem man zunächst herausfindet, welche Teile derzeit zur Verfügung stehen und wie sie zusammenpassen; danach entscheidet man, welche Teile noch fehlen, um das Puzzle, das man sich vorstellt, zu vervollständigen; dann macht man sich daran, diese Teile zu erstellen. 

Dies ist das Wesen der Unternehmensarchitektur und unterscheidet sie von der bloßen Entwicklung von Systemen: 

Das Unternehmen ist das Sytem!

Wie bei allen geschäftlichen und IT-Bestrebungen ist es wichtig , den Wert zu verstehen, der aus der Entwicklung einer Unternehmensarchitektur abgeleitet werden kann. Es gibt „sieben“ Gründe, warum die Entwicklung einer Unternehmensarchitektur einer entscheidender Schritt für jedes Unternehmen ist:

1. Gewinnen Sie einen Enblick in den aktuellen Zustand Ihres Unternehmens
2. das Unternehmen in die Lage zu versetzen, die Lücke zwischen dem Ist-Zustand und dem angestrebten Soll-Zustand zu messen
3. die Geschäftsprozesse und die sie unterstützenden IT-Prozesse genau aufeinander abzustimmen
4. Schnellere Umsetzung von unternehmensweiten Änderungen durch etablierte Standards und Governance
5. größere Verantwortlichkeit für und Kontrolle über IT-Kosten innerhalb des Geschäftskontextes
6. Eine gemeinsame Sprache für die unternehmensweite Entscheidungsfindung, insbesondere bei IT-Investitionen
7. Schaffung einer klar definierten und übersichtlichen IT-Landschaft.

Mir persönlich ist wichtig das die SAP Architektur in die Enterprise Architektur eingebunden ist den SAP ist ein Teil des Unternehmens ist.

Deswegen bietet es sich an das die Architektur mit einem gemeinsamen Framework durchgeführt wird.
TOGAF z.B bietet sich hier an.

Das SAP Enterprise Architektur Framework

Das SAP Enterprise Architektur Framework wurde im Jahr 2007 offiziell eingeführt und basiert auf dem The Open Group Architektur Framework (TOGAF).

Ähnlich  wie TOGAF bietet SAP EAF einen Rahmen für einen iterative Prozess für das gesamte Unternehmen, der speziell auf die SAP-Methodik abgestimmt ist. Das SAP EAF beschleunigt die Architekturerstellung durch die Bereitstellung von Best Practices und Artefakten, die für die Lösungen des Unternehmens relevant sind und normalerweise von Grund auf neu entwickelt werden müssten. Darüber hinaus bietet es die Struktur , um die Architektur so zu speichern und zu ordnen, dass sie sich am besten für SAP-Lösungen eignet und auch für die Darstellung der Architektur gegenüber den Beiteiligten geeignet ist.

SAP EAF ermöglicht es Unternehmen, durch maßgeschneiderte Implementierungen, die sich auf kleinere , schnelle Projekte konzentrieren , geschäftliche Veränderungen voranzutreiben.

Das SAP EAF umfasst insbesondere die folgenden Elemente:

Accelerators- Blaupausen und Beispiele, die einen schnellen Start für spezifische EA-Szenarien ermöglichen.

Roadmaps - Helfen bei der Optimierung des Geschäftsnutzens und der Rentabilität ihrer IT-Investitionen, indem sie beschreiben, wie die Funktionen einer SAP-Lösung im Laufe der Zeit weiterentwickelt werden sollen.

Referenzarchitekturdokumentation - Ein Entwurf der empfohlenen Strukturen und Integrationen von IT-Produkten und -Services zur Bildung einer Lösung.

Templates - Modelle und Prototypen zur Strukturierung der einzelnen Schritte des EA-Prozesses

EA-Modellierungswerkzeuge - Werkzeuge wie der SAP Enterprise Arhcitecture Designer, die zur Erfassung von Architekturschichten und Anforderungen verwendet werden.


Das sind die wichtigen Werkzeuge um gute Entscheidungen treffen zu können sie helfen um ein „Bild“ zu bekommen das sogenannte „Big Picture“ .



Donnerstag, 23. März 2023

Schnittstellen nach ContentTypes bei SAP

 Hier sollen die Schnittstellentechnologien aufgeführt werden, sämtliche neue Schnittstellen, die auf SAP-Anwendungen bereitstellen, werden über den SAP API Business Hub veröffentlicht, da SAP eine einheitliche Strategie in der Bereitstellung verfolgt.

SAP API Business Hub

Dort finden Sie folgende Inhalte, die nach Kategorien (CONTENT TYPES) dargestellt werden:

API:

Schnittstellen, die von unterschiedlichen SAP-Anwendungen auf Standards wie REST (Representational State Transfer), OData und SOAP basieren.

Integration:

Fertige Schnittstellenpakete, die Sie direkt kopieren und aktivieren können. Momentan stehen Packages für SAP Cloud Integration  und SAP SuccessFactors Integration Center Packages bereit.

Events:

Ereignisse, die innerhalb von SAP-Anwendungen ausgelöst und verarbeitet werden können. Solche Ereignisse werden typischerweise über Nachrichten in Warteschlagen beretigestellt und können so in die Folgeverarbeitung integriert werden. Im SAP API Business Hub werden die Schemata bereitgestellt und dokumentieren den Aufbau dieser Nachrichten.

CDS Views

CDS Views beschreiben eine Datenbanksicht, die über das OData-Protokoll Zugriff auf SAP-Systeme ermöglichen, die auf den SAP-HANA-Datenbank basieren.

Business Processes

Die Kategorie Business Process beschreibt die Gesamtsicht auf die Integration verschiedener SAP-Cloud-Anwendungen untereinander und visualisiert das Verständnis im Prozessablauf. Es handelt sich dabei um die Prozesse Lead to Cash, Soruce to Pay , Hire to Retire und Travel to Reimburse.

Workflow Management

Die Kategorie Workflow Management enthält fertige Vorlagen für die Anlage von Processes, Business Rules und Visibility Scenarios als Teil von SAP Intelligent Business Process Management (SAP Intelligent BPM) in der SAP Business Technology Platform.


Es gibt auch noch weitere Bibliotheken z.B.:

IDocs finden Sie über Transaktion WE60

BAPIs finden Sie über Transaktion BAPI

Enterprise Services


Herausforderungen für das Schnittstellenmanagement ergeben sich nicht nur aus hybriden Landschaften, sondern auch ganz allgemein aus der Integration verschiedener Anwendungen. Klassische Fragestellungen sind z.B.: Welches Werkzeug ist für meinen Anwendungsfall der richtige ?

Wie betreibe ich meine Integrationsplattform? Wie sichere, kontrolliere und stürme ich die Integration?

Mitarbeiter , die im Umfeld Integration tätig sind, müssen eine Vielzahl von Aspekten im Blick behalten und sich permanent weiterbilden.

Sonntag, 4. Dezember 2022

Container das Allheilmittel oder etwa doch nicht?

Der Container-Zug ist schon einige Jahre unterwegs - aber er ist nach wie vor Lichtjahre davon entfernt , die Universal-Lösung für alle IT-Probleme und Optimierung zu sein.

Viele Beratungsunternehmen preisen das nach wie vor völlig schmerzfrei an.

Container sollen doch alles verbessern, optimieren, beschleunigen ? Oder nicht?

Allgemeingültig betrachtet ganz sicher nicht . Diese Aussagen kommen von einem Spezialisten im RZ-/Cloud-/Großkunden-Bereich für  High-availability Cluster, Software Defined Storage, Verzeichnisdienste sowie hochskalierbare und vollautomatisierte Container-Cluster-Infrastrukturen Bereich.

Wenn man sie denn irgendwie versions-übergreifend in einem Sack mit tausenden Schrauben - deren Anzahl , Größe und Form sich im schnellen Release-Zyklen-Wahnsinn  permanent verändern - auch reproduzieren könnte. Das ist in Produktivumgebungen ein relativ sinnloses Zeit- und damit Geldverbrennungunterfangen, mit dem selbst OpenShift zu kämpfen hat.

Der Container-Hype läuft ungebremst weiter. Er wächst und skaliert sich selbst in unermessliche Komplexitätsgefilde. Und vor allem bleibt er die Gelddruckmaschine Nummer 1 aktueller IT-Landschaften. 

Das Buzzword Container stellt nach wie vor allerorten einen Freibrief für Kompatibilitätsbrüche dar, für die Architekten und Entwickler noch vor wenigen Jahren geteert und gefedert worden wären- Container-„Standards“ hin oder her.

Die ganzen kleinen Blackbox-Klötzchen - sprich die Container bzw die Pods des Control Planes und weiterer Komponenten wie Pipelines - einfach irgendwie funktionieren. 

Und wenn nicht … vielleicht funktioniert ja das nächste Klötzchen. Bis zum nächsten Upgrade. Sind ja eh meist nicht mal 100 Tage bis zum nächsten Kubernetes-Major-Release und vielleicht nur die Hälfte bis zur nächsten Pipeline - oder Mesh-Release, also was soll‘s….

Ist das wirklich der richtig Ansatz für Systeme die länger bestehen sollen??

Das US-Department of Defense (DoD) hat mittlerweile erkannt , dass es dringend notwendig ist, den ständigen, agil befeuerten Renewal-Wahn und der permanenten Verkomplizierung einen Riegel vorzuschieben.

Was ist mit der UNIX Regel Keep it stupid simpel ??

Bereits Ende 2018 veröffentlichte das DoD einen Draft namens Detecting Agile Bullshit (das ist absolut kein Scherz, so lautete der offizielle Name). 

Sein Ziel: das sinnlose Verbrennen finanzieller Ressourcen (wie in den konzepbedingt stark agil-„lästigen“ DevOps-/Containerisierungsbereichen) drastisch einzuschränken.

Siehe auch:

https://thenewstack.io/the-u-s-department-of-defense-on-how-to-detect-agile-bs/


Sowie ebenfalls als Direktlink:


https://media.defense.gov/2018/Oct/09/2002049591/-1/-1/0/DIB_DETECTING_AGILE_BS_2018.10.05.PDF


Im Grunde genommen spiegelt die Aufteilung in immer komplexer werdende, kleine und extrem kurzlebige Software-Häppchen auch die Entwicklung wider, die sich in unserer Gesellschaft - leider, muss man sagen - mehr und mehr erkennen lässt.


Häppchen müssen stets mundgerecht serviert werden, egal ob‘s hier und da mal nicht so schmeckt oder passt, wie es soll. 


Schnell - Schneller am Schnellsten


Das ist das Motto in der Software-Entwicklung die frage stellt sich hier ob nicht ein konzipieren und überdenken der Komponenten durchaus Sinn macht?


Aber dieser Geschwindigkeitswahn spiegelt sich in der Gesellschaft wieder , das alles so aufbereitet werden muss , dass auch Rezipienten mit einer maximalen Aufmerksamkeitsspanne von 30 Sekunden nicht sofort gelangweilt sind.


…die nach wie vor schmerzhafte Realität…


Egal , wie gut die Tools sind : Leider zeigen fast alle bisherigen Erfahrungen, dass er allerwichtigste Teil gern komplett übersprungen wird - nämlich der zwingend erforderliche und sehr sorgfältige durchzuführende Evaluierungsprozess, dessen Ergebnis darüber entscheidet, ob eine Container/Microservice-Landschaft für das eigene Unternehmen bzw bestimmte Produktionsbereiche überhaupt Sinn macht.


Oft wurden bestehende nicht Containerisierung  sehr gut funktionierende - Plattformen aufgrund von Präsentationen von Beratungsfirmen bezüglich wir skalieren mal auf Knopfdruck der kostspieligen Container-Abrissbirne übergeben.


Die traurige Bilanz, die selten in den Werbeblasen der Consulting-Unternehmen auftaucht , ist: Bis heute hat ein gutes Drittel der Firmen ihre Projekte zur Containerisierung in Teilen bzw. komplett wieder eingestellt. Und gerade mal ein Viertel der Firmen , die sich überhaupt mit Containern beschäftigen, setzen diese auch halbwegs produktiv ein. Für die anderen gilt: zu teuer, zu aufwendig, auf bestehende Strukturen nicht effizient anwendbar. Für ein zuvor gut funktionierendes Unternehmen kann eine im Vorfeld nicht sorgfältig evaluierte Umstellung auf Container das komplette finanzielle Aus bedeuten.


…und die Komplexitätsfalle


Ein zwangsläufiges Ergebnis , werden den Unternehmen doch oft - wie auch in der Vergangenheit das tolle Cloud-Thema - Technologien zu einem Zeitpunkt als reif verkauft , zu dem sie es lange noch nicht sind. Das Stichwort an dieser Stelle sei ein in einigen Unternehmen oft auf Biegen und Brechen durchgezogener Einsatz des permanently moving targets Vanilla Kubernetes . Noch dazu mit (den dann zwingend benötigten und) zahlreichen, angeflanschten 3rd-Party-Produkten wie Pipelines und Meshes. Natürlich mit - zu Kubernetes -meist völlig asynchronen Produktzyklen ebendieser Produkte.


Daher gilt nach wie vor bzw aktuell umso mehr: Der wichtigste Punkt vor jeder strategischen „Wir containerisieren jetzt einfach mal „ Entscheidung besteht darin, einfach mal das Hirn einzuschalten und dann eine sehr , sehr sorgfältige Evaluierung vorzunehmen, ob Container/Microservice-Landschaften für eine Optimierung des eigenen Unternehmens überhaupt geeignet sind.


Es sei denn, man hält sprechende Gummibärchen in der Werbung für echt.

Dann kann man sich diesen Punkt schenken.


… leider noch mal die traurige Realität


Umstrukturierungen waren in der Vergangenheit erfahrungsgemäß in den wenigsten Fällen tech-driven motiviert. Oder gar sorgfältig vorab evaluiert. Da geht es mehr um möglichst farbenfroh präsentierten Nonsens des jeweiligen Consulting-Unternehmens.


Und da wären wir wieder: Digitalisierung. Nachhaltigkeit. Container in der Cloud. Cloud-Native, KI und Machine-Learning-Systeme.


Na klar!


Irgendwann setzt die Realität und mit ihr die Ernüchterung ein. 

Und die Tech-,HR-und Buchhaltungsabteilungen stellen unter dem Strich fest, dass - neben der nach wie vor bedenklichen „Sicherheit „ von Container-Clustern in der Cloud - deutlich mehr Budget , Personal und Arbeitsstunden verpulvert wurden, als es die wunderschönen PowerPoint-Präsentationen doch ursprünglich gepriesen hatten. 

Aber dafür steckt das Unternehmen mittlerweile wenigstens im stahlharten Vendor-Lock 

des immer teurer werdenden Container-Cloud Hosters.



I-a-a-S, P-a-a-S, F-a-a-S , Serverless,NoOps Nach dem Hype ist vor dem Hype


Hey Leute wie wärs zur Abwechslung mal mit B-a-a-S: Brain as a Service?




Fazit: 


Fakt ist Conainer Cluster können mittlerweile viel . Richtig viel.


Aber eben nach wie vor nicht alles . Und sie passen nicht für jeden Einsatzzweck.


Die fünf Schlüsselworte sind und bleiben: Vorher sehr, sehr sorgfältig evaluieren . Punkt 

Freitag, 12. August 2022

Meine Gedanken zum Endpoint - Schutz

 Endpunkte sind alle Elemente eines IIoT-Systems, die sowohl Rechen- als auch Kommunikationsfähigkeiten haben und funktionale Fähigkeiten zur Verfügung stellen. Dabei kann es sich um Edge-Geräte, Kommunikationsinftastruktur, Cloud-Server oder irgendwas dazwischen handeln. 

Jeder Endpunkt hat unterschiedliche Anforderungen und Hardware-Einschränkungen, die sich auf das erreichbare Schutzniveau auswirken. Die Sicherheitsmechanismen und- Techniken sollten auf die Endpunkte je nach ihren spezifischen Funktion und ihren Sicherheitsanforderungen angewendet werden.



Endpoint Protection stellt die Verfügbarkeit, Vertraulichkeit und Integrität der vom Endgerät ausgeführten Funktionen sicher.

Die Endpoint Protection sollte mindestens diese Sicherheitsfunktionen berücksichtigen:


Endpoint Physical Security bietet physischen Schutz des Endpunkts mit Mechanismen zum Schutz vor Manipulationen und Diebstahl, um unkontrollierte Änderungen oder das Entfernen des Endpunkts zu verhindern.

Endpoint Root of Trust bietet eine Grundlage für die Sicherung anderer Funktionen am Endpunkt, von der Hardware bis hin zu Anwendungen einschließlich Firmware, Virtualisierungsschicht , Betreibssystem, Ausführungsumgebung und Anwendung. Außerdem bietet sie Vertrauen in die Identität des Endpunkts.

Die Identität eines Endpunkt basiert auf den inhärenten Eigenschaften eines Endpunkts, die ihn von anderen Endpunkten unterscheiden. Die Identität muss mit Beweisen oder Zeugnissen untermauert werden, die die Identitätsbehauptung bestätigen und als Referenzen bezeichnet werden.

Endpoint Integrity Protection stellt sicher, dass sich der Endpunkt in der Konfiguration befindet, die für eine vorhersehbare Ausführung seiner Funktionen erforderlich ist.

Die Endpoint Access Control stellt sicher, dass eine ordnungsgemäße Identifizierung , Authentifizierung und Autorisierung durchgeführt wird, bevor Ressourcen oder Dienste gewährt werden.

Endpoint Secure Configuration and Management steuert die Aktualisierung von Sicherheitsrichtlinien und- Konfigurationen auf dem Endgerät, einschließlich Upgrades und Patches für bekannte Sicherheitslücken.

Die Überwachung und Analyse von Endgeräten umfasst Integritätsprüfungen, die Erkennung von bösartigen Nutzungsmustern, Denial-of-Service-Aktivitäten, die Durchsetzung von Sicherheitsrichtlinien und Analysen, die Sicherheitsleistungsindikatoren verfolgen.

Endpoint Data Protection bietet Kontrollen zum Schutz der Integrität, Vertraulichkeit und Verfügbarkeit der Daten.

Endpoint Security Model and Policy regelt die Implementierung von Sicherheitsfunktionen auf dem Endpunkt.

Sicherheitsbedrohungen und Schwachstellen auf Endgeräten

Endgeräte haben viele potenzielle Schwachstelle, die für böswillige oder unbeabsichtigte Fehler anfällig sind.


Wie in der Abbildung dargestellt gibt es in jedem der folgenden Bereiche ein breites Spektrum an Bedrohungen und Schwachstellen in verschiedenen Aspekten der Endgeräte.

1 => Änderungen an Hardwarekomponenten und Konfiguration

Die Integrität der Hardware muss während des gesamten Lebenszyklus des Endgeräts gewährleistet sein, um unkontrollierte Änderungen an den Hardwarekomponenten zu verhindern. Eine mögliche Schwachstelle der Hardware ist die Aneignung eines Teils der Hardwareressourcen. Der Endpunkt muss in der Lage sein, sich vor unbefugtem Zugriff und der Vereinnahmung von Schlüsselressourcen wie Speicher, Verarbeitungszyklen und privilegierten Verarbeitungsmodi zu schützen.

2,3 => Abfangen oder Überschreiben des System-Boot-Prozesses

Der Endpunkt-Boot-Prozess kann durch Änderung der Firmware-Schnittstelle zwischen der Hardware-Plattform-Firmware und dem Betriebssystem, wie z. B. dem Unified Extensible Firmware Interface (UEFI) oder dem Basic Input/Output System (BIOS), verändert werden. Änderungen an den Bootloads sind eine weitere Bedrohung, da sie die Integrität des Endgeräts gefährden könnten, indem sie nicht autorisierte oder unsichere Versionen des Betriebssystems starten. Angriffe auf dieser Ebene könnten auch den normalen oder sicheren Startvorgang des Endgeräts, die Erkennung aller Hardwareressourcen und die Schaffung einer soliden Vertrauensbasis für die Sicherung anderer Komponenten beeinträchtigen.

4,5 => Kompromisse bei Gastbetriebssystemen, Hypervisoren und Separationskerneln:

Diese Softwareschichten steuern die Zuweisung von Hardwareressourcen an Anwendungen. Angriffe auf diese Schichten können das Verhalten des Systems verändern, die Umgehung von Sicherheitskontrollen durch Informationsflüsse ermöglichen, das Verhalten des Systems verändern, die Umgehung von Sicherheitskontrollen durch Informationsflüsse ermöglichen und Angreifern einen privilegierten Zugriff auf Hardware- und Softwareressourcen von Endgeräten ermöglichen. Sobald der Angreifer Zugang zu dieser Ebene erlangt hat, hat er die Möglichkeit, den gesamten Software-Stack zu beeinflussen und die auf dieser Ebene eingebauten Sicherheitskontrollen weiter zu verändern.

7,8,9 => Unerlaubte Änderungen an der Anwendungssoftware oder der offengelegten Anwendungsprogrammierschnittstelle (API)

Endpunktanwendungen sind häufig das Ziel von Malware oder eines Angreifers, der versucht, den Endpunkt zu infiltrieren und zu kompromittieren. Die Ausführung bösartiger Anwendungen oder das Überschreiben von Anwendungs-APIs kann sich negativ auf die Vertrauenswürdigkeit des Endpunkts auswirken. Offengelegte APIs sollten auch gegen Denial-of-Service-Angriffe geschützt werden, bei denen der ständige Zugriff von nicht autorisierten Benutzern die Reaktionsfähigkeit und den Zugriff auf die offengelegten Funktionen einschränken könnte.

10 => Schwachstellen des Verteilungsprozesses

Fehler und potenzieller bösartiger Code können auch als Teil des Bereitstellungsprozesses in den Endpunkt eindringen, z. B. durch falsche oder bösartige Installationsskripte, abgefangene Kommunikation oder nicht autorisierte Ersetzung eines Pakets auf dem Update-Server. Die Verringerung möglicher Endpunktkonfigurationen bei umfangreichen Endpunktbereitstellungen ist wichtig, um die Komplexität und die Schwachstellen im Bereitstellungsprozess zu reduzieren.

11 => Unerwünschte Änderungen an Endpunktdaten

Daten auf dem gesamten Endpunkt, von der Low-Level-Firmware bis hinauf zum Software-Stack, stellen einen wichtigen Bereich für Schwachstellen dar. Zu diesen Schwachstellen gehört der unbefugte Zugriff auf unternehmenskritische oder private Daten. Angreifer können das Verhalten des Systems durch Einspeisung falscher Daten beeinträchtigen. Denial-of-Service-Angriffe auf den Datenzugriff können die rechtzeitige und genaue Ausführung der Endpunktfunktionalität behindern, was zu kostspieligen Ergebnissen führt.

12 => Verstoß gegen das Überwachungs- und Analysesystem

Ein Angreifer könnte sich Einblick in die Funktionen des überwachten Systems verschaffen. Beispielsweise könnte ein Angreifer Überwachungsdaten so verändern, dass es so aussieht, als ob ein bestimmtes Ereignis nicht eingetreten wäre. Die Modifizierung der Sicherheitsprotokolle und Überwachungsdaten kann zu unentdeckten Schwachstellen oder gefährdeten Zuständen führen. Infolgedessen würden Angreifer von einer Abdeckungslücke profitieren, indem sie die Hardware und Software von Endgeräten kompromittieren oder nach einem Angriff Beweise für ihre Aktivitäten vernichten.

13 => Schwachstellen in Konfiguration und Management

Eine Schwachstelle im Konfigurations- und Verwaltungssystem kann durch eine unsachgemäße Zugriffskontrolle auf das Konfigurationsverwaltungssystem, das Einfügen nicht autorisierter Änderungen in das System oder die Beschädigung von Aktualisierungsnutzdaten entstehen. Aktualisierungen der Endgeräte sollten so geplant und verwaltet werden, dass die Zahl der verschiedenen Betriebskonfigurationen begrenzt und die Fragmentierung der Flotte verringert wird.

14 => Unkontrollierte Änderungen der Sicherheitspolicy und des Modells

Änderungen der Sicherheitspolitik und der abgeleiteten Sicherheitsmodelle stellen eine ernsthafte Bedrohung für das System und seine Endpunkte dar. Ebenso sind Schwachstellen in der Sicherheitspolitik ein Bereich, der von potenziellen Angreifern ausgenutzt werden kann.

15 => Schwachstellen in der Entwicklungsumgebung

Die Einführung von Schwachstellen während des Lebenszyklus der Softwareentwicklung kann die IIoT-Systeme anfällig für Angriffe machen. Diese Schwachstellen können während der Architektur, des Entwurfs oder des Schreibens des Codes eingeführt werden. Die Verwendung anfälliger oder bösartiger Bibliotheken oder nicht vertrauenswürdiger Entwicklungs-Frameworks kann dazu führen, dass sie in den resultierenden Code des IIoT-Systems aufgenommen werden.


Dienstag, 9. August 2022

Meine Gedanken zum Security Framework

Industrielle Internet-of-Things-Systeme (IIoT) verbinden und integrieren verschiedene Arten von Steuerungssystemen und Sensoren mit Unternehmenssystemen, Geschäftsprozessen, Analysen und Menschen. Diese Systeme unterscheiden sich von herkömmlichen industriellen Steuerungssystemen, indem sie umfassend mit anderen Systemen und Menschen verbunden sind und so die Vielfalt und den Umfang der Systeme erhöhen.

In der Vergangenheit beruhte die Sicherheit vertrauenswürdiger Industriesysteme auf der physischen Trennung und Netzwerkisolierung anfälliger Komponenten sowie auf der Unklarheit der Entwurfs- und Zugangsregeln für kritische Kontrollsysteme. In den letzten Jahrzehnten haben die zunehmend erschwingliche Rechenleistung, die allgegenwärtige Konnektivtät und die sich entwickelnden Datenanalysetechniken die Tür zur Konvergenz von Kontrollsystemen, Geschäftssystemen und dem Internet geöffnet.  Diese Konvergenz begann im kleinen und wurde zunächst für die Fernüberwachung und -Verwaltung von Systemen genutzt, weitete sich aber schnell auf die Auswertung und Analyse von Betriebsdaten für Leistungskennzahlen zur Vorhersage von Ausfällen, die Optimierung von Flotten und die Durchführung von Software-Upgrades aus der Ferne aus. Diese Konvergenz hat die Produktivität, Effizienz und Leistung der bestehenden Betriebsprozesse erhöht und die Schaffung neuer Möglichkeiten zur Nutzung von Betriebsdaten ermöglicht, wodurch jetzt und in Zukunft ein Mehrwert für das Unternehmen entsteht.

Doch mit diesen Gewinnen sind auch Risiken verbunden. Unternehmen müssen diese Risiken ernst nehmen; um ihr IIoT-System vertrauenswürdig zu machen. Der Einsatz von Sensoren und Aktoren in einer industriellen Umgebung ist keine typische IT-Erfahrung , ebenso wenig wie Systeme, die viele Organisationen und Organisationssysteme umfassen. IT und OT priorisieren die Systemeigenschaften unterschiedlich. So ist beispielsweise die Ausfallsicherheit in der IT weniger wichtig als in der OT, und die Sicherheit ist in der OT weniger wichtig als in der IT wie in der Abbildung dargestellt.






Ein System der Industrie der Dinge (IIoT) weist durchgängige Merkmale auf, die sich aus den Eigenschaften seiner verschiedenen Komponenten und der Art ihrer Interaktionen ergeben. Die fünf Merkmale, die sich am stärksten auf die Vertrauensentscheidungen eines IIoT-Einsatzes auswirken, sind Sicherheit , Zuverlässigkeit, Widerstandsfähigkeit und Datenschutz. Diese werden als zentrale Systemmerkmale bezeichnet. Andere , z.B. Skalierbarkeit, Benutzerfreudnlichkeit, Wartungsfreundlichkeit, Übertragbarkeit oder Zusammensetzbarkeit, können im Allgemeine ebenfalls wichtig sein.

Durchgängige Sicherheit bei IIoT-Systemen

Die Implementierung eines Systems für das industrielle Internet der Dinge (IIoT) muss eine durchgängige Sicherheit vom Rand bis zur Cloud bieten. Dazu gehören die Härtung von Endgeräten, der Schutz der Kommunikation, die Verwaltung und Kontrolle von Richtlinien und Updates sowie die Nutzung von Analysen und Fernzugriff zur Verwaltung und Überwachung des gesamten Sicherheitsprozess.

Die Sicherheit von IIoT-Systemen sollte sich so weit wie möglich auf Automatisierung stützen, aber Menschen müssen in der Lage sein, mit der Sicherheitsimplementierung zu interagieren, um den Status zu überwachen, Analysen zu überprüfen, bei Bedarf Entscheidungen zu treffen und Änderungen und Verbesserungen zu planen. Brauchbare Verwaltungs- und Kontrollsysteme können zur Sicherheit beitragen, indem sie Bedienerfehler reduzieren.

Bausteine der Sicherheit

Die funktionale Sichtweise des Sicherheitrahmens umfasst sechs interagierende Bausteine. Sie sind in drei Schichten organisiert. Die oberste Schicht umfasst die vier zentralen Sicherheitsfunktionen:

Schutz der Kommunikation und Konnektivität
Sicherheitsüberwachung und -Analyse
Verwaltung der Sicherheitskonfiguration

Diese vier Funktionen werden durch eine Datenschutzschicht und eine systemweite Sicherheitsmodell- und Richtlinienschicht unterstützt.
Diese drei Schichten bilden die funktionale Sichtweise des Sicherheitsrahmens für das industrielle Internet.

Der Endpunktschutz implementiert Verteidigungsfunktionen auf Geräten am Netzwerkrand und in der Cloud. Zu den Hauptanliegen gehören physische Sicherheitsfunktionen, Cybersicherheitstechniken und eine zuverlässige Identität. Endpunktschutz allein reicht nicht aus, da die Endpunkte miteinander kommunizieren müssen und die Kommunikation eine Quelle der Anfälligkeit sein kann.

Der Kommunikations- und Konnektivitätsschutz nutzt die autorisierende Identitätsfunktion des Endpunktschutzes, um die Authentifizierung und Autorisierung des Datenverkehrs zu Implementierung.
Kryptographische Techniken für Integrität und Vertaulichkeit sowie Techniken zur Kontrolle des Informationsflusses schützen die Kommunikation und Konnektivität.

Sobald die Endpunkte geschützt sind und die Kommunikation gesichert ist, muss der Systemzustand während des gesamten Betriebslebenszyklus durch Sicherheitsüberwachung und -Analyse und kontrolliertes Sicherheitskonfigurationsmanagement für alle Systemkomponenten aufrechterhalten werden.

Diese ersten vier Bausteine werden durch eine gemeinsame Datenschutzfunktion unterstützt, die sich von den ruhenden Daten in den Endpunkten bis zu den bewegten Daten in der Kommunikation erstreckt und auch alle im Rahmen der Überwachungs- und Analysefunktion gesammelten Daten sowie alle Systemkonfigurations- und Verwaltungsdaten umfasst.

Sicherheitsmodell und -Governance regeln, wie die Sicherheit impementiert wird, und die Richtlinien , die die Vertraulichkeit, Integrität und Verfügbarkeit des Systems während seines gesamten Lebenszyklus gewährleisten. Es regelt , wie alle Funktionselemente zusammenarbeiten , um eine durgängige Sicherheit zu gewährleisten.

In weiteren Blogs werde ich die verschiedenen Bausteine und ihr Zusammenspiel genauer beschreiben.

Sonntag, 7. August 2022

Meine Gedanken zur Event based Architektur

 Wie in so vielen Dingen ist die Natur ein großartiger Architekt und hat sich diese Konzepte ausgedacht, lange bevor Entwickler und Architekten überhaupt daran gedacht haben.

Spinnen nutzen seit Jahrtausenden erfolgreich ereignisbasierte Konzepte. Ereignisgesteuerte Architekturen bieten die Möglichkeit, hocheffizient und in Echtzeit über relevante Änderungen informiert zu werden und darauf zu reagieren.

Die meisten Spinnen sind sehr effiziente Räuber. Sie setzen eine Vielzahl von Strategien ein, um Beute zu fangen. Die häufigste ist das verwenden klebriger Netze. Die Methode des klebrigen Netzes zum Fangen von Beute ist diejenige, an der wir hier interessiert sind.

Nachdem die Spinne ihr Netz gesponnen hat, wartet sie darauf, dass sich die Beute darin verfängt. Die Spinne spürt den Aufprall und den Kampf eines Beutetiers durch Vibrationen, die durch das Netz übertragen werden. Nachdem sie eine Vibration wahrgenommen hat, bewertet die Spinne , ob die Vibrationen von einem Beutetier oder von etwas anderem verursacht wird, das die Spinne nicht interessier, wie z.B. ein Blatt. Wenn sich ein Blatt in einem Spinnennetz verfängt , ignoriert die Spinne diese Veränderung in ihrem Netz einfach. Wenn jedoch ein Beutetier 


Die Beute oder das Blatt im Netz ist ein Ereignis - eine bedeutende Veränderung des Zustands des Spinnennetzes.

Das Spinnennetz ist der Even-Broker, der Ereignisse über die Schwingungen des Netzes transportiert.

Die Spinne ist der Event-Consumer. Sie wird über wesentliche Änderungen des Netzstatus informiert und reagiert entsprechend den erhaltenen Informationen.








Nun zu den Bausteine Event based Architektur

Eine Event based Architecture ist eine Softwarearchitektur, die Ereignisse als zentrales Mittel für die Interaktion zwischen ihren Softkomponenten verwendet. Die umfasst die Erfassung, Kommunikation, Verarbeitung und Persistenz von Ereignissen. Bei Softwarekomponenten in ereignisgesteuerten Architekturen handelt es sich in der Regel um Microservices, aber es können auch andere arten von Software-Systemen das ist der Vorteil der event-based Architektur.

Ereignisgesteuerte Architekturen stellen einen architektonischen Ansatz dar und basieren. Nicht auf einer bestimmten Programiersprachen. Tatsächlich kann eine ereignisgesteuerte Architektur in fast jeder modernen Programmiersprache erstellt werden. Ereignisgesteuerte Architekturen eignen isch hervorragend für verteilte Softwareumgebungen und ermöglichen eine minimale Kopplung. Diese natürliche Verbreitung von ereignisgesteuerten Architekturen wird noch dadurch verstärkt, dass ein Ereignis - eine signifikante Änderung - fast alles sein kann. Daraus ergibt sich eine große Anzahl von möglichen Ereignisquellen.

Komponenten von ereignisgesteuerten Architekturen

Ereignisgesteuerte Architekturen bestehen aus einer sehr begrenzten Anzahl von Architekturkomponenten wie folgt:

Event producer

Der Eignisproduzent ist die Quelle des Ereignisses und sendet das Ereignis aus, um anzuzeigen , dass es eingetreten ist. Der Ereignisproduzent weiß nur, dass das Ereignis eingetreten ist; er weiß nicht, wer sich für das Ereignis interessiert oder wie die interessierten Parteien auf die Information über das Ereignis reagieren werden.

Event broker

Der Ereignisbroker ist ein Vermittler, der Ereignisse vermittelt und verwaltet. Wenn man es mit den Definitionen sehr genau nimmt, kann der Broker sogar als optional betrachtet werden, wenn der Produzent ein. Ereignis-Broker eingesetzt werden.

Event consumer

Ereigniskonsumenten sind Softwarekomponenten, die wissen müssen, dass ein Ereignis eingetreten ist, und sich in der Regel beim Ereignisbroker anmelden, um über Ereignisse informiert zu werden.

Die Kombination dieser begrenzten Anzahl von Komponenten kann zu hochkomplexes und leistungsfähigen Architekturen führen, die sich durch extreme Skalierbarkeit und Flexibilität auszeichnen.

Daten und Events oder Events und Daten?

Früher gab es einen klaren Fokus auf Daten, z.B. zunächst in Backend-Systemen und später in Data Lakes. Die Quelle der Wahrheit war klar: Die Daten standen im Vordergrund, und die Landschaften und Systeme folgten einem datenorierten Modell. Im Rahmen dieses Modells wurden Teilmengen von Daten gesammelt, gespeichert und so effizient wie möglich abgerufen.

Mit dem Aufkommen der ereignisgesteuerten Architekturen hat sich der Schwerpunkt von Daten auf Ereignisse verlagert. Die Frage ist nun, wie weit diese Verlagerung gehen soll. Einige sagen, dass jetzt Ereignisse am wichtigsten sind und dass die Quelle der Wahrheit in erster Linie aus Ereignissen besteht, während Daten nur die zweite Quelle sind. Es gibt zwei Schulen von ereignisgesteuerten Architekturen: die ereignisprotokollbasierten Architekturen, die bis zu einem gewissen Grad Ereignisse an die erste und Daten an die zweite Stelle setzen , und die ereignisbrokerbasierten Architekturen, die immer noch Daten an die erste und Ereignisse an die zweite Stelle setzen.

Diese beiden Ansätze beruhen auf zwei unterschiedlichen Mechanismen, nämlich Pub/Sub und Event Streaming :

Ereignis-Broker-basiertes Messaging 


Dieser Ansatz stützt sich auf ein Veröffentlichungs- und Abonnementkonzept (Pub/Sub) , das auf Abbonnements beim Ereignisbroker aufbaut. Nachdem ein Ereignis eingetreten ist, wird es veröffentlicht, und die Abonnenten werden benachrichtigt. Ein Ereignisbroker übernimmt die Rolle des Vermittlers, führt aber kein Protokoll.

Nachdem das Ereigniss konsumiert wurde, gibt es in der Regel keine Möglichkeit, das Ereignis erneut abzuspielen. Die Quelle der Wahrheit sind bei diesem Ansatz also immer noch die Daten. Ereignisse können als Echtzeit-Auslöser für die Druchführung von Aktionen mit den Daten betrachtet werden. Bei diesem Ansatz sind sowohl Benachrichtigugnsereignisse als auch Datenereignisse möglich, wenn man es genau nimmt.

Ereignisprotokoll-basiertes Messaging


Dieser Ansatz stützt sich auf ein Ereignisprotokoll und schreibt alle auftretenden Ereignisse in dieses Protokoll. Die Ereignisse werden in der Regel für einen bestimmten Zeitraum im Ereignisprotokoll gespeichert.
Ereignisprotokoll ermöglichten es Ihnen, Ereignisse auszuspielen, um den Zustand Ihrer Anwendung anhand der protokollierten Ereignisse zu reproduzieren. Dies wird als Ereignisprotokollierung bezeichnet, wenn Sie nur Ereignisse protokollieren, oder als Event Sourcing, wenn Sie in der Lage sind, den Zustand der Anwendung aus diesen protokollierten Ereignisse zu reproduzieren. Bei diesem Ansatz gilt also: Ereignisse vor Daten . Die Ereignisse sind die Quelle der Wahrheit. Ereignisse müssen bei diesem Ansatz als relevanten Daten enthalten und daher Datenereignisse sein.

Bei den Daten und Ereignissen gibt es einen höchst interessanten Unterschied in Bezug auf das Alter. Daten altern gut, aber Ereignisse nicht. Das bedeutet, dass auch alte Daten immer noch die Quelle der Wahrheit sind, so dass die höchste Priorität darin besteht, keine Daten zu verlieren. So ist beispielsweise die Adresse eines Geschäftspartners , die vor Jahrzehnten in ein ERP-System eingegeben wurde, immer noch gültig , sofern sie nicht aktualisiert wurde. Bei Ereignissen ist das anders. Je jünger ein Ereignis ist, desto wertvoller ist es; je älter es wird, desto weniger Wert hat es. Bei ereignisgesteuerten Architekturen geht es in erster Linie darum, so schnell wie möglich auf Ereignisse zu reagieren. Dies gilt sowohl für Ereignisbroker als auch für eriegnissprotokollbasierte Ansätze.

Vorteile und Herausforderungen der ereignisgesteuerten Architektur


Vorteile:
Lose Kopplung
Extreme Skalierung und hoher Durchsatz
Inkrementelles Wachstum
Fehlertoleranz
Erkenntnisse in (real)Echtzeit
Geringe Latenz
Effiziente Abläufe
Vorhersage
Herausforderungen
Überwachung und Verständnis
Verfolgung und Fehlersuche
Maskierung von Fehlern
Sicherheit der Daten
Zentraler Ereignisbroker
Synchrone Abfrage