DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!

22
CONTINOUS DELIVERY Aber sicher?! DevDay 2016 -- Dresden, 12.04.2016 Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 1

Transcript of DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!

CONTINOUS DELIVERYAber sicher?!DevDay 2016 -- Dresden, 12.04.2016

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 1

Jan Dittberner

T-Systems Multimedia Solutions GmbH

▶ Softwarearchitekt▶ Themen: Linux, PKI, Automatisierung, …▶ Debian Developer

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 2

Continous Delivery

Entwicklungsumgebungen

Nachvollziehbare Deployments

Security-Aspekte

Fazit

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 3

CONTINOUS DELIVERY

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 4

CONTINOUS DELIVERYWARUM?

▶ Features schneller beim Anwender▶ schnelles Feedback▶ Qualitätssteigerung▶ mehr

”Denkarbeit“ statt langweiliger Routine

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 5

CONTINOUS DELIVERYAUTOMATISIERUNG

▶ Softwarebuild▶ Unit-, Acceptance-, Integration-, Performance-, …-Test▶ Umgebungsbereitstellung (Provisionierung)▶ Deployment▶ Lieferprozesse▶ Dokumentation▶ Monitoring/Reporting▶ …alles was sonst noch Routine sein sollte

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 6

ENTWICKLUNGSUMGEBUNGENSYSTEMKONTEXT

Datenbank

Filesystem

Scheduler

Webservice

WebappHTTP-ProxyLoad-Balancer

Spooler

SMTP-MTASMTP-Proxy

DNS-Server

Abbildung: vereinfachtes Architekturbild

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 7

ENTWICKLUNGSUMGEBUNGENPUPPET

https://puppetlabs.com

▶ Tool für Configuration Management▶ Infrastruktur wird als Code beschrieben (Puppet DSL,

YAML, Ruby)▶ neue Maschinen können innerhalb weniger Minuten

nachvollziehbar eingerichtet werden▶ kann auch mit anderen Tools realisiert werden (Beispiel

cfengine, Saltstack, Ansible, …)

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 8

ENTWICKLUNGSUMGEBUNGENPACKER UND VAGRANT

https://www.packer.iohttps://www.vagrantup.com

▶ Mit Packer kann man sauber definierte Basisimageserstellen

▶ Vagrant steuert (lokale) VMs über eine textuelleBeschreibung

▶ dadurch können Entwickler mit einem produktionsnahenOS arbeiten

▶ gleicher Puppet-Code für lokale und andere Umgebungen▶ lokaler Test von Deployments möglich

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 9

ENTWICKLUNGSUMGEBUNGENSECURITY

Auch Sicherheitsfunktionalität sollte produktionsnah umgesetzt sein:

möglichst gleiche Einstellungen, Schlüssellängen, Algorithmen, …auch in Entwicklungs- undTestumgebungen

so nichtQuelle: starecat.com

so auch nicht …sondern so

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 10

NACHVOLLZIEHBARE DEPLOYMENTSDEPLOYMENTS

▶ …müssen nachvollziehbar sein und zur Softwarepassen

▶ …müssen getestet werden▶ auch Änderungen an der Persistenzschicht (z.B.

Datenbankänderungen) gehören dazu▶ … und natürlich Konfigurationsdaten

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 11

NACHVOLLZIEHBARE DEPLOYMENTSJENKINS

▶ Software übersetzen, paketieren, automatisch testen mitMaven oder anderem Build-Tool

▶ Konfiguration der Software vor dem Deployment▶ Ausführen von Datenbankmigrationen (bei uns mit

Liquibase)▶ Deployment auf Entwicklungs- und Testumgebungen

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 12

NACHVOLLZIEHBARE DEPLOYMENTSMETADATEN

Information welcher Softwarestand,in welcher Konfiguration, wo deployt ist

▶ benötigt für Testaussagen▶ benötigt für Monitoring▶ beim Build werden Versionen in definierte Dateien

geschrieben▶ beim Deployment werden daraus Custom Facts für Puppet

und Wiki-Seiten▶ von Puppet in PuppetDB übertragen

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 13

NACHVOLLZIEHBARE DEPLOYMENTSMONITORING

▶ Auch für Entwicklungs- und Testsysteme nützlich▶ Vermeiden von

”Blindflug“ , Früherkennung von

Problemen▶ Üben für den Wirkbetrieb▶ um manuelle Einrichtung zu vermeiden registrieren

sich unsere Maschinen beim Puppetlauf selbst fürsMonitoring durch Icinga2

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 14

SECURITY-ASPEKTEVERSCHLÜSSELUNG VON CREDENTIALS

▶ betriebliche Anforderung: keine Klartextpasswörteron Disk

▶ Lösungen:▶ Jasypt▶ Wildfly-Vault (Applikationsserver-spezifischer

Mechanismus)▶ Encrypted Tablespaces in Datenbank

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 15

SECURITY-ASPEKTEVERSCHLÜSSELUNG VON CREDENTIALS

Jasypt

http://www.jasypt.org/

▶ Verschlüsselung von Properties, Texten oder ganzenDateien mit Standard-Algorithmen

▶ einfach integrierbar mit Spring, Hibernate undanderen Java-Frameworks

▶ Verschlüsselung passiert bei uns während derDeploymentkonfiguration

▶ Entschlüsselung beim Applikationsstart/ zur Laufzeit

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 16

SECURITY-ASPEKTEZERTIFIKATE

▶ Anforderung: Alle Netzwerkverbindungen müssenTLS-verschlüsselt sein

▶ Herausforderung: mehrere hundert gültige Zertifikatein unterschiedlichsten Keystore-Formaten benötigt

▶ Lösung:▶ Projekt-CA inkl. OCSP-Responder für Entwicklung

und Test (aktuell auf Basis von OpenSSL)▶ Maven-Plugins für Erzeugung von Signing-Request

und Keystore-Formaten▶ Jenkins-Jobs für Steuerung der CA, Erzeugung von

umgebungsspezifischen Keystores und Checks aufZertifikatsablauf

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 17

SECURITY-ASPEKTEZUGRIFF AUF MASCHINEN

▶ dedizierte Applikationsnutzer▶ zentrale Verwaltung von SSH-Keys (SKM)▶ Verteilung des SKM-Master-Keys per Puppet▶ kein Zugriff auf Produktionsmaschinen für

Entwicklungs-/Testteam

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 18

SECURITY-ASPEKTEABSICHERUNG DER (ORACLE-)DATENBANK

▶ Encrypted Tablespaces▶ Database Vault

▶ ermöglicht Vier-Augen-Prinzip fürDatenbankänderungen

▶ verhindert Datenzugriff auch für DBAs

▶ zu beachten bei Datenbankmigrationen

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 19

SECURITY-ASPEKTEABSICHERUNG VON DEPLOYMENTS

▶ unkonfigurierte Lieferartefakte▶ Konfigurationsdateien nur als Templates in der

Lieferung▶ Konfigurationsdaten liegen in getrennten

Repositories▶ Konfiguration findet auf separaten Maschinen statt▶ Deployment per Key-Based SSH

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 20

FAZIT

▶ Continuos Delivery ist sinnvoll – auch fürsicherheitsrelevante Projekte

▶ Entwicklungs- und Testumgebungen sowirkbetriebsnah wie möglich

▶ Alles automatisieren – auch Security-Aspekte

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 21

KONTAKT

Jan Dittberner

T-Systems Multimedia Solutions GmbH

Mail: [email protected]: @jandd

https://coffeestats.org/

Jan Dittberner DevDay 2016 – Dresden, 12.04.2016 22