devSec(), Oktober 2022, Mario-Leander Reimer (@LeanderReimer, Principal Software Architect bei QAware).
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
OBSERVABILITY: DER SCHLÜSSEL FÜR THREAT DETECTION, MITIGATION UND ANALYSE
Ganzheitliches Monitoring ist eine entscheidende Komponente für den sicheren Betrieb von modernen, verteilten, Cloud-basierten Anwendungen. Nur so können Angriffe und unerlaubte Zugriffe frühzeitig erkannt, entsprechende Gegenmaßnahmen eingeleitet und forensische Analysen durchgeführt werden.
Das Pentaverat guter Observability sind Logs, Metriken und Traces; kombiniert mit Reporting und Alerting.
Dieser Vortrag diskutiert und zeigt sinnvolle Ansätze, Techniken
und Tools um sicherheitsrelevante Diagnosedaten in einem verteilten Anwendungs-Verbund einfach zu sammeln und anschließend schnell zu analysieren und bewerten zu können.
3. Überwacht ihr eure IT Systeme oder Apps auf
ungewöhnliches Verhalten oder Security Alerts?
ⓘ Start presenting to display the poll results on this slide.
4. War in den letzten 12 Monaten ein Cyber-Angriff auf
eure IT-Systeme oder Apps erfolgreich?
ⓘ Start presenting to display the poll results on this slide.
6. Observability
die Fähigkeit, die aktuellen Zustände eines Systems rein durch
Informationen aus Ausgabedaten, also Sensordaten, zu messen und
bewerten zu können
7. Observability ist nicht nur wichtig für den zuverlässigen und
effizienten Betrieb, sondern auch den sicheren Betrieb.
QAware | 7
Software Product
Quality
(ISO 25010)
● Modularity
● Reusability
● Analysability
● Modifiability
● Testability
Maintainability
● Confidentiality
● Integrity
● Non-repudiation
● Authenticity
● Accountability
Security
● Adaptability
● Installability
● Replaceability
Portability
● Co-existence
● Interoperability
Compatibility
● Maturity
● Availability
● Fault Tolerance
● Recoverability
Reliability
● Time Behaviour
● Resource Utilization
● Capacity
Efficiency
● Completeness
● Correctness
● Appropriateness
Functional Suitability
● Operability
● Learnability
● UI Aesthetics
● Accessibility
Usability
8. Die 3 Säulen guter Observability: Logs, Metriken, Traces.
QAware | 8
■ Logs: textuelle Aufzeichnung eines Events das zu einem Zeitpunkt stattgefunden hat
– Debug Logs, Access Logs, Audit Logs, Transaction Logs, …
– Beinhaltet einen Zeitstempel und eine Payload die zusätzlichen Kontext liefert
– Zahlreiche Formate: unstrukturiert, strukturiert, binär
■ Metriken: ein einfacher Zahlenwert der über ein Zeitintervall gemessen wird
– kann weitere Attribute wie einen Zeitstempel, Einheit, Name und KPIs enthalten
– Counter, Gauge, Meter, Histogram oder Timer
– Metriken sind strukturiert und häufig hierarchisch
■ Traces: zeigen den vollständigen Weg einer Anfrage durch ein verteiltes System
– jede Operation (ein "Span") hat eine ID, Namen, Dauer und zusätzliche relevante Attribute
Wichtig: Logs, Metriken und Traces müssen miteinander in Beziehung gesetzt werden um Probleme im
Betrieb ganzheitlich analysieren zu können.
9. Kernfunktionen moderner Observability Implementierungen
QAware | 9
■ Instrumentation: Messwerkzeuge die Telemetriedaten von Knoten, Containern, Services und
Anwendungen des Systems erfassen. Idealerweise Transparent innerhalb der Infrastruktur
■ Data Collection: sammeln, korrelieren, verarbeiten und speichern der Telemetriedaten. Ermöglicht
den schnellen Zugriff und die Suche für spätere Analysen
■ Reporting: Aufbereitung und Anzeige der verarbeiteten und korrelierten Telemetriedaten und
Zeitreihen auf Dashboards
■ Alerting: automatisches Alerting und triggern von Incident Responses (PagerDuty, ITSM, Slack)
basierend auf definierten Regeln.
■ Anomaly Detection: der Einsatz von Machine Learning Modellen ermöglicht die automatische
Priorisierung und Erkennung von (unbekannten) Problemen um das Alerting und den Incident
Response zu beschleunigen
10. CNCF Observability and Analysis - Logging
QAware | 10
https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category
Logging Collector /
Unified Logging Layer
Log Aggregation System
Das L im ELK Stack.
Erfassen, Parsen und
Anreichern von Logs
11. Structured Logging. Behandle deine Log Events als Daten
anstatt Plain Text.
QAware | 11
■ Was ist falsch an unstrukturierten Plain Text Logs?
– Viele unterschiedliche Formate. Parsen und Suchen ist mühsam, aufwändig und langsam.
– Wichtige Kontextinformationen sind Teil vom Text oder fehlen ganz.
■ Strukturierte Logs haben viele Vorteile.
– Easy Parsing. Damit einfache Weiterverarbeitung für BI und Analytics.
– Detailed Context. Unterstützung für zusätzliche Metadaten und Kontext Attribute
– Easy Search. Indizierung und Suche auf strukturierten Daten und Attributen.
– Easy Readability. Nicht nur für Maschinen, auch Admins und Devs können unter Einsatz der
richtigen Tools strukturierte Logs "lesen".
– Easy Transformation. Anonymisierung, Maskierung und Filterung von sensiblen Daten und
Attributen ist schnell und einfach umgesetzt (z.B. mit FluentD)
– Gute Unterstützung für Structured Logs in allen gängigen Frameworks und Technologien
– Üblicherweise als JSON (manchmal auch sowas wie Protobuf oder Avro)
13. Technische Metriken sind gut. Fachliche Metriken sind besser,
besonders zur Erkennung von Angriffen.
QAware | 13
■ Technische Metriken können ohne großen Aufwand von vielen Frameworks und Technologien
automatisch per Konfiguration exponiert werden.
■ Zur Bewertung ob ein Angriff oder eine abnormale Systemnutzung vorliegt braucht es jedoch häufig
zusätzliche fachliche Metriken, spezifisch für das jeweilige System.
■ Standard APIs ermöglichen solche fachlichen Metriken sehr einfach zusätzlich zu exponieren.
■ Der Fachbereich oder PO kennen die “normalen” Nutzer am besten. Fachlichen Metriken geben
zusätzlich Aufschluss über die Nutzung und Akzeptanz einer Anwendung.
– Fachliche Transaktionen pro Tag / Stunde
– Suchanfragen pro Nutzer pro Session
– Anzahl fehlgeschlagener Loginversuche
– ... et al.
14. CNCF Observability and Analysis - Tracing
QAware | 14
https://landscape.cncf.io/card-mode?category=observability-and-analysis&grouping=category
Wird ersetzt durch
OpenTelemetry
Easy-to-use
Distributed Tracing
Backend
Die Mutter aller Distributed
Tracing Systems
(created by Twitter)
Standard, APIs und SDKs
für Telemetry Daten
(Logs, Metriken, Traces)
Distributed
Tracing
Backend
15. Grafana based Observability Stack Architecture
QAware | 15
Ping Service
Pong Service
HTTP
GET
Traces
Traces
Metrics