Geschrieben von Thomas Kruse
am 8. Juli 2024
Mit Spring Security können unter anderem Webanwendungen (Spring WebMVC) auf einfache und flexible Weise abgesichert werden.
Dabei ist der typische Weg über Security-Filter-Chains die Webschicht von Spring WebMVC mit Spring Security abzusichern.
Doch reicht das aus?
Diese rhetorische Frage lässt sich mit vielleicht beantworten:
Gibt es keine Programmierfehler oder Logikfehler, so kann das bereits ausreichen.
Denn erreicht kein Request unberechtigt die Controller-Schicht, dann kann nichts passieren.
Doch in Zeiten zunehmender Cyberbedrohungen sollte keine Anwendung lediglich durch eine Schicht gesichert werden.
Verteidigung in der Tiefe kann dank Spring Security leichtgewichtig mit Method Security umsetzen.
Eine deutliche Verbesserung.
In unserem letzten Spring Security Training kam die Frage auf, wie sich dies mit periodischen Aufgaben innerhalb der Spring Anwendung kombinieren lässt.
Das soll als Anlass dienen, sowohl periodische als auch asynchrone Ausführung, z.B. durch Message-Queue Nachrichten in Kombination mit Method Security darzustellen.
Geschrieben von Thomas Kruse
am 28. Juni 2024
Container Image sind dank OCI Standard und Verbreitung von Docker und Kubernetes zu dem Mittel der Wahl geworden, um Anwendungen zu verteilen.
Dabei verwenden Container Runtimes wie Docker ein geschicktes Verfahren zur Deduplizierung von Daten:
Ein Container Image ist in Layer aufgeteilt und diese können unabhängig voneinander verteilt und gespeichert werden.
Da die Layer selbst nicht veränderlich sind, können Layer wiederverwendet werden.
Typischerweise finden sich auch viele Gemeinsamkeiten:
Die verwendete Basisdistribution, Laufzeitumgebungen wie Python oder Java und ggf. auch firmenspezifische Konfigurationen wie TLS Zertifikate.
Dabei muss ein Tradeoff beachtet werden:
Je mehr Layer, desto mehr Overhead entsteht durch sie.
Gleichzeitig ist es um so wahrscheinlicher, dass bei feingranularen Image Layern eine gute Wiederverwendbarkeit ermöglicht wird.
Bei der Auswahl von Base-Images, auf die eigene Anwendungsimages aufgebaut werden sollen, gilt es also darauf zu achten, dass diese möglichst geschickt augeteilt sind und nicht nur aus einem Layer bestehen, der stets vollständig neu geladen und gespeichert werden muss, wenn es Aktualisierungen gibt, aber auch nicht aus zehn oder mehr Layern.
Zur Bestimmung der Anzahl der Layer gibt es verschiedene Ansätze.
Am Beispiel eines Java Basisimages, openjdk
, werden diese im folgenden betrachtet.
Geschrieben von Karsten Sitterberg
am 20. Juni 2024
Durch CSP Header (Content Security Policy) lassen sich verschiedene Funktionen des Webbrowsers konfigurieren, um das Verhalten von Nachladen und auch Ausführen zusätzlicher oder dynamischer Inhalte zu beeinflussen.
Damit lassen sich typische Einfallstore für Angriffe wie Cross-Site-Scripting (XSS) wirksam abstellen.
Ist die Webanwendung jedoch eine Single Page Anwendung (SPA) und auf dynamische Erzeugung von Inhalten angewiesen, führt eine globale Deaktivierung der Dynamik dazu, dass die Anwendung nicht mehr funktioniert.
Es stellt sich daher die Frage, wie zwischen guten und potentiell schädlichen externen und dynamischen Inhalten unterschieden werden kann.
Dazu ist in allen Browsern inzwischen ein Verfahren implementiert, mit dem Entwickler solche Inhalte, die erwünscht sind, expliziert markieren können:
sogenannte "Nonce" Markierungen.
Aktuelle Frameworks, so auch Angular, bringen dazu auch speziellen Support mit.
Die Implementierung wird in diesem Beitrag anhand von nginx gezeigt.
Geschrieben von Thomas Kruse
am 15. Juni 2024
Container Images sind inzwischen etabliert, um darüber Anwendungen bereitzustellen.
Durch das standardisierte Format, einheitliche Schnittstellen und das insgesamt bestehende Ökosystem wird es sehr einfach, Artefakte zu konsumieren und auch bereitzustellen.
Jedoch hat das auch Konsequenzen:
Die Verantwortung für Patchmanagement, Fehlerbehebungen und Security-Updates verschiebt sich zum Anbieter der jeweiligen Images, da diese mehr, als lediglich die Anwendung selbst beinhalten.
Gleichzeitig obligt es dem Konsumenten bzw. Nutzer der Images, sicherzustellen, dass diese aus einer vertrauenswürdigen Quelle stammen und auch nicht zwischendurch verändert wurden.
Diese Aspekte der "Supply-Chain-Security", einem Unterbereich der IT-Sicherheit im Kontext von Containeranwendungen wollen wir uns in diesem und folgenden Artikel widmen.
Geschrieben von Thomas Kruse
am 12. April 2024
Die JAX 2024 steht vor der Tür und das Team von trion ist bereits in den Startlöchern, um Wissen und Erfahrung zu teilen.
Mit einer breiten Palette von Vorträgen und einem interaktiven Night-Session-Format bietet trion Teilnehmern die Möglichkeit, sowohl in Bezug auf Technologie als auch Architektur in spannende Bereiche einzutauchen und tiefgehende Diskussionen zu führen.
Geschrieben von Stefan Reuter
am 9. April 2024
Bei der Erstinstallation von Keycloak wird im Master-Realm ein Benutzerkonto für einen globalen Administrator angelegt, der über alle Rechte verfügt.
Dieser Benutzer darf neue Realms anlegen und alle Realms verwalten.
Er ist ungefähr vergleichbar mit dem Superuser root
unter Linux.
Der Zugang erfolgt über die Admin-Konsole des Master-Realms unter <base_url>/admin
bzw. <base_url>/admin/master/console
.
Der Master-Realm ist ein spezieller Realm, der es Administratoren erlaubt, mehr als einen Realm auf dem System zu verwalten. Daneben verfügt aber jeder Realm, der in Keycloak erstellt wird, über eigene Admin-Konsole, von der aus dieser Realm verwaltet werden kann.
Sowohl im Master-Realm als auch in jedem anderen Realm können weitere Benutzer mit abgestuften administrativen Rechten angelegt werden.
Geschrieben von Christian Bittner
am 3. April 2024
Die Königsklasse - und Auslöser des aktuellen Hypes um das Thema...
Geschrieben von Stefan Reuter
am 29. März 2024
Im Auslieferungszustand von Keycloak umfassen Benutzerinformationen den Benutzernamen, Vor- und Zunamen sowie die E-Mail-Adresse. Diese Felder waren bis einschließlich Version 23 fest vorgegeben. Kundenspezifische Key-Value-Paare für Benutzer, Rollen und Gruppen konnten zwar definiert werden, aber Keycloak bot weder Validierung noch die Möglichkeit für Benutzer, diese in der Account-Konsole selbst zu ändern. Mit der Einführung von Version 24 werden Benutzerprofile wesentlich flexibler. Deklarative Benutzerprofile, bisher nur hinter einem Feature-Flag verfügbar, werden nun voll unterstützt und erlauben es Administratoren, beliebige Felder zu definieren und zu bestimmen, wer sie bearbeiten darf.
Geschrieben von Stefan Reuter
am 25. März 2024
In einer Welt, in der technologische Innovationen das Tempo vorgeben, ist es entscheidend, stets auf dem neuesten Stand zu bleiben und aus erster Hand von den Besten zu lernen. Diesen Monat haben wir bei trion einen besonderen Grund zum Feiern: Drei unserer Top-Experten, Thomas Kruse, Karsten Sitterberg und Stefan Reuter, haben im Java Magazin einen bemerkenswerten Schwerpunkt gesetzt. Ihre Beiträge reflektieren nicht nur ihr tiefgreifendes Verständnis für moderne Softwareentwicklung, sondern bieten auch praxisnahe Lösungen für aktuelle und zukünftige Herausforderungen.
Geschrieben von Patrick Fuchs
am 15. März 2024
Gerade wenn es um Side-Projects oder Hobbyprojekte geht, ist das Budget oft begrenzt.
Dann ist es besonders wichtig, dass keine zusätzlichen Kosten für TLS Zertifikate anfallen.
Im Zentrum eines solchen Projekts steht ein Vue.js-Frontend, das sich mit einer HTTP API verbinden soll.
Natürlich mit der erforderlichen Sicherheit, die Transport Layer Security (TLS) bieten kann.
Bislang war ZeroSSL besonders deswegen attraktiv, da keine Rate-Limits kreativer Forschung entgegen standen.
Allerdings liefert ZeroSSL seit einiger Zeit fehlerhafte (abgelaufene) Zertifikate aus der Vergangenheit oder auch API Fehler.
Da ACME ein Standard ist, sollte das auch mit anderen Anbietern gehen, und ein weiterer Anbieter ist Google.