Technical Security Summit 2018 in Frankfurt - Donnerstag - "Aktuelle Entwicklungen im Anwendungsbereich" by achimmertens

View this thread on steempeak.com
· @achimmertens ·
$3.38
Technical Security Summit 2018 in Frankfurt - Donnerstag - "Aktuelle Entwicklungen im Anwendungsbereich"
English Version (translated with "deepl.com") see below.

Diese Woche nehme ich an einer Training Session zur IT-Security teil.
Hier meine Notizen und Gedanken (ohne Gewähr):

# Softwarearchitektur
Beschreibt die Strukturen eines Softwaresystems durch Architekturbausteine und ihre Beziehungen und Interaktionen untereinander.
Entscheidungen am Anfang treffen, die man später nur wieder schwer ändern kann. Z.B. Desktop - oder Webanwendung, Monolith oder Microservices,…
Trend: agile Methoden

## Klassische Architekturmuster
* Software-Entwurfsmuster
* Architekturmuster (Organisation, Gesamtkonzept)
* Vorgehensmuster (Wie setze ich das Architekturmuster um (Wasserfall, Agil, Continuous Integration)?
### Architekturmuster - Überblick
* Chaos-zu-Struktur
* Interaktiv
* Adaptierbar
* Verteilte Systeme
### Pipes and Filters (Als Beispiel zum Architekturmuster "Chaos to Control"
Vorteile: 
* Neuanordnung von Filtern implementiert ähnliche Systeme
* Überblick welche Verarbeitung das System ausmacht

Nachteile:
* Langsam, 
* zu viele Daten
*  man muss warten bis zum Ende, bis man etwas sieht
Beispiel: Erzeuge Zufallszahl, Filter diese und sortiere diese

### Model-View-Controler
Es gibt unterschiedliche Views auf ein Datenmodel und es gibt unterschiedliche Möglichkeiten die Daten zu verändern.
Beispiel: Ein Browser zeigt die Dateien an und ein Controler kann sie darauf basierend ändern.
Vorteile: 
* Flexibel, Austausch und Wiederverwendung von Subsystemen
* Leichte Aufteilung
* leichte Wartung
Nachteile:
* Erhöhter Implementierungsaufwand
* Anfragen/Signale des Models möglicherweise Flaschenhals

# Exkurs: Vorgehensmodelle
## Wasserfallmodell
Anforderung (Lastenheft), Entwurf, (Softwarearchitektur), Implementierung (Produkt/Software), Überprüfung/Test, Wartung.
Vorteile: Früh Fehler vermeiden, Fokus auf Dokumentation, gut strukturiert, verständlich, Meilensteine
Nachteile: Anforderungen möglicherweise nicht komplett bekannt, Spät entdeckte Probleme bei der geplanten Umsetzung sind teuer.
Gut einsetzbar bei statischen Anforderungen, Umfang und Produkten.

## Agile Methoden
### Philosophie
http://agilemanifesto.org/
Individuen und Interaktion sind wichtiger als Prozesse und Werkzeuge.
Funktionierende Software ist wichtiger als umfassende Dokumentation.
Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen.
Reagieren auf Veränderungen ist wichtiger als Befolgen eines Plans.
1. Kundenzufriedenheit durch continuous Delivery
2. Änderung von Anforderungen jederzeit erwünscht (Wettbewerbsvorteil für Kunde)
3. Häufige (lauffähige) Releases
4. Tägliche Zusammenarbeit von Fachexperten/Kunden und Entwicklern
5. Vertrauen und Unterstützung für motivierte Individuen zur Projektbearbeitung
6. Kommunikation am besten persönlich
7. Funktionsfähige Software i Fortschrittsmaß
8. Gelichmäßiges Arbeitstempo
9. Fokus auf technische Exzellenz und gutes Design
...

Strategien: Prozesse und Methoden
Prozesse: Scrum
Methoden: Continous Integration and Continous Security

### Scrum
#### Akteure
Scrum Team: selbst-organisiert, möglichst Vollzeit, Entwickler und Fachleute, Funktionsübergreifend, 5-7 Personen.
Product Owner: Verantwortlich für Produkt, Person außerhalb des Scrum Teams, pflegt Product Backlog (gewünschte Arbeiten), Stakeholder zufriedenstellen.
Scrum Master: Dienende Führungsperson, Scrumprozess unterstützen, Hilft Product Owner + Team, beseitigt Hindernisse. Er kümmert sich um alles, was die Leute von der Arbeit abhält (auch unangebrachte Kunden/-Manageranfragen)
#### Artefakte
Product Backlog: Priorisierte Liste von Ideen mit Schätzung, Quelle von Anforderungen, Ableiten der Aufgaben aus dem Product Backlog.
Sprint Backlog: Liste von Product Backlog Einträgen für den Sprint, abzuschließende Arbeit mit Durchführungsplan.
Product Release: Ergebnis eines Sprints, Qualitativ hochwertig, Entspricht Definition of Done
![](https://cdn.steemitimages.com/DQmbbg54dGXKLHPEmM5rdN9W5vxgxjkHMNcY7Z1RU7GMXvB/grafik.png)
*Scrum Aktivitäten*
PBI: Product Backlog Item
Daily Scrum: Auch Daily Standup genannt, weil es im Stehen stattfinden soll, damit es nicht zu lange dauert.


### Continuous Integration
CI setzt einen Teil der agilen Prinzipien um.
Kundenzufriedenheit durch Continuous Delivery
* Gemeinsames Code-Repository (Normalerweise GitHub)
* Automatisierter Build-Prozess, z.B.:  Make, cmake, qmake, qbs,gradle, maven
* Automatisierte Tests
* Häufige Commits
* Jeder Commit wird gebaut
* Build- und Testzeiten kurz halten
* Gespiegelte Produktionsumgebung
* Einfacher Zugriff auf Produkt-Artefakte
* Deployment automatisieren
* Automatisches Reporting
* Tools: Jenkins, Travis CI, GitLab
Ziel: Jeder einzelne Commit entspricht einem fertigen Produktinkrement.

### Continuous Security
* Abwandlung Begriff von Continuous Integration
* Security fester Bestandteil des Produktes
* Security im agilen  Entwicklungsprozess
* Security im Nachgang durchzudrücken ist extrem teuer
In der Praxis:
#### Continuous Security - Scrum
* Security bei User Stories berücksichtigen
* Ansatz: Secure Scrum:
   * Security relevante User Stories identifizieren
   * Loss-Value für Stories
   * Kennzeichnung von Stories mit S-Markes, verweisen auf S-Tag
   * Stories mit S-Marks müssen S-Tags implementieren
   * eigentlicher Scrumprozess nicht verändert
* Ansatz: Security Backlog (zusätzliches Security-Backlog + Security Master)
#### CI Pipeline
* Security Test Driven Devcelopment
* Security Checks (Funktionale Sicherheitstest, Schwachstellen-Scanning/Fuzzing, Pen-Tests
* OWASP Tools (ZED Attack Proxy ZAP)
* Lint (Code Analyse, Qualität)
* Dependency Checks (https://requires.io/, https://snyk.io/)
* Monitoring
#### Continuous Security - Weitere Maßnahmen
* Erstellung von Security Guidelines/Wiki
* Risk/Security Meetups vor neuen Projekten
* Peer-Review durch einen Security Champion
* Pen-Tests
* Risiken Einschätzen mit einer Risikomatrix

Ein 4 Minütiges Video, welches die Scrum-Techniken witzig beschreibt:
https://www.youtube.com/watch?v=oheekef7oJk

# Verteilte Systeme
## Ziele
* Nebenläufigkeit
* Skalierbarkeit, Lastverteilung
* Redundanz
* Fehlerkorrektur
* Bereitstellung entfernter Ressourcen
## Beispiele
* Verteilte Anwendungen
* Verteiltes Betriebssystem
* Volunteer-Computing Projekte (z.B. SETI@home)
* P2P Systeme/Anwendungen
* Blockchain
* Service-Oriented Architecture (SOA)
* Massively Multiplayer Online Games (MMPOG)

## Recap Muster
Service Orientated Architecture - SOA
* Aufgaben in Serviceprinzipien zerlegen
* Containerization
Das ist ähnlich wie bei einer Virtuellen Maschine, aber nicht das Betriebssystem wird in Container gebracht, sondern diverse Libraries.
*Beispiel: Docker:*
![](https://cdn.steemitimages.com/DQmTQuF52JvFQAxDe5VWVGT8i8Yn8HpgD9NfRn4dThhB95Z/grafik.png)
*docker*

Es wurde ein kleines Programm in "Go" geschrieben, welches einen "schönen" Hashwert sucht.
Dieses wurde in einen Docker Container gespeichert.
Mit folgenden Befehlen werden zwei Container angesprochen: Im ersten wird das Build erstellt, im zweiten wird das fertige "Exe"-Programm reingelegt. Dort läuft ein Mini-Betriebssystem (8 MB) groß, welches das Exe-Programm hostet:
![](https://cdn.steemitimages.com/DQmPN1pz5sz87aT36qDb39QLq9WwyteoRMPzn9f4Ngc7QRV/grafik.png)
*Deployment mit Docker*
![](https://cdn.steemitimages.com/DQmYfQcdMtQ4tdKVFVLXA5gkTR6KhomRtuovyKSa7w5eDTr/grafik.png)
*Hier läuft das gebaute Programm*
Von dieser Instanz können jetzt mehrere Programme gleichzeitig laufen.

## Verteilte Systeme - Function as a service
![](https://cdn.steemitimages.com/DQmcDDSn7TJz7dYnunPjAFzKCSN3q137cvG2Ww3fb27AL9b/grafik.png)
*FaaS*
Einzelne Verarbeitungsschritte werden aus dem Monolithen herausgezogen und getrennt abgebildet.
### Beispiel: AWS Lamda und Alternativen
* AWS Lambda (https://aws.amazon.com/de/)
Dort kann man Code hinterlegen, der dann auf einem Microservice läuft (auch kostenlos)
* Azure Functions
* Google Cloud Functions
### Best Practices
Es gibt ein paar Regeln, die man beachten sollte, wie Speicherzuweisung, Ausführungsdauer,…

# IT Sicherheit
## Warum Sicherheit
* Information ist wertvoll
* Letztendlich hängt unsere Infrastruktur und sogar unser Leben dran (Medizinbereich, Stromerzeugung,….)
* Schutzziele: Vertraulichkeit, Integrität, Verfügbarkeit
## Berechtigungen und Identifikation
Der Nachweis der Identifikation erfolgt über Verifikation.
## Authentifizierung mit Software
* Multifaktor Authentifikation
* Time-based One-Time Password

HMAC (key hashed Message Authentication Code): Beim Erstellen meines Google-Authentication wird ein Geheimnis geteilt. Aus diesem + Zeitstempel wird ein Hash gebildet. Das Ergebnis wird noch mal mit dem Zeitstempel  konkateniert und noch mal gehasht. Als Ergebnis kommt die 6 Stellige Zahl heraus, die 30 Sekunden lang gültig ist.

## Authentifizierung mit Hardware
### Secure Element
Spezieller Smartcard Chip mit eigener Software, eigener Hardware (CPU, Speicher, RAM, IO) und eigenem Sicherheitsmodell.
Das SE ist heute in den meisten Smartphones integriert.
Sicherer Bereich zur Speicherung von Geheimnissen (Tamper resistant).
Ziel: Berechnungen erfolgen auf dem Chip/Geheimnisse gehen nicht nach außen.
Einsatz bspw. Für Zahlungen mit dem Smartphone, Ablage von Fingerabdruckdaten,…
Alternative: Cloud basierte Lösung (Host Card Emulation (HCE))

### FIDO Alliance
* Multifaktor Authentifikation standardisieren
* Fast Identity Online
* Nicht kommerzielles Konsortium
* Mitgllieder u.a.: Amazon, Google, BSI, Intel, Lenovo,…
* Ziel: Vereinfachung des Logins
* Persönliche Daten und private Schlüssel sind beim Benutzer gespeichert
* Unterstützung möglichst vieler Technologien: Biometrie,….
Standards:
#### Universal Authentication Framework (UAF)
* Netzwerkprotokoll zur kennwortlosen Authentifizierung mit mehreren Faktoren
* Benutzer authentifiziert sich 
![](https://cdn.steemitimages.com/DQmdJM8DhRE8KMXNnVjbUBTfpFAtEmbwAhgoBu5617ANRii/grafik.png)
*Bildquelle: FIDO UAF Architctural Overview*
* Anmeldung erfolgt mit dem FIDO U2F Yubico Security Token
![](https://cdn.steemitimages.com/DQmUGFzgN3AEUFNgHGiHtLorZapbxkaBQtsKWiaRqRTfS2D/grafik.png)
### Der Elektronische Personalausweis
* Ist vom BSI zertifiziert
* Funktioniert mit NFC und RFID-Chip und der "Ausweisapp 2" (Android)
* Erlaubt Zugriff auf Rentendatenbank, Autos abmelden, De-Mail,…
* Online Ausweisfunktion (eID Funktion)
* Unterschriftsfunktion
* Biometriefunktion
* Pseudonyme für Diensteanbieter sind möglich
* Erstantragsormulare: https://personalausweisportal.de


# English Version (translated with deepl.com)

This week I am taking part in a training session on IT security.
Here my notes and thoughts (without guarantee):

# Software architecture
Describes the structures of a software system through architectural building blocks and their relationships and interactions with each other.
Making decisions at the beginning that are difficult to change later. E.g. desktop or web application, monolith or microservices,...
Trend: agile methods

## Classic architectural patterns
Software design pattern
Architectural pattern (organization, overall concept)
Procedure pattern (How do I implement the architecture pattern (Waterfall, Agil, Continuous Integration)?
### Architecture pattern - overview
* Chaos-to-structure
* Interactive
Adaptable
Distributed systems
### Pipes and Filters (As an example to the architecture pattern "Chaos to Control")
Advantages: 
New arrangement of filters implements similar systems
Overview of which processing the system consists of

Disadvantages:
Slowly, 
Too much data
* you have to wait till the end until you see something
Example: Create random number, filter it and sort it

### Model View Controller
There are different views of a data model and there are different ways to change the data.
Example: A browser displays the files and a controller can change them based on this.
Advantages: 
Flexible, exchange and reuse of subsystems
Easy allocation
easy maintenance
Disadvantages * Increased implementation effort
Increased implementation effort
Requests/signals of the model possible bottleneck

Excursus: Procedure models
## Waterfall model
Requirements (specifications), design, (software architecture), implementation (product/software), check/test, maintenance.
Advantages: Early avoidance of errors, focus on documentation, well-structured, understandable, milestones
Disadvantages. Requirements may not be fully known: Requirements may not be completely known, problems discovered late during the planned implementation are expensive.
Good for static requirements, scope and products.

## Agile methods
### Philosophy
http://agilemanifesto.org/
Individuals and interaction are more important than processes and tools.
Functioning software is more important than comprehensive documentation.
Working with the customer is more important than negotiating contracts.
Responding to change is more important than following a plan.
1. customer satisfaction through continuous delivery
2. change of requirements at any time desired (competitive advantage for customer)
3. frequent (executable) releases
4. daily cooperation of experts/customers and developers
5. trust and support for motivated individuals to work on projects
6. communication best personal
7. functional software i measure of progress
8. steady pace of work
9. focus on technical excellence and good design
...

Strategies: Processes and Methods
Processes: Scrum
Methods: Continous Integration and Continous Security

### Scrum
#### Actors
Scrum Team: self-organized, preferably full-time, developers and experts, cross-functional, 5-7 persons.
Product Owner: Responsible for product, person outside the Scrum team, maintains product backlog (desired work), satisfies stakeholders.
Scrum Master: Serving leader, Scrum Process Support, Helps Product Owner + Team, Removes obstacles. He takes care of everything that prevents people from working (including inappropriate customer/manager requests).
#### Artifacts
Product Backlog: Prioritized list of ideas with estimate, source of requirements, derivation of tasks from product backlog.
Sprint backlog: List of product backlog entries for the sprint, work to be completed with implementation plan.
Product Release: Result of a Sprint, High Quality, Meets Definition of Done
<font color="#ffff00">-=https://cdn.steemitimages.com/DQmbbg54dGXKLHPEmM5rdN9W5vxgxjkHMNcY7Z1RU7GMXvB/grafik.png=- proudly presents
*Scrum Activities*
PBI: Product Backlog Item
Daily Scrum: Also called Daily Standup because it's supposed to take place standing up so it doesn't take too long.


### Continuous Integration
CI implements part of the agile principles.
Customer satisfaction through continuous delivery
Common code repository (usually GitHub)
Automated build process, e.g.:  Make, cmake, qmake, qbs,gradle, maven
Automated tests
Frequent Commits
* Every committal is built
Keep build and test times short
Mirrored production environment
Easy access to product artifacts
Automate deployment
Automatic reporting
* Tools: Jenkins, Travis CI, GitLab.
Objective: Each individual commit corresponds to a finished product increment.

### Continuous Security
Modification Concept of Continuous Integration
Security an integral part of the product
Security in the agile development process
* To push through security in the aftermath is extremely expensive
In practice:
#### Continuous Security - Scrum
Consider security with user stories
Approach: Secure Scrum:
   Identify security relevant user stories
   Loss-Value for Stories
   Marking of stories with S-Markes, refer to S-Tag
   Stories with S-Marks must implement S-Tags
   actual scrum process not changed
Approach: Security Backlog (additional Security Backlog + Security Master)
#### CI Pipeline
Security Test Driven Devcelopment
Security checks (functional security tests, vulnerability scaning/fuzzing, pen tests)
OWASP Tools (ZED Attack Proxy ZAP)
Lint (code analysis, quality)
Dependency Checks (https://requires.io/, https://snyk.io/)
* Monitoring
#### Continuous Security - Other measures
Preparation of Security Guidelines/Wiki
Risk/Security Meetups before new projects
* Peer review by a security champion
* Pen tests
Risk assessment with a risk matrix
A 4 minute video which describes the Scrum techniques in a funny way:
https://www.youtube.com/watch?v=oheekef7oJk

# Distributed systems
## goals
* Concurrency
Scalability, load distribution
* Redundancy
Error correction
Provision of remote resources
## Examples
Distributed applications
Distributed operating system
Volunteer Computing Projects (e.g. SETI@home)
P2P Systems/Applications
* Blockchain
Service-Oriented Architecture (SOA)
Massively Multiplayer Online Games (MMPOG)

## Recap pattern
Service Orientated Architecture - SOA
Dividing tasks into service principles
* Containerization
This is similar to a virtual machine, but not the operating system is placed in containers, but various libraries.
Example: Docker:*
![](https://cdn.steemitimages.com/DQmTQuF52JvFQAxDe5VWVGT8i8Yn8HpgD9NfRn4dThhB95Z/grafik.png)
*docker*
A small program was written in "Go", which looks for a "nice" hash value.
This was stored in a Docker container.
The following commands address two containers: In the first the build is created, in the second the finished "Exe" program is put in. There a mini operating system (8 MB) runs large, which hosts the exe program:
![](https://cdn.steemitimages.com/DQmPN1pz5sz87aT36qDb39QLq9WwyteoRMPzn9f4Ngc7QRV/grafik.png)
* Deployment with Docker*
<font color="#ffff00">-=https://cdn.steemitimages.com/DQmYfQcdMtQ4tdKVFVLXA5gkTR6KhomRtuovyKSa7w5eDTr/grafik.png=- proudly presents
Here runs the built program*
Several programs can now run simultaneously from this instance.

## Distributed Systems - Function as a service
<font color="#ffff00">-=https://cdn.steemitimages.com/DQmcDDSn7TJz7dYnunPjAFzKCSN3q137cvG2Ww3fb27AL9b/grafik.png=- proudly presents
*FaaS*
Individual processing steps are pulled out of the monolith and mapped separately.
### Example: AWS Lamda and alternatives
AWS Lambda (https://aws.amazon.com/de/)
There you can store code that runs on a microservice (also free of charge).
* Azure Functions
* Google Cloud Functions
### Best Practices
There are a few rules you should keep in mind, such as memory allocation, execution time,...

IT Security
## Why Security
* Information is valuable
Ultimately our infrastructure and even our lives depend on it (medical sector, power generation,...)
Protection goals: Confidentiality, integrity, availability
## Permissions and identification
The verification of the identification is done by verification.
## Authentication with software
Multifactor authentication
* Time-based One-Time Password

HMAC (key hashed Message Authentication Code): When I create my Google Authentication, a secret is shared. A hash is formed from this + timestamp. The result is concatenated again with the timestamp and hashed again. The result is the 6-digit number that is valid for 30 seconds.

## Authentication with hardware
### Secure Element
Special smartcard chip with own software, own hardware (CPU, memory, RAM, IO) and own security model.
Today, the SE is integrated in most smartphones.
Secure area for storing secrets (Tamper resistant).
Objective: Calculations are carried out on the chip/secrets are not external.
Use, for example, for payments with the smartphone, filing of fingerprint data,...
Alternative: Cloud based solution (Host Card Emulation (HCE))

### FIDO Alliance
Standardize multi-factor authentication
* Fast Identity Online
Non-commercial consortium
* songs and more: Amazon, Google, BSI, Intel, Lenovo,...
Goal: Simplification of login
Personal data and private keys are stored with the user
Support for as many technologies as possible: Biometrics,....
Standards:

#### Universal Authentication Framework (UAF)
Network protocol for passwordless authentication with several factors
User authenticates himself or herself 
<font color="#ffff00">-=https://cdn.steemitimages.com/DQmdJM8DhRE8KMXNnVjbUBTfpFAtEmbwAhgoBu5617ANRii/grafik.png=- proudly presents
Image Source: FIDO UAF Architctural Overview
Login with FIDO U2F Yubico Security Token
[](https://cdn.steemitimages.com/DQmUGFzgN3AEUFNgHGiHtLorZapbxkaBQtsKWiaRqRTfS2D/grafik.png)
### The electronic identity card
Certified by the BSI
Works with NFC and RFID chip and the "ID card app 2" (Android)
Allows access to pension database, cancel cars, De-Mail,...
Online identification function (eID function)
Signature function
Biometric function
Pseudonyms for service providers are possible
First application forms: https://personalausweisportal.de
👍  , , , , , , , , , , , , , , ,
properties (23)
post_id62,904,884
authorachimmertens
permlinktechnical-security-summit-2018-in-frankfurt-donnerstag-aktuelle-entwicklungen-im-anwendungsbereich
categorysecurity
json_metadata{"format":"markdown","tags":["security","busy","blog","tss2018","education"],"app":"steemit\/0.1","image":["https:\/\/cdn.steemitimages.com\/DQmbbg54dGXKLHPEmM5rdN9W5vxgxjkHMNcY7Z1RU7GMXvB\/grafik.png"],"links":["http:\/\/agilemanifesto.org\/","https:\/\/requires.io\/","https:\/\/snyk.io\/","https:\/\/www.youtube.com\/watch?v=oheekef7oJk","https:\/\/aws.amazon.com\/de\/","https:\/\/personalausweisportal.de","https:\/\/cdn.steemitimages.com\/DQmUGFzgN3AEUFNgHGiHtLorZapbxkaBQtsKWiaRqRTfS2D\/grafik.png"]}
created2018-09-20 19:57:45
last_update2018-09-20 19:57:45
depth0
children0
net_rshares2,714,071,524,040
last_payout2018-09-27 19:57:45
cashout_time1969-12-31 23:59:59
total_payout_value2.696 SBD
curator_payout_value0.687 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length20,607
author_reputation22,967,361,763,386
root_title"Technical Security Summit 2018 in Frankfurt - Donnerstag - "Aktuelle Entwicklungen im Anwendungsbereich""
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (16)