Java-Web-Security (eBook)

Sichere Webanwendungen mit Java entwickeln
eBook Download: PDF | EPUB
2014 | 1. Auflage
250 Seiten
dpunkt (Verlag)
978-3-86491-448-5 (ISBN)

Lese- und Medienproben

Java-Web-Security -  Dominik Schadow
Systemvoraussetzungen
Systemvoraussetzungen
32,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Java hat den Ruf, eine relativ sichere Programmiersprache zu sein. Verschiedene Spracheigenschaften und Java-interne Sicherheitsmechanismen unterstützen den Entwickler beim Erstellen sicherer Anwendungen. Sie helfen aber nicht, wenn bei der Programmierung ungewollt Schwachstellen eingebaut werden, über die Übeltäter erfolgreiche Angriffe durchführen können. Das betrifft insbesondere Webapplikationen für Intranets oder das Internet. Dieses Buch zeigt, wie Sie als Java-Entwickler vielen dieser teilweise längst bekannten Unzulänglichkeiten und Programmierfehlern entgegentreten können. Dabei erfahren Sie Hintergründe zu Java-basierten Sicherheitsmechanismen und bekommen einen Überblick über hilfreiche Tools. Sie lernen unter anderem folgende Angriffsformen kennen und erfahren, wie Sie Ihre Java-Webapplikationen von diesen Schwachstellen freihalten: - Injections, u.a. SQL Injection - Cross-Site Scripting (XSS) - Cross-Site Request Forgery (CSRF) Nicht immer ist es nötig, dass Sie die eigene Entwicklungsmethodik oder gar Ihren Software-Entwicklungsprozess komplett umkrempeln. An vielen Stellen genügen geringe Änderungen am Code und kleine Anpassungen der eigenen Entwicklungsweise. Die auf diese Weise entstehenden Webapplikationen profitieren von einer höheren Sicherheit und machen das Ausnutzen von sicherheitskritischen Programmierfehlern für Angreifer deutlich schwieriger. Vorausgesetzt werden Kenntnisse der Java-Programmierung, vor allem im Umfeld von Webanwendungen.

Dominik Schadow arbeitet als Senior Consultant beim IT-Beratungsunternehmen bridgingIT und unterstützt Kunden in unterschiedlichen Projekten u.a. bei der Entwicklung von sicheren Java-Webanwendungen. Er ist Sprecher auf verschiedenen Konferenzen rund um die Themen Java und sichere Softwareentwicklung. In seiner Freizeit leitet er das Open-Source-Projekt JCrypTool, mit dem Anwender für die Kryptografie begeistert werden sollen und gleichzeitig ihre eigenen Krypto-Plug-ins entwickeln können.

Dominik Schadow arbeitet als Senior Consultant beim IT-Beratungsunternehmen bridgingIT und unterstützt Kunden in unterschiedlichen Projekten u.a. bei der Entwicklung von sicheren Java-Webanwendungen. Er ist Sprecher auf verschiedenen Konferenzen rund um die Themen Java und sichere Softwareentwicklung. In seiner Freizeit leitet er das Open-Source-Projekt JCrypTool, mit dem Anwender für die Kryptografie begeistert werden sollen und gleichzeitig ihre eigenen Krypto-Plug-ins entwickeln können.

1 Einleitung


Die Entwicklung von sicheren Webapplikationen ist ein wichtiges und herausforderndes Thema für jeden Java-Entwickler. Vielfältige Aufruf- und Verwendungsmöglichkeiten von Java-Core-Funktionalität und Frameworks, komplexe individuelle Webanwendungen mit zahlreichen angebundenen Systemen und kreative Angreifer sind nur einige der in diesem Umfeld zu bewältigenden Aufgaben. Vor dem Hintergrund von Java-Anwendungen in der Cloud, serviceorientierten Architekturen und auch ganz »normalen« Enterprise-Webanwendungen bleibt die Webapplikationssicherheit – unabhängig von aktuellen Hypes – eine der wesentlichen Herausforderungen der nächsten Jahre.

Zweifellos hat man allgemein erkannt, dass wir simple sicherheitsrelevante Programmierfehler und dadurch unsichere Webapplikationen heute nicht mehr länger tolerieren können. Immer mehr gespeicherte (Kunden-)Daten bedeuten schließlich auch, dass bei einem erfolgreichen Angriff sehr viel mehr Daten verloren gehen können. Gleichzeitig werden Angriffe immer standardisierter durchgeführt. Als Angreifer kommen so neben »professionellen« Übeltätern gleichermaßen Amateure mit nur geringen Entwickler- und IT-Kenntnissen infrage. Angriffe auf Webanwendungen können so zumindest teilweise per simplem Copy & Paste aus fertigen »Angriffs-Kits« durchgeführt werden.

Viele dieser Angriffe können Sie bereits im Vorfeld durch eine sicherheitsorientierte Softwareentwicklung verhindern oder zumindest erschweren. Doch was bedeutet die Entwicklung von sicherer Software – speziell von sicheren Webanwendungen – konkret? Was müssen Sie bei der Entwicklung einer Java-Webanwendung beachten, um häufig gemachte Fehler und die größten Risiken zu umgehen? Und welche Gefahren sind das eigentlich genau? Diese und viele weitere Fragen rund um die sichere Softwareentwicklung werde ich in diesem Buch beantworten, und ich werde Ihnen zeigen, wie einfach Ihre ersten Schritte in der Welt der sicheren Entwicklung von Java-Webapplikationen sein können.

1.1 Über dieses Buch


Das Know-how der Entwickler macht den Unterschied zwischen sicherer und unsicherer Software aus. Ihre tagtäglichen Entscheidungen bestimmen, ob eine Webanwendung zuverlässig und sicher ihren Dienst verrichtet oder ob sie aufgrund von Sicherheitslöchern traurige Berühmtheit erlangt. Auf welcher Seite dieser beiden Extreme sich Ihre Webanwendung wiederfindet, bestimmen Sie vor allem durch drei Dinge: durch eine gute Ausbildung der Entwickler im Umfeld der Softwaresicherheit (u. a. zur Schaffung des notwendigen Sicherheitsbewusstseins), durch eine nach diesen Richtlinien durchgeführte sichere Entwicklung sowie durch Sicherheitstests während und nach der Entwicklung der Software.

Allerdings ist Sicherheit, egal ob IT-Sicherheit im Allgemeinen oder sichere Softwareentwicklung im Speziellen, leider allzu häufig als trocken und wenig spannend verrufen. Viel zu wenige Entwickler beschäftigen sich intensiver mit diesem überaus wichtigen Thema. Gleichzeitig sind wir alle heutzutage von sehr vielen, mitunter auch täglich verwendeten Webapplikationen umgeben. Laufend kommen neue Webanwendungen hinzu. Immer mehr unserer Daten, darunter zunehmend solche sensibler Natur, sind in Webapplikationen erfasst. Die Sicherheit von Webanwendungen – die Sicherheit unserer Daten – wird damit zur wichtigsten Aufgabe aller an der Softwareentwicklung beteiligten Personen.

Mit dem vorliegenden Buch möchte ich Sie für die sichere Softwareentwicklung von Java-Webanwendungen begeistern und Ihnen zeigen, dass das Entwickeln sicherer Webanwendungen ebenso interessant und für jeden möglich sein kann wie die Entwicklung gewöhnlicher Software. Den ersten Schritt haben Sie bereits durch den Erwerb dieses Buches getan. Als Nächstes will ich Ihnen Ihre ersten praktischen Entwicklungsaktivitäten erleichtern und Ihnen zeigen, wie Sie als Java-Entwickler, notfalls unabhängig von anderen, in Ihrer täglichen Arbeit sichere Webanwendungen entwickeln können.

Sichere Software und die sichere Softwareentwicklung sind jedoch nahezu unerschöpfliche Themengebiete. Allein über die Hitliste der zehn kritischsten Websicherheitslücken – die sogenannten OWASP Top 10 (Abschnitt 3.5.1) – ließe sich ein umfangreiches Buch schreiben, ganz zu schweigen von den CWE/SANS Top 25 (einer weiteren (Un)Sicherheitshitliste (Abschnitt 3.5.2)). Alle darin aufgeführten Sicherheitsprobleme und -risiken sind prinzipiell wichtig und die meisten sind weit verbreitet. Allerdings zielen diese Listen, zumindest in einigen wenigen Punkten, eher auf Nicht-(Java-)Entwickler. Nicht alle Punkte sind daher für Entwickler gleichermaßen wichtig und interessant. Deshalb habe ich dieses Buch geschrieben. Es konzentriert sich auf die Punkte, die meiner Erfahrung nach in der täglichen Entwicklungsarbeit häufig falsch gemacht oder schlichtweg vergessen werden. Ich stelle Ihnen dabei wo immer möglich praktisch einsetzbare und konkrete Gegenmaßnahmen vor, die Sie auch allein und nur in Ihrem eigenen Code verwenden können. Klar, niemand kann die Sicherheit einer im Team entwickelten Software allein gewährleisten, aber zumindest den Grundstein können Sie ohne weitere Unterstützung selbst legen.

Das Buch orientiert sich für Ihren Einstieg zunächst an den drei meiner Ansicht nach drängendsten Problemen bei Webanwendungen: Injections (Kapitel 6), Cross-Site Scripting (Kapitel 7) und Cross-Site Request Forgery (Kapitel 8) – definitiv drei der gefährlichsten und gleichzeitig verbreitetsten Sicherheitsprobleme. Aber natürlich sind dies bei Weitem nicht alle. Gleichzeitig können Sicherheitsprobleme nicht völlig isoliert voneinander betrachtet werden. Häufig öffnet eine Angriffsvariante erst die Tür für den folgenden schwerwiegenderen Angriff, oder ein Angriff wird erst durch das gleichzeitige Ausnutzen mehrerer Schwachstellen möglich. Neben diesen drei Hauptproblemen und den Gegenmaßnahmen finden Sie daher noch verschiedene dazugehörige kleinere Themen, die diese drei Angriffsformen unterstützen oder zumindest begünstigen. Auf diese Art erhalten Sie einen breiten Einblick in die sicherheitsorientierte Entwicklung von Java-Webanwendungen. Der Entwicklung von Webapplikationen, die vor den genannten Bedrohungen sicher sind, steht damit nichts mehr im Weg.

1.2 Zielgruppe und Voraussetzungen


Das vorliegende Buch richtet sich an Java-Entwickler, die bereits über umfangreiche Erfahrung mit der Java Standard Edition (Java SE) und zumindest mit den verbreiteten Teilen der Java Enterprise Edition (Java EE) verfügen. Zur Java EE zählen hierbei JavaServer Pages, JavaServer Faces und Servlets. Sie müssen kein Experte in der Java-Enterprise-Entwicklung und der Entwicklung von Java-Webapplikationen sein, sollten aber zumindest über ein fundiertes allgemeines Java-Know-how und Programmiererfahrung verfügen und eventuell kurz vor der Entwicklung Ihrer ersten großen Webanwendung stehen. Ganz ohne Kenntnisse im Umfeld von Java-Webanwendungen werden Sie an einigen Stellen Verständnisschwierigkeiten haben. Dagegen sind keine Kenntnisse in der IT-Sicherheit oder gar der Kryptografie notwendig, umgekehrt schaden diese aber auch nicht.

An den wenigen Abschnitten bisher haben Sie wahrscheinlich bereits bemerkt, dass ich im Text durchgehend männliche Bezeichnungen verwende. Eine alle Geschlechter gleichermaßen ansprechende Variante – etwa Entwickelnde und Angreifende oder EntwicklerInnen und AngreiferInnen – ist beim Lesen nach einiger Zeit einfach nur noch anstrengend. Und als Entwickler respektive Entwicklerin sucht man ja gern den einfachsten Weg. Ich habe mich daher aus Gründen der Lesbarkeit durchgehend für die männliche Form entschieden. Ich hoffe, dass Sie, liebe Leserin und Entwicklerin, sich dadurch nicht weniger angesprochen fühlen und sich schon gar nicht vom Lesen des Buches abhalten lassen.

1.3 Webanwendungen


Bereits einige Male war nun schon die Rede von Webanwendungen bzw. Webapplikationen.1 Auch wenn dieser Begriff nicht ganz so nebulös wie der einer (Java-)Enterprise-Anwendung ist, bedarf er doch einer kurzen Erläuterung zum besseren Verständnis im weiteren Buch. So sind bei Webanwendungen durchaus einige Unterschiede vorhanden, beispielsweise, ob die Webanwendung über eine eigene Weboberfläche verfügt oder »nur« über die Protokolle des Webs kommuniziert.

Viele Angriffe, darunter einige der hier im Buch beschriebenen, sind nur auf Webapplikationen möglich, die über eine eigene GUI verfügen – aber längst nicht alle. Angriffe über Injections oder Cross-Site Request Forgery beispielsweise funktionieren ebenfalls ohne grafische Oberfläche, z. B. über Webservices. Selbst wenn Angriffe unter diesen Bedingungen schwieriger werden, manchmal sogar unwahrscheinlich oder unmöglich scheinen mögen, sollten Sie sich bei nicht vorhandener grafischer Web-Benutzeroberfläche nicht zu sehr in Sicherheit wiegen. Sichere Softwareentwicklung ist grundsätzlich unabhängig davon, ob ein Endbenutzer bzw. ein Angreifer eine GUI sieht oder nicht.

Auch wenn ich in diesem Buch zum...

Erscheint lt. Verlag 24.2.2014
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Web / Internet
Schlagworte Java • Java Web-Applikationen • sichere Software-Entwicklung • Software-Entwicklung • Web-Applikationen • Web-Applikations-Sicherheit
ISBN-10 3-86491-448-5 / 3864914485
ISBN-13 978-3-86491-448-5 / 9783864914485
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 5,4 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Wasserzeichen)
Größe: 5,3 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich