Orchestrierung von Security-Updates
für Linux-Serversysteme
Bachelorarbeit HSR, FS 2016
Ueli Bosshard, Philipp Christen
a
Team
● Ueli Bosshard
○ Informatiker
○ > 15 Jahre Erfahrung in der Systemtechnik
○ Linux, Web-Hosting, Security
○ Universität Zürich
● Philipp Christen
○ Frontend-Developer
○ > 5 Jahre Erfahrung in der Web-Entwicklung
○ Javascript
○ SRF
2
Agenda
● Anforderungen an ein Update-Management
● Vorstellung von upd89
● Update-Management mit upd89
● Demo
● Sicherheit bei einer verteilten Lösung
● Entwicklung mit Rails
3
Updatemanagement bisher
● Wenig Übersicht
● ~ 1500 Virtual Servers
● Update der Systeme mittels
Bash-Script
● Aufwand: ~ 1 Tag pro Woche
4
Anforderungen
5
“Orchestrierung von Security-Updates für Linux-Serversysteme”
Anforderungen
● Reporting
● Nachvollziehbarkeit
● Regeln & Abhängigkeiten
● Open-Source
● Sicherheit
● Qualität
6
● Technologien
○ Web-Applikation
○ Rails, Ruby
○ PostgreSQL
○ Ubuntu 12.04/14.04
Updatemanagement mit upd89
● Automatisierte Installation
● Web-Applikation
● Reduzierter Aufwand
● Gesammelte Informationen
7
Komponenten
8
Agent
Läuft auf jedem verwalteten Server, meldet und
installiert Updates
Control Center
Zentrale Komponente, bietet Benutzer Übersicht und
Verwaltungsmöglichkeiten
Arbeitsablauf
9
Task
Sammlung der zu installierenden Updates für ein
einzelnes System
Job
Auftrag des Benutzers, enthält einen oder mehrere
Tasks
J
T
T T
API - Registrierung
10
Agent
Control Center
Registrierung
Status
Name, OS, URN, Adresse
Update-Vorgang
1. Agent sammelt und sendet
verfügbare Updates
2. Control Center zeigt Update an
3. Benutzer löst Update aus
4. Agent installiert Update
5. Agent meldet Ergebnis
1
2, 3
4
5
11
API - Inkrementelle Vorgänge
12
Agent
Control Center
Verfügbare Updates
Status, Bekannte Hashes
Anzahl Updates, Hash-Liste
API - Inkrementelle Vorgänge
13
Agent
Control Center
Verfügbare Updates
Status
Anzahl Updates, Paket-Liste
Demo
● Auth
● Dashboard
● Update auslösen
● Reporting
14
1. Zertifikat des Control Centers prüfen
2. Vertraulichkeit des Agents feststellen
3. Serverzertifikat prüfen
4. Benutzer aufgrund von Passwort
vertrauen
Sicherheit
15
Sicherheit in der API
16
● Eigene CA (Vertrauensbasis)
● Gegenseite Authentisierung
Gems (Auswahl)
17
will_paginate Pagination von ActiveRecord-Einträgen
filterrific Unterstützung für Filter und Sortiermöglichkeiten.
sucker_punch Asynchrone Hintergrund-Aufträge
faraday Bibliothek für HTTP-Zugriffe mit HTTPS-Support.
sorcery Benutzer-Authentifizierung und Login-Funktionalität.
cancancan Berechtigungen auf Aktions-Ebene (CRUD).
Gems (Visuell)
18
will_paginate
filterrific
font_awesome_rails
Herausforderungen
● Concurrency
● Administrate o.Ä.
● Zeitnahe Informationsreplikation
● Balance Redundanz <-> Traffic-Minimierung
● apt-Anbindung mit Ruby
19
Fragen
?
20
Danke! Und immer schön updaten!
21

TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates für Linux-Serversysteme