Analyse von Sicherheitsrefactorings im Bereich von hochsensiblen Kreditkartendaten

Größe: px
Ab Seite anzeigen:

Download "Analyse von Sicherheitsrefactorings im Bereich von hochsensiblen Kreditkartendaten"

Transkript

1 Fakultät für Mathematik und Informatik - Lehrgebiet Programmiersysteme - Analyse von Sicherheitsrefactorings im Bereich von hochsensiblen Kreditkartendaten Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Studiengang Praktische Informatik Eingereicht von: Sebastian Olscher Matrikelnummer: Geburtsdatum: Geburtsort: Frechen Bergheim, den 10. Mai 2013

2 Juristische Erklärung Ich versichere hiermit, dass ich meine Masterarbeit mit dem Thema Analyse von Sicherheitsrefactorings im Bereich von hochsensiblen Kreditkartendaten selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Wörtlich oder inhaltlich übernommene Literaturquellen wurden besonders gekennzeichnet. Die Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch nicht veröentlicht. Bergheim, den 10. Mai 2013 Sebastian Olscher

3 Abstract Diese Arbeit analysiert die Sicherheit von Software im Bereich von Anwendungen, die Kreditkartendaten verarbeiten, und präsentiert einen Katalog von Refactorings zur Erhöhung der Sicherheit in diesem Bereich. Nach einer kurzen Einführung, im Rahmen derer zusätzlich die persönliche Motivation dargelegt wird, konzentriert sich der Autor auf die Denition von sicherer Software. Er arbeitet, neben dem Sicherheitskonzept von Java, ozielle Denitionen sicherer Software heraus und deniert anschlieÿend den für diese Arbeit relevanten Begri von sicherer Software. Nach einer kurzen begriichen Einführung von Sicherheitsrefactorings konzentriert sich der Autor auf die Auistung von Sicherheitsrefactorings, welche im Zusammenhang mit Kreditkartendatensicherheit stehen. Dabei werden diese Refactorings anhand von oziellen Standards, wie dem PCI-DSS oder den OWASP Top 10, analysiert und eingeordnet. In Zusammenhang mit Sicherheitsrefactorings sind vier Arten relevant, die signikant unterschiedliche Sicherheitslücken schlieÿen. Ein schwacher Schutz von Systemressourcen und der Systeminformationen werden durch sichere Java-Standards ersetzt. Weiterhin werden als unsicher bekannte Softwarekonstrukte durch sicherere Konstrukte ersetzt. Darüber hinaus wird das Auslesen von Objektzuständen durch Kapselung ersetzt. Letztendlich werden weitere Refactorings zur Erhöhung der Sicherheit präsentiert. Die Arbeit zeigt, dass es Anwendungen gibt, die sicherer sind als andere, da sie sich in einem gewissen Rahmen bewegen und durch die angegebenen Sicherheitsrefactorings sicherer gemacht werden können.

4 Inhaltsverzeichnis 1 Einleitung Motivation Persönliche Motivation Sensibilisierung für die Kritikalität von Kreditkartendaten Ziele der Arbeit Denition sicherer Software Sicherheitskonzepte Javas Vier Schranken des Sicherheitskonzeptes Security-API OWASP Top PCI-DSS: Payment Card Industry - Data Security Standard Anforderung 6: Entwicklung und Pege sicherer Systeme und Anwendungen Denitionen sicherer Software BSI: IT-Sicherheitskriterien und Evaluierung Oracle: Secure Coding Guidelines Zwischenfazit Refactorings und Sicherheit Refactorings Denition von Refactoring Notwendigkeit von Refactorings Notwendigkeit von Tests Beweis der Korrektheit von Refactorings Ziele von Refactorings Klassizierung von Refactorings Refactorings und der Sicherheitsaspekt Einführung in Sicherheitsrefactorings Denition von Sicherheitsrefactorings Notwendigkeit für Sicherheitsrefactorings Notwendigkeit von Penetrationstests Bewertung von Sicherheitsrefactorings Aunden von Sicherheitslücken und die daraus resultierenden Sicherheitsrefactorings Tool-Unterstützung für Sicherheitsrefactorings und Schwachstellenprüfungen Refactorings und die Sicherheit von Kreditkartendaten Sicherheitsrefactorings Anforderungen des PCI-DSS Katalog von Sicherheitsrefactorings Schwachen Schutz der Systemressourcen und der Systeminformationen durch sichere Java-Standards ersetzen Als unsicher bekannte Softwarekonstrukte durch erneuerte Konstrukte ersetzen Auslesen von Objektzuständen durch Kapselung ersetzen Weitere Refactorings zur Erhöhung der Sicherheit Reection-API Fazit und Ausblick Fazit Ausblick Literaturverzeichnis 100 1

5 1 Einleitung 1.1 Motivation Persönliche Motivation Laut Tiobe-Index 2013 aus [TIOBE] ist Java aktuell eine der am Häugsten verwendeten und populärsten Programmiersprachen und ndet deshalb, auch unter dem Gesichtspunkt der Sicherheit, eine enorme Betrachtung. Da ich zurzeit im Umfeld von Java Programmierung beschäftigt bin, entsteht daraus eine hohe Motivation, Vorschläge für Sicherheitsrefactorings zu machen. Weiterhin wird diese Motivation durch einen konkreten Fall bei meinem Arbeitgeber bestärkt. Dort haben wir, ohne Berücksichtigung von besonderen Sicherheitsaspekten, eine Software entwickelt, welche Kreditkartendaten speichert. Diese Software ist ein Kreditkartendatentresor. Seit circa einem Jahr und nach Fertigstellung der Software strebt meine Firma aktuell eine Zertizierung nach PCI-DSS 1 an. Aus diesen Bestrebungen resultieren die Anforderungen des PCI-DSS an die bereits entwickelte Software und daraus ein Redesign der Anwendung, unter dem Gesichtspunkt des PCI-DSS, mit dem Fokus auf die Sicherheit von Kreditkartendaten. Aus diesem Grund betrit mich das Thema Sicherheitsrefactorings in Bezug auf die Sicherheit von sensiblen Kreditkartendaten direkt und akut. Aus der näheren Betrachtung des PCI-DSS resultierte bei mir eine neue Sensibilisierung für hoch sicherheitskritischen Daten, wie beispielsweise Kreditkartendaten. Betrachtet man aktuelle Beispiele, bei denen Kreditkartendaten verloren gegangen sind, wie beispielsweise prominente Vertreter wie Mister Spex und Sony und die daraus entstandenen Schäden, so trat bei mir relativ schnell die Motivation ein, dieses Thema näher zu analysieren. Ein weiterer motivierender Aspekt ist für mich der Kurs Moderne Programmiertechniken an der FernUni Hagen. Dort werden einige Refactoring-Methoden vorgestellt, um beispielsweise die Lesbarkeit zu erhöhen, Daten zu organisieren oder Bedingungen zu vereinfachen. Was dort keine Betrachtung ndet ist der Aspekt der Sicherheit von Java-Anwendungen. Diesen Bereich möchte ich im Rahmen der Arbeit analysieren, unsichere Java-Konstrukte heraus arbeiten und Vorschläge für Sicherheitsrefactorings erarbeiten. Diese Vorschläge werden nachfolgend beschrieben und der Bezug zur Sicherheit von Kreditkartendaten hergestellt. Dabei ist eine der grundlegenden Annahmen dieser Arbeit die, dass die Kreditkartendaten, neben personenbezogenen Daten und Authentizierungsdaten, zu den besonders kritischen Daten in der Programmierung gehören. Die in den nachfolgenden Kapiteln dargestellten Analysen, Beschreibungen und Vorschläge für Sicherheitsrefactorings unterliegen ausschlieÿlich der Betrachtung der Sicherheitsaspekte in der Programmiersprache Java. Manche Analogien zu anderen Programmiersprachen lassen sich sicherlich herstellen, da gewisse Sicherheitsaspekte Programmiersprachen unabhängig sind, sind jedoch kein Bestandteil dieser Arbeit. 1 Payment Card Industrie - Data Security Standard 2

6 1.1.2 Sensibilisierung für die Kritikalität von Kreditkartendaten Internetbestellungen oder Onlineeinkäufe erfahren aufgrund ihrer Einfachheit und Komfortabilität immer mehr Zustimmung und nehmen deshalb immer mehr zu. Diese Bestellungen lassen sich, fast immer, per Kreditkarte bezahlen, da diese Vorgehensweise für den Händler sehr ezient, kostengünstig, sicher und schnell in der Abwicklung ist. Leider hat diese Leichtigkeit der Bezahlung auch einen entscheidenden Nachteil: Dritte könnten, durch Erspähen der sensiblen Kreditkartendaten, diese genauso einfach einsetzen, wie es der tatsächliche Besitzer auch kann. Daraus resultiert eine relativ einfache Möglichkeit des Kreditkarten-Missbrauchs. Dabei haben Dritte es auf die hochsensiblen Daten einer Kreditkarte abgesehen. Diese sind die Kartennummer selbst, das Gültigkeitsdatum und die dreistellige Prüfsumme (CVC) auf der Rückseite der Karte. Gelangt jemand in den Besitz dieser Informationen, kann er die Kreditkarte prinzipiell erst einmal so einsetzen, als wäre es seine eigene. Manche Bestelldienste verlangen nicht einmal die Prüfsumme, so dass noch weniger Informationen ausreichen, um die Kreditkarte nach Belieben zu verwenden. Des weiteren ist es mit gestohlenen Kreditkartendaten möglich, weitere Kreditkartendaten zu fälschen, da die Kartenausgeber einen sehr einfachen Algorithmus zur Kartennummernerzeugung verwenden, welcher sich leicht nachvollziehen und nachbauen lässt. Aufgrund der relativ einfachen Möglichkeit mit Kreditkartendaten zu betrügen und der hohen Gewinnaussichten werden Kreditkartendaten als hoch sensibel eingestuft und müssen dementsprechend betrachtet und geschützt werden. Welche Auswirkungen ein Verlust von Kreditkartendaten haben kann, welche Institutionen davon betroen sind und welche Ausmaÿe dieser Verlust annehmen kann, sollen ein paar aktuelle Beispiele demonstrieren: 1. Verlust von Kreditkartendaten bei Sony im Jahre 2011: Im April 2011 wurde das PlayStation Network Opfer eines Hacker-Angries, bei dem Unbefugte Zugri auf persönliche Daten und Kreditkartendaten erhalten haben. Nicht betroen war bei diesem Angri die dreistellige Prüfsumme der Kreditkarte. Laut Sony verwenden rund 80 Millionen Kunden das PlayStation Network, davon rund 32 Millionen in Europa. Alle diese Kunden sind potentielle Opfer von Kreditkartendatendiebstahl. Dieser Fall ist einer der gröÿten Kreditkartendatendiebstähle, die bekannt geworden sind. Da der Verlust von Kreditkartendaten für Unternehmen eine sehr sensible und peinliche Angelegenheit darstellt, werden genaue Schadenszahlen nicht immer bekannt. In dem Fall von Sony sind nur Zahlen über Betroene, nicht jedoch über Schadensummen bekannt. 2. Datenklau bei Westermann im Jahre 2011: Ebenfalls im Jahre 2011 wurde der Schulbuchverlag Westermann Opfer einer Phishing 2 -Attacke. Im Juni 2011 erbeuteten Dritte, von Russland aus, Bankdaten und personenbezogene Daten der Westermann-Kunden. Kreditkartendaten seien davon laut Aussagen des Verlagssprechers nicht betroen gewesen. Dennoch ist der Verlust von Bankdaten mit dem Verlust von Kreditkartendaten gleichzusetzen, da der dadurch entstehende Schaden, ähnliche Ausmaÿe annehmen kann. 3. Verlust von Kreditkartendaten bei GlobalPayments - Dienstleister für MasterCard: Anfang des Jahres 2012, im März, bestätigte MasterCard einen Datendiebstahl bei der Firma Global Payments, einem Dienstleister für Zahlungsabwicklung. Dabei sind rund 1,5 Millionen Datensätze abgegrien worden. Es wurden sowohl personenbezogene Daten als auch Kreditkartendaten entwendet. Betroen seien das Ablaufdatum und die Kartennummer, nicht jedoch die Prüfsumme. Die PCI-DSS Zertizierung wurde Global Payments nach dem Zwischenfall vom PCI-DSS Concil entzogen. Dass auch eine Zertizierung nach PCI-DSS nicht immer vor Verlust von Kreditkartendaten schützt, zeigt dieses Beispiel. Dennoch bildet der PCI-DSS den Sicherheitsstandard 2 Phishing bezeichnet den Vorgang, dass Dritte über gefälschte URLs, s oder andere Mechanismen an Daten des Benutzers gelangen, für die sie nicht autorisiert sind. Diese Daten werden beispielsweise für unautorisierte Überweisungen verwendet. 3

7 bezüglich Kreditkartendaten. Das absolute Sicherheit nicht gewährleistet werden kann, wird im Zwischenfazit in Kapitel 2.5 und im Fazit in Kapitel 5.1 genauer beschrieben. 4. Mobiler Sektor immer interessanter für Datendiebstähle: Auch auf der Android-Platform wurde bereits demonstriert, dass gespeicherte Kreditkartendaten unbefugt ausgelesen werden können. Dabei wird das Nahfunkverfahren NFC 3 zum Auslesen von Kreditkartendaten verwendet. Durch eine, speziell zu demonstrativen Zwecken entwickelte Android-App, lieÿen sich die Kreditkartennummer und das Ablaufdatum auslesen. Auch in diesem Fall konnte die Prüfsumme nicht ausgelesen werden. NFC fähige Kreditkarten sind die PayWare von Visa und die PayPass von MasterCard. 5. Online-Brillenhändler verliert Kreditkartendaten: Beim Online-Brillenladen Mister-Spex wurden Anfang August 2012 durch einen Hackerangri Kundendaten entwendet. Ob dabei Kreditkartendaten verloren gegangen sind, ist nicht bekannt. Da Dritte jedoch in den Bereich der sensiblen Daten gelangen konnten, ist nicht auszuschlieÿen, dass sie ebenfalls Kreditkartendaten entwenden konnten. Sicher ist, dass die dabei entwendeten Kundendaten jedoch bereits ausgenutzt werden. 6. Online-Reiseportale ebenfalls Opfer von Kreditkartendatenverlust: 6.1. Der Fall Unister: Ein weiterer Fall von Kreditkartendatendiebstahl ereignete sich im Dezember 2012, bei dem von der Leipziger Unister-Gruppe Kreditkartendaten entwendet wurden. Zu Unister gehören Internet-Reiseportale, wie ab-in-den-urlaub.de und Andere. Betroen sind rund Kunden. Der dadurch entstandene Schaden beträgt rund Euro. Die entwendeten Kreditkartendaten wurden aus einem Altsystem gestohlen, welches bis 2011 verwendet wurde und nicht richtig abgesichert gewesen sei. Seit Februar 2012 ist das Unternehmen nach dem PCI-DSS ausgezeichnet und seitdem habe es, laut Aussage des Pressesprechers, keine weiteren Fälle des Kreditkartendatenverlusts gegeben. Dennoch wurde im Januar 2013 ein weitere Fall von Datenverlust bei Unister bekannt. Dabei konnten alle Reisenden mittels ihres gültigen Buchungscodes und -Adresse Zugri auf alle Buchungen erhalten Der Fall TravelTainment: Zum Abschluss der Bearbeitung des Themas wurde mein aktueller Arbeitgeber TravelTainment Opfer eines Hackerangris, bei dem unberechtigte Dritte Zugang zu Kreditkarteninformationen erlangt haben. TravelTainment betreibt ein zentrales Buchungssystem für Reiseportale, wie lastminute.de, weg.de und Expedia. Am 11. April 2013 wurde erstmalig ein unberechtigter Zugri festgestellt. Das Einfallstor, über das sich die Betrüger Zugang zum System verschat haben, wurde schnellstmöglich geschlossen. Das genaue Ausmaÿ ist aktuell nicht bekannt. TravelTainment hat die betroenen Kreditkartennummern den Kreditkarten- Unternehmen zur Verfügung gestellt, um die Vermeidung von Missbrauch zu ermöglichen. Der Vorfall wurde den zuständigen Behörden gemeldet, die die Ermittlungen führen. Das Landeskriminalamt Nordrhein-Westfalen und die Staatsanwaltschaft wurden am 11. April 2013 informiert. Gleiches gilt für die Kreditkartenunternehmen. Darüber hinaus hat TravelTainment Strafanzeige gegen unbekannt erstattet. Alle Systeme von TravelTainment wurden (mit Unterstützung externer Sicherheitsexperten) einer sorgfältigen Überprüfung unterzogen. Dabei wurden keine weiteren unberechtigten Zugrie und keine Schwachstellen in den Systemen festgestellt. 3 Near Field Communication ist ein Standard zum kontaktlosen Austausch von Daten über kurze Strecken von bis zu 10 cm über Funk. 4

8 7. Bundeskriminalamt warnt vor Datenklau im Internet: Auch das BKA warnt in [BKACB] vor der immer stärkeren Bedrohung durch den Internet-Datenklau. Im Jahre 2011 gab es rund Fälle von Internet-Kriminalität 4. Der mit Abstand gröÿte Anteil an Straftaten, insgesamt ca Fälle, also rund 45%, fällt in die Kategorie Computerbetrug, zu dem auch das Phishing von Kreditkartendaten gehört. Die Schadensumme durch Internetkriminalität betrug insgesamt rund 71,2 Millionen Euro. Dabei wurde ein Anteil von rund 50 Millionen Euro, also rund 70% der Schadensumme, durch Computerbetrug verursacht. Die Zahl ist tendenziell steigend, da auch die Bedrohung, die aus dem Datendiebstahl aus Smartphones resultiert, ständig zunimmt. Um den Kartenmissbrauch zu verhindern, müssen Softwareanbieter, die Kreditkartendaten in Software verarbeiten oder ggf. speichern, Sicherheitsmechanismen verwenden, die über die normalen Datenschutzsicherheitsmechanismen hinaus reichen. Diese Sicherheitsmechanismen werden in dieser Arbeit erläutert. Darauf aufbauend werden nachfolgend Vorschläge für Sicherheitsrefactorings erteilt. 1.2 Ziele der Arbeit Dieses Kapitel wird die Ziele dieser Arbeit darstellen. Dabei sei angemerkt, dass sich diese Arbeit, in allen Beispielen und Demonstrationen, sofern nicht anders dargestellt, auf die aktuell gültige Oracle Java-7 Update 10 Version 5 bezieht. Mittels Java lassen sich unterschiedliche Techniken implementieren: 1. Applets sind binäre Java-Programme, welche auf einem Server abgelegt sind, jedoch innerhalb des Browsers im Client ausgeführt werden. Genauer gesagt, wird eine spezielle Version der JVM als Plugin in den verschiedenen Browsern installiert, in dem die Java-Applets schlussendlich ausgeführt werden. 2. Standalone Anwendungen werden komplett unabhängig von externen Programmen direkt in der JVM des Betriebssystems ausgeführt. Standalone Anwendungen erfüllen in der Regel mindestens die J2SE-Spezikationen. 3. Servlets und JSPs 6 sind Möglichkeiten Webanwendungen für Java zu erstellen. Servlets sind Java-Klassen, deren Instanzen in einem Webserver ausgeführt werden und Anfragen entgegen nehmen. JSPs bauen auf HTML auf und sind eine, ursprünglich von Sun entwickelte, Möglichkeit zur Gestaltung von dynamischen Webseiten. 4. Enterprise Java Beans (EJB) sind standardisierte Komponenten innerhalb eines J2EE- Servers. EJBs werden standardmäÿig in Webcontainern ausgeführt und dienen der Entwicklung von mehrschichtigen Webanwendungen. 5. JNLP 7 Clients sind Anwendungen, die über verteilte Systeme auf dem Client ausgeführt werden, jedoch auf einem Server als Binärdateien abgelegt sind. Im Gegensatz zu Applets benötigen JNLP Clients keinen Browser. Die unterschiedlichen Techniken in der Java-Welt haben auch unterschiedliche Anforderungen an die Sicherheit. Aus diesem Grund beschäftigt sich die Arbeit hauptsächlich mit J2SE Standalone Anwendungen und Servlets. Einige der angegebenen Sicherheitsrefactorings lassen sich jedoch auch ohne Weiteres auf andere Java Techniken anwenden. 4 In [BKACB] als Cybercrime bezeichnet. 5 Das Oracle Java-7 Update 10 war zu Beginn der Recherche, für diese Arbeit, das aktuelle, so dass sich alle Beispiele auf dieses beziehen. Die Release-Notes zu diesem Update sind aus [OURN] entnommen. 6 Java Server Pages 7 Java Network Launching Protocol 5

9 Die Ziele dieser Arbeit lassen sich wie folgt zusammenfassen: 1. Verständnis für Sicherheit während der Entwicklung mit Java vermitteln. Die Arbeit wird dem Leser ein Grundverständnis darüber vermitteln, welche Aspekte der Sicherheit während der Programmierung mit Java beachtet werden können. Dabei werden unter anderem die generellen Sicherheitskonzepte Javas vorgestellt werden. Diesem Ziel widmet sich das Kapitel 2 Denition sicherer Software. 2. Aufklärung über die häugsten Schwachstellen von Web basierten Anwendungen. Diese Arbeit wird dem Leser die häugsten Schwachstellen von extern erreichbaren Anwendungen und den zugehörigen Angrisszenarios darstellen. Die Darstellung dieser Schwachstellen ndet im Kapitel 2.2 OWASP Top 10 statt. 3. Sensibilisierung für die Kritikalität von Kreditkartendaten. Die Arbeit wird dem Leser einen Eindruck vermitteln, wie sensibel der Umgang mit Kreditkartendaten stattzunden hat. Dazu wurden aktuelle Fälle von Kreditkartendatendiebstahl und deren Auswirkungen dargestellt. Darüber hinaus wird es ein Ziel sein, dem Leser zu vermitteln, dass Kreditkartendaten besonders schützenswert sind und eine besondere Beachtung bei der Softwareentwicklung und den Softwarerefactorings erhalten muss. Eine Beschreibung dieser Vorfälle von Kreditkartendatendiebstahl wurden dem Leser bereits im Kapitel Sensibilisierung für die Kritikalität von Kreditkartendaten nahe gelegt. Die weiteren Kapitel werden diese Sensibilisierung intensivieren. Im späteren Fazit in Kapitel 5.1 wird der Kritikalität von Kreditkartendaten ebenfalls Rechnung getragen. 4. Die Rahmenbedingungen, die während der Entwicklung von Kreditkartendaten verarbeitenden Systemen gelten, abstecken. Diese Arbeit wird ein Verständnis darüber vermitteln, was die Kreditkartenindustrie für Rahmenbedingungen an die Entwicklung von Applikationen stellt, die Kreditkartendaten verarbeiten oder speichern. Dabei wird der aktuell gültige PCI-DSS in seinen wichtigsten Aspekten dargestellt. Der PCI-DSS wird im Kapitel 2.3 PCI-DSS: Payment Card Industry - Data Security Standard beschrieben. 5. Darstellung von unsicheren Softwarekonstrukten und deren Refactorings. Diese Arbeit wird vermitteln, welche Softwarekonstrukte in Java besonders anfällig sind und wie man Refactorings vornimmt, um diese Artefakte abzusichern. Dieses Ziel ist eines der Hauptziele dieser Arbeit. Deshalb widmet sich diesem Ziel auch das komplette Kapitel 4 Sicherheitsrefactorings. Diese Arbeit wird, zur Erfüllung der Ziele, zunächst die Bedeutung von Security-Antipatterns darstellen, um dann die zugehörigen Sicherheitsrefactorings einzuführen. Dabei liegt der Fokus wie angemerkt auf 100-Prozent reinen Java-Anwendungen, die einer vollen J2SE Implementation genügen. Dieses sind beispielsweise Middleware-Komponenten, wie der Apache Tomcat Server, oder der JBoss Application Server. Weitere Komponenten, die dieses Kriterium erfüllen, sind OpenOce, Lotus Notes und Eclipse. 6

10 2 Denition sicherer Software Dieses Kapitel wird einen Einblick geben, welche vielschichtigen Aspekte die Denition von sicherer Software in sich birgt. Um den Einstieg in die Denition von sicherer Software zu erleichtern wird dieses Kapitel mit einem Zitat beginnen. Das Zitat aus [JGDSPJS] besagt: The rst step in securing an application is to read your organization s security policy. If you are part of a small organization, one may not exist. In that case, you should write one. Der erste Schritt zur Denition sicherer Software sollte es also sein, eine Security Policy und eine Secure Coding Guideline aufzustellen. Die Denition einer Secure Coding Guideline hat Oracle, mit dem in Kapitel beschriebenen Dokument, geliefert. Zwei Statements von bekannten Organisationen, die an dieser Stelle einleitend eingeführt werden, sollen das Verständnis für sichere Software fördern: Denition von sicherer Software vom Department of Defense in den United States aus dem Jahre 2008: A condition that results from the stablishment and maintenance of protective measures that ensure a state of inviolability from hostile acts or inuences Denition der Yale University aus dem Jahr 2006: Means used to protect against the unauthorized use of and prevent unauthorized access to digital information Was sichere Software, im Rahmen dieser Arbeit darstellt, wird in diesem Kapitel erarbeitet. 2.1 Sicherheitskonzepte Javas Vier Schranken des Sicherheitskonzeptes Die grundlegende Idee des Java-Sicherheitskonzeptes ist es, den Hauptspeicher, den Festplattenspeicher, das Betriebssystem und den Programmzustand zu schützen. Bei der Denition des Sprachkonzeptes von Java wurde ganz bewusst auch auf das Thema Sicherheit geachtet und ndet sich in den zentralen Sicherheitselementen Javas wieder. Das Sicherheitskonzept Javas beruht auf mehreren Schranken, die ein Java-Programm zu überwinden hat, bevor es als sicheres Programm ausgeführt werden kann. Die Bedeutung der Schranken soll anhand einer kleinen Demonstration erläutert werden. Dazu soll der Weg einer Java-Klasse MyJavaClass dargestellt und erläutert werden, den sie zu bestreiten hat, bevor sie in der JVM ausgeführt wird. Die hier dargestellten Ausführungen stellen eine Zusammenfassung der wichtigsten Aspekte aus [JGDSPJS], [RSJ2] und [CUJ7] dar. Die erste Schranke des Sicherheitskonzeptes von Java, die die MyJavaClass-Klasse zu überwinden hat, stellt die Sprachdenition an sich dar. Zur Sicherheit tragen der Verzicht auf Pointer und die damit verbundene Zeigerarithmetik 8 bei. Dadurch, dass Java keine Pointer verwendet, werden 8 Pointer und Zeigerarithmetik sind aus C/C++ bekannt. Der Verzicht beschreibt die Tatsache, dass Java aus C/C++ weiterentwickelt wurde. 7

11 viele Umwandlungen und Zugrie vorab, also während der Compilezeit, auf ihre Zulässigkeit geprüft. Darüber hinaus gibt es Laufzeitprüfungen. Die Exceptions ClassCastException und die ArrayStoreException sind Resultate von nicht erfolgreichen Laufzeitprüfungen. Eine ClassCastException tritt bei einer fehlgeschlagenen dynamischen Typprüfung wie in diesem Beispiel auf: Object x = new Integer(0); System.out.println((String) x); Dieser Code wird zur Laufzeit mit der folgenden Exception beendet: java.lang.classcastexception: java.lang.integer cannot be cast to java.lang.string Ein weiteres Beispiel für eine nicht erfolgreiche Laufzeitprüfung ist die ArrayStoreException. Die folgenden Anweisungen sind ohne Fehler ausführbar: class Wohnung extends Objekt {} Objekt objekte[]; Wohnung wohnungen[]; objekte = wohnungen; Allerdings anschlieÿend tritt bei der Anweisung objekte[1] = new Objekt() eine java.lang.arraystoreexception auf. Das Grundproblem in diesem Beispiel ist, dass es sich bei der Zuweisung der Aliase der Arrays um eine zuweisungskompatible Anweisung handelt, da Wohnungen Subtypen von Objekten sind, ein Objekt jedoch nicht als Wohnung auftreten kann. Der in [FSOOP] beschriebene parametrische Polymorphismus versucht das Problem der Downcasts zu entschärfen. Der parametrischen Polymorphismus erlaubt es eine Typdenition anzugeben, die durch Parametrisierung viele Typen beschreibt. Verwendet man in diesem Beispiel den parametrischen Polymorphismus inklusive Generics, so könnte es wie folgt erweitert werden: class Wohnung extends Objekt {} List<Objekt> objekte; List<Wohnungen> wohnungen; Der Versuch die Anweisung objekte = wohnungen; zu kompilieren, wird bereits vom Compiler unterbunden. Eine ArrayStoreException oder ein vergleichbares Pendant bezüglich Listen, kann nicht auftreten. Um das problematische Verhalten wie beim Auftreten der ArrayStoreException zu verhindern, folgt bei Generics aus S Subtyp von T nicht List<S> Subtyp von List <T>. Damit kann ein Fehler wie die ArrayStoreException nicht auftreten, aber die Möglichkeiten der Sprache wären eingeschränkt. Eine Lösung sind jetzt die Wildcards. Diese Lösung, die angegebenen Beispiele und genauere Informationen können [FSOOP] entnommen werden. Durch nach oben beschränkte Typ-Wildcards List<? extends Number> liste; 8

12 sind lesende Zugrie gestattet. Durch nach unten beschränkte Typ-Wildcards List<? super Integer> liste; sind schreibende Zugrie erlaubt. Die Speicherallokation und die Speicherfreigabe wurden, im Gegensatz zu C/C++, vom Benutzer auf das System verlagert. Diese Schritte haben, in der Sprachdenition Javas, ein erhebliches Maÿ an Fehlerquellen und damit Sicherheitslücken geschlossen. Ein weiterer Schritt zur Erhöhung der Sicherheit und der Vermeidung von Fehlern ist das Verbot des direkten Zugris auf Objekte. In Java ist man dadurch gezwungen, über Synonyme/Aliase auf Objekte zuzugreifen. Durch die Verwendung von Aliase erlangt jedoch auch das sogenannte Aliasing-Problem seine Bedeutung. Aliasing bezeichnet das Phänomen, dass mehrere Referenzen das selbe Objekt bezeichnen. Das Aliasing-Problem wird in [FSMP] wie folgt beschrieben:... die Veränderung des durch eine Variable bezeichneten Objekts zugleich die Veränderung der durch all seine Aliase bezeichneten Objekte (die ja alle dieselben sind) bewirkt, kann nämlich unerwünscht, ja ein Programmierfehler sein. Des weiteren ist Java eine objektorientierte Sprache, wodurch alle theoretischen Sicherheitsvorteile der objektorientierten Programmierung sowohl in der Syntax, als auch in der Semantik der Programme, wiederzunden sind. Dazu zählt, als prominentester Vertreter, das Verstecken von Daten hinter privaten Deklarationen: Eines der Grundprinzipien der objektorientierten Programmierung, nämlich das Prinzip der Datenkapselung. Auÿerdem bietet die Sprachdenition noch weitere Sicherheit bringende Elemente. Klassen, Variablen und Methoden können als nal deklariert werden, wodurch das Ableiten, das Verändern und das Überschreiben nicht mehr möglich ist. Auÿerdem unterliegt Java einer strengen statischen und dynamischen Typisierung und einer sicheren Typumwandlung, vgl. [FSMP]. Die Typumwandlung ist in Java sicher, da die Zuweisungskompatibilität zu jeder Zeit überprüft und gewährleistet wird, oder mit einer entsprechenden Exception zurückgewiesen wird. Die Sprachdenition als Sicherheitsschranke innerhalb des Java-Sicherheitskonzeptes wird in Kapitel 4 Sicherheitsrefactorings eine bedeutende Rolle spielen. Aus der Sprachdenition als Sicherheitsaspekt lassen sich direkt Sicherheitsrefactorings ableiten. 9

13 Nachdem die Klasse die erste Hürde, die der Sprachdenition, genommen hat und vom Compiler in eine.class Datei kompiliert wurde, wartet die erste Laufzeitüberprüfung auf sie. Der Bytecode- Verier stellt die erste Schranke dar, die überwunden werden muss, wenn eine Java-Klasse ausgeführt werden soll. Dabei überprüft der Bytecode-Verier, dass zentrale Sicherheitsregeln eingehalten werden. Eine dieser Überprüfungen ist die, dass der Bytecode wohl geformt ist. Ein Bytecode wird als wohl geformt bezeichnet, wenn er keine Unterbrechungen aufweist. Unterbrechungen des Bytecodes können dann entstehen, wenn in diesen nachträglich etwas eingeführt wurde. Dieses nachträgliche Einführen würde auf eine erhebliche Sicherheitsverletzung schlieÿen lassen. Auÿerdem wird vom Bytecode-Verier überprüft, ob der Index auf Variablen korrekt ist und Programmsprünge nicht auf einer Stelle auÿerhalb des Programmes enden. Die Basis für den Bytecode-Verier bilden die Informationen über die in der Klasse verwendeten Typen. Der Standard Java-Bytecode enthält zu diesem Zweck mehr Typinformationen, als zur korrekten Ausführung notwendig wäre. Genau auf diese Zusatzinformationen ist der Bytecode-Verier angewiesen. Beispielsweise werden zusätzlich Symboltabellen abgelegt, so dass zur Laufzeit sichergestellt werden kann, dass Objekte nicht unbemerkt manipuliert werden können. Bei der Analyse des kompletten Bytecodes werden die Typen hinsichtlich ihrer Parameter, eventueller Namesraumkonikte, Argumente und Ergebnisse überprüft. Durch den Bytecode-Verier sollen Stack-Overows, ungültige Registerzugrie, falsche Parameter, Argumente oder Ergebnisse, ungültige Konvertierungen und illegale Zugrie auf Objektfelder verhindert werden. 10

14 Da es sich bei der Klasse MyJavaClass um eine freundliche Klasse handelt, stellt der Bytecode- Verier keine Gefahr fest und lässt die Klasse zur nächsten Sicherheitsschranke, dem Classloader, passieren. Der Classloader analysiert die Klasse und versieht sie nach verschiedenen Kriterien mit Rechten. Der Classloader unterbindet das Austauschen einer im System als wichtig gekennzeichneten Klasse. Dabei sind die Klassen hierarchisch angeordnet, sodass Klassen aus unteren Ebenen als wichtiger erachtet werden als Klassen aus höheren Ebenen. Die Klasse Object bendet sich immer auf einer niedrigeren Ebene als selbst denierte Klassen. Dadurch unterbindet der Classloader jeden Versuch diese Klasse zu überschreiben oder auszutauschen, da diese Klasse als wichtig angesehen wird. Die letzte Hürde, die die Klasse zu überwinden hat, bevor sie ausgeführt wird, stellt der SecurityManager dar. Der SecurityManager ist zwischen dem Betriebssystem und einer Bibliotheksmethode anzusiedeln. Seit dem JDK 1.2 wurden einige Aufgaben des SecurityManagers vom Access-Controller übernommen. Da der SecurityManager jedoch immer noch die zentrale Sicherheitssteuereinheit darstellt, wird in dieser Arbeit immer vom SecurityManager gesprochen. Der SecurityManager ist als Klasse im Package java.lang zu nden und soll, in diesem Fall, das Verhalten der MyJavaClass zur Laufzeit überwachen und vermeindliche schädliche Aktionen oder Zugrie auf andere Klassen unterbinden. Zu beachten ist, dass der SecurityManager nur bei Java Applets standardmäÿig eingeschaltet ist und bei Java Applikationen explizit hinzugenommen werden muss. Der SecurityManager, sofern er eingeschaltet ist, überwacht und überprüft, vor der Ausführung bestimmter Operationen, die Unbedenklichkeit und hindert unsere Klasse gegebenenfalls an der Ausführung, falls ihr die Berechtigung dazu fehlt. Eine eigenständige Java Applikation wie MyJavaClass darf standardmäÿig alle Operationen ausführen, es sei denn, es werden gewisse Aktionen durch einen SecurityManager explizit verboten. Ein SecurityManager wird wie folgt registriert: System.setSecurityManager(new MySecurityManager());. Anhand des nachfolgenden Beispiels werden einige der wichtigsten Methoden und deren Default-Implementierung des SecurityManagers dargestellt: 11

15 Listing 1: Darstellung der wichtigsten Methoden des SecurityManagers 1 package de. o l s c h e r. s e c u r i t y. securitymanager ; 3 import java. i o. F i l e ; 4 import java. i o. F i l e D e s c r i p t o r ; 5 import java. i o. F i l e P e r m i s s i o n ; 6 import java. lang. r e f l e c t. Member ; 7 import java. net. SocketPermission ; 8 import java. s e c u r i t y. AccessControlContext ; 9 import java. s e c u r i t y. A c c e s s C o n t r o l l e r ; 10 import java. s e c u r i t y. Permission ; 11 import java. s e c u r i t y. P r i v i l e g e d A c t i o n ; 13 import sun. s e c u r i t y. u t i l. S e c u r i t y C o n s t a n t s ; 15 p u b l i c c l a s s MySecurityManager extends SecurityManager { 17 /* * 18 * Throws a S e c u r i t y E x c e p t i o n i f the r e q u e s t e d 19 * a ccess, s p e c i f i e d by the given permission, i s 20 * not permitted based on the s e c u r i t y p o l i c y 21 * c u r r e n t l y i n e f f e c t. 22 */ 24 p u b l i c void checkpermission ( Permission perm ) { 25 java. s e c u r i t y. A c c e s s C o n t r o l l e r. checkpermission ( perm ) ; 26 } 28 /* * 29 * Throws a S e c u r i t y E x c e p t i o n i f the c a l l i n g 30 * thread i s not allowed to c r e a t e a new c l a s s 31 * l o a d e r. 32 */ 34 p u b l i c void checkcreateclassloader ( ) { 35 checkpermission ( S e c u r i t y C o n s t a n t s.create_classloader_permission) ; 36 } 38 /* * 39 * Throws a S e c u r i t y E x c e p t i o n i f the c a l l i n g 40 * thread i s not allowed to modify the thread 41 * argument. 42 * 43 * This method i s invoked f o r the c u r r e n t 44 * s e c u r i t y manager by the stop, suspend, 45 * resume, s e t P r i o r i t y, setname, and setdaemon 46 * methods o f c l a s s Thread. 47 */ 49 p u b l i c void checkaccess ( Thread t ) { 50 i f ( t == n u l l ) { 51 throw new NullPointerException ("thread can't be null") ; 52 } 53 i f ( t. getthreadgroup ( ) == rootgroup ) { 54 checkpermission ( S e c u r i t y C o n s t a n t s.modify_thread_permission) ; 55 } e l s e { 12

16 56 // j u s t r e t u r n 57 } 58 } 60 /* * 61 * Throws a S e c u r i t y E x c e p t i o n i f the c a l l i n g 62 * thread i s not allowed to read from the 63 * s p e c i f i e d f i l e d e s c r i p t o r. 64 * 65 */ 67 p u b l i c void checkread ( F i l e D e s c r i p t o r fd ) { 68 i f ( fd == n u l l ) { 69 throw new NullPointerException ("file descriptor can't be null") ; 70 } 71 checkpermission ( new RuntimePermission ("readfiledescriptor") ) ; 72 } 74 /* * 75 * Throws a S e c u r i t y E x c e p t i o n i f the c a l l i n g 76 * thread i s not allowed to w r i t e to the 77 * s p e c i f i e d f i l e d e s c r i p t o r. 78 * 79 */ 81 p u b l i c void checkwrite ( F i l e D e s c r i p t o r fd ) { 82 i f ( fd == n u l l ) { 83 throw new NullPointerException ("file descriptor can't be null") ; 84 } 85 checkpermission ( new RuntimePermission ("writefiledescriptor") ) ; 87 } 89 /* * 90 * This method i s used by the l o a d C l a s s method 91 * o f c l a s s l o a d e r s. 92 * 93 * This method f i r s t g e t s a l i s t o f r e s t r i c t e d 94 * packages by o b t a i n i n g a comma s e p arated l i s t 95 * from a c a l l to 96 * java. s e c u r i t y. S e c u r i t y. getproperty 97 * (" package. a c c e s s "), and checks to s e e i f pkg 98 * s t a r t s with or e q u a l s any o f the r e s t r i c t e d 99 * packages. I f i t does, then checkpermission 100 * g e t s c a l l e d with the 101 * RuntimePermission (" a c c e s s C l a s s I n P a c k a g e. " 102 * +pkg ) p e r m i s s i o n. 103 */ 105 p u b l i c void checkpackageaccess ( S t r i n g pkg ) { 106 i f ( pkg == n u l l ) { 107 throw new NullPointerException ("package name can't be null") ; 108 } 110 S t r i n g [ ] pkgs ; 111 synchronized ( packageaccesslock ) { 112 /* 113 * Do we need to update our property array? 13

17 114 */ 115 i f (! packageaccessvalid ) { 116 S t r i n g tmppropertystr = A c c e s s C o n t r o l l e r 117. d o P r i v i l e g e d ( new P r i v i l e g e d A c t i o n <String >() { 118 p u b l i c S t r i n g run ( ) { 119 r e t u r n java. s e c u r i t y. S e c u r i t y. getproperty ("package.access") ; 120 } 121 }) ; 122 packageaccess = getpackages ( tmppropertystr ) ; 123 packageaccessvalid = t r u e ; 124 } 126 // Using a snapshot o f packageaccess 127 // don ' t c a r e i f s t a t i c f i e l d 128 // changes a f t e r w a r d s ; array c o n t e n t s won ' t 129 // change. 130 pkgs = packageaccess ; 131 } 133 /* 134 * Traverse the l i s t o f packages, check f o r 135 * any matches. 136 */ 137 f o r ( i n t i = 0 ; i < pkgs. l e n g t h ; i ++) { 138 i f ( pkg. startswith ( pkgs [ i ] ) pkgs [ i ]. e q u a l s ( pkg + ".") ) { 139 checkpermission ( new RuntimePermission ("accessclassinpackage." + pkg ) ) ; 140 break ; // No need to continue ; only need 141 // to check t h i s once 142 } 143 } 144 } 146 /* * 147 * The d e f a u l t p o l i c y i s to allow a c c e s s to 148 * PUBLIC members, as w e l l as a c c e s s to c l a s s e s 149 * that have the same c l a s s l o a d e r as the 150 * c a l l e r. In a l l other cases, t h i s method c a l l s 151 * checkpermission with the 152 * RuntimePermission (" accessdeclaredmembers ") 153 * p e r m i s s i o n. 154 */ 156 p u b l i c void checkmemberaccess ( Class <?> c l a z z, i n t which ) { 157 i f ( c l a z z == n u l l ) { 158 throw new NullPointerException ("class can't be null") ; 159 } 160 i f ( which!= Member. PUBLIC) { 161 Class s t a c k [ ] = getclasscontext ( ) ; 162 /* 163 * s t a c k depth o f 4 should be the c a l l e r o f 164 * one o f the methods i n java. lang. Class 165 * that invoke checkmember a c c e s s. The s t a c k 166 * should look l i k e : 167 * 168 * somecaller [ 3 ] 169 * java. lang. Class. somereflectionapi [ 2 ] 170 * java. lang. Class. checkmemberaccess [ 1 ] 14

18 171 * SecurityManager. checkmemberaccess [ 0 ] 172 */ 173 i f ( ( s t a c k. l e n g t h < 4) 174 ( s t a c k [ 3 ]. getclassloader ( )!= c l a z z. getclassloader ( ) ) ) { 175 checkpermission ( S e c u r i t y C o n s t a n t s.check_member_access_permission) ; 176 } 177 } 178 } 180 } Dem selbst implementierten SecurityManager können durch sogenannte Policy-Dateien Rechte mitgegeben werden. Der SecurityManager wird die Policy-Dateien unter anderem dann berücksichtigen, wenn der JVM beim Start der Parameter -Djava.security.policy=mypolicy.policy hinzugefügt wird. An dieser Stelle wird nicht weiter auf die Policy-Dateien eingegangen, da der Fokus der Arbeit auf den Implementierungsdetails von Java liegt und Sicherheitsrefactorings analysiert werden. Die Policy-Dateien werden jedoch bei der Vorstellung eines Tools für Sicherheitsrefactorings in Kapitel Tool-Unterstützung für Sicherheitsrefactorings und Schwachstellenprüfungen noch einmal aufgegrien werden. Um die Sicherheitschecks zu visualisieren, ist es möglich, die JVM mit dem Parameter -Djava.security.debug=all auszuführen, um somit ein Log für jede Sicherheitsüberprüfung durch den SecurityManager zu erhalten. Verweigert der SecurityManager einer Operation die Ausführung, so wird dies mit dem Werfen einer SecurityException ausgedrückt. 15

19 Nach Überwindung der Sicherheitsschranken wird die Klasse MyJavaClass von der JVM ausgeführt. An dieser Stelle soll ein Querverweis auf die Verwendung von nativen Methoden gegeben werden. Die Verwendung dieser Methoden beeinträchtigt nicht nur enorm die Platformunabhängigkeit, sondern birgt darüber hinaus ein gehöriges Sicherheitsrisiko. Deshalb wurde bei der Implementierung der Klasse MyJavaClass bewusst auf die Verwendung von nativem Code verzichtet. Ist eine Verwendung jedoch unumgänglich, empehlt es sich, die im Kapitel 4 Sicherheitsrefactorings angegebenen Refactorings zu beachten. 16

20 2.1.2 Security-API Zusätzlich zu den vier Stufen des Sicherheitskonzeptes gibt es Java-Bibliotheken, die sich der Sicherheit gewidmet haben. Diese lassen sich über den Sammelbegri der Security-API aus [CUJ7] und [CUJI] zusammenfassen: Java Cryptography Architecture (JCA) Die JCA bietet die Möglichkeit der Verschlüsselung und der Nachrichten-Authentizierung. Seit dem JDK 1.4 wurde die JCA durch die JCE 9 erweitert. Die Implementierungen der JCA und JCE benden sich im Java-Package javax.crypto. Um Verschlüsselungen durchzuführen gibt es in der Kryptograe zwei Varianten: Die symmetrische und die asymmetrische Verschlüsselung 10. Für die symmetrische Schlüsselerzeugung kann die KeyGenerator- und für die asymmetrische die KeyPairgenerator-Fabrik verwendet werden. Eine zentrale Rolle der JCE bildet die Klasse javax.crypto.cipher. Diese Klasse kann zur Verschlüsselung verwendet werden. Nachfolgend ist ein kurzes Beispiel aus [CUJ7] zum Einsatz der Klasse Cipher dargestellt: 181 package de. o l s c h e r. s e c u r i t y. crypto ; Listing 2: Beispiel zum Einsatz der Klasse Cipher 183 import java. s e c u r i t y. InvalidKeyException ; 184 import java. s e c u r i t y. Key ; 185 import java. s e c u r i t y. NoSuchAlgorithmException ; 187 import javax. crypto. BadPaddingException ; 188 import javax. crypto. Cipher ; 189 import javax. crypto. I l l e g a l B l o c k S i z e E x c e p t i o n ; 190 import javax. crypto. NoSuchPaddingException ; 192 p u b l i c c l a s s CipherExample { 194 p u b l i c void encrypt ( byte [ ] decrypted, Key key ) 195 throws NoSuchAlgorithmException, NoSuchPaddingException, 196 InvalidKeyException, I l l e g a l B l o c k S i z e E x c e p t i o n, BadPaddingException { 198 Cipher c i p h e r = Cipher. g e t I n s t a n c e ("AES") ; 199 c i p h e r. i n i t ( Cipher.ENCRYPT_MODE, key ) ; 200 byte [ ] encrypted = c i p h e r. dofinal ( decrypted ) ; 202 } 204 } Verwaltung von Schlüsseln, Signierung und digitale Unterschriften Die Schlüsselverwaltung der Security-API dient der Verwaltung von Schlüsseln in Keystores und dem Prüfen von digitalen Zertikaten. Zertikate können unter anderem dazu verwendet werden, eine Applikation mit einer Person zu verbinden. Dadurch können, unter gewissen Umständen, einer Applikation doch mehr Rechte zugestanden werden, als dieses unsignierten Applikationen zugestanden wird. Der wichtigste Standard für Zertikate ist der X.509 Standard, beschrieben in [X509]. Des weiteren können digitale Unterschriften dazu genutzt werden, um Veränderungen von Botschaften zu bemerken. Dabei wird meistens eine Prüfsumme errechnet, die zusätzlich zur Botschaft übermittelt wird. Möchte ein Dritter eine Botschaft manipulieren, muss er zusätzlich die Prüfsumme verändern. Wird die Prüfsumme getrennt von der Botschaft übertragen, fällt es 9 Java Cryptography Extension 10 Eine Einführung in Kryptograe kann [MKEE] entnommen werden 17

am Beispiel - SQL Injection

am Beispiel - SQL Injection am Beispiel - SQL Injection Einführung Warum ist Sicherheit ein Software Thema? Sicherheit in heutigen Softwareprodukten & Trends OWASP Top 10 Kategorien Hacking Demo SQL Injection: der Weg zu den Daten

Mehr

am Beispiel - SQL Injection

am Beispiel - SQL Injection am Beispiel - SQL Injection Einführung } Warum ist Sicherheit ein Software Thema? } Sicherheit in heutigen Softwareprodukten & Trends } OWASP Top 10 Kategorien Hacking Demo } SQL Injection: der Weg zu

Mehr

OpenWAF Web Application Firewall

OpenWAF Web Application Firewall OpenWAF Web Application Firewall Websecurity und OpenWAF in 60 Minuten Helmut Kreft Fuwa, 15.11.2010 Agenda Webapplikationen? Furcht und Schrecken! OWASP Top 10 - Theorie und Praxis mit dem BadStore Umgang

Mehr

Wie steht es um die Sicherheit in Software?

Wie steht es um die Sicherheit in Software? Wie steht es um die Sicherheit in Software? Einführung Sicherheit in heutigen Softwareprodukten Typische Fehler in Software Übersicht OWASP Top 10 Kategorien Praktischer Teil Hacking Demo Einblick in die

Mehr

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH www.oneconsult.com

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH www.oneconsult.com itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 13.03.2013 Agenda Vorstellung Open Web Application Security Project (OWASP) Die OWASP Top 10 (2013 RC1) OWASP Top 3 in der

Mehr

Schwachstellenanalyse 2013

Schwachstellenanalyse 2013 Schwachstellenanalyse 2013 Sicherheitslücken und Schwachstellen in Onlineshops Andre C. Faßbender Schwachstellenforschung Faßbender 09.01.2014 Inhaltsverzeichnis 1. Abstract... 3 2. Konfiguration der getesteten

Mehr

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5. Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.21 Die Zusammenstellung der Gefährdungen für den Baustein 5.21 bediente sich

Mehr

web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Montag, 14. Mai 12

web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Montag, 14. Mai 12 Hochschule Niederrhein University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Inhalt

Mehr

Web Application Security

Web Application Security Web Application Security Was kann schon schiefgehen. Cloud & Speicher Kommunikation CMS Wissen Shops Soziale Netze Medien Webseiten Verwaltung Chancen E-Commerce Kommunikation Globalisierung & Digitalisierung

Mehr

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff

Java Security. Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Java Security Sicherheit durch Classloader, Security Manager und Co. Prof. Dr. Nikolaus Wulff Das Java Sicherheitskonzept Java wurde von Anfang an auf Sicherheit im Internet ausgelegt. Unsicherer Code

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Single-Sign-On mit Java und Kerberos. Michael Wiesner, SOFTCON IT-Service GmbH

Single-Sign-On mit Java und Kerberos. Michael Wiesner, SOFTCON IT-Service GmbH Single-Sign-On mit Java und Kerberos Michael Wiesner, SOFTCON IT-Service GmbH Über mich Softwareentwickler und Sicherheitsexperte bei der Firma SOFTCON Projekte: Enterprise Software, Webportale, Sicherheitslösungen,...

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Datensicherheit. Vorlesung 7: 29.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Datensicherheit. Vorlesung 7: 29.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter Datensicherheit Vorlesung 7: 29.5.2015 Sommersemester 2015 h_da Heiko Weber, Lehrbeauftragter Inhalt 1. Einführung & Grundlagen der Datensicherheit 2. Identitäten / Authentifizierung / Passwörter 3. Kryptografie

Mehr

IT-Sicherheit Angriffsziele und -methoden Teil 2

IT-Sicherheit Angriffsziele und -methoden Teil 2 Karl Martin Kern IT-Sicherheit Angriffsziele und -methoden Teil 2 http://www.xkcd.com/424/ Buffer Overflows 2 Buffer Overflows Ausnutzen unzureichender Eingabevalidierung Begrenzter Speicherbereich wird

Mehr

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona Compass Security Cyber Defense AG Werkstrasse 20 T +41 55 214 41 60 F +41 55 214 41 61 admin@csnc.ch FileBox Solution Name des Dokumentes: FileBox_WhitePaper_de.doc Version: v2.0 Autor: Ivan Bütler Unternehmen:

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Angreifbarkeit von Webapplikationen

Angreifbarkeit von Webapplikationen Vortrag über die Risiken und möglichen Sicherheitslücken bei der Entwicklung datenbankgestützter, dynamischer Webseiten Gliederung: Einführung technische Grundlagen Strafbarkeit im Sinne des StGB populäre

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Secure Webcoding for Beginners

Secure Webcoding for Beginners Secure Webcoding for Beginners $awareness++ Florian Brunner Florian Preinstorfer 09.06.2010 Hacking Night 2010 Vorstellung Florian Brunner Software Engineer CTF-Team h4ck!nb3rg Student sib08 Florian Preinstorfer

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Application Server und Continuous Integration

Application Server und Continuous Integration Application Server und Continuous Integration Outline 2 Einleitung Application Server Java EE Enterprise Applikationen vs. Web Applikationen Web Application Life Cycle Servlets JavaServer Pages verschiedene

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Dr. Marc Rennhard Institut für angewandte Informationstechnologie Zürcher Hochschule Winterthur marc.rennhard@zhwin.ch Angriffspunkt

Mehr

RWE Cloud Services. RWE Cloud Services Global Access Erste Schritte

RWE Cloud Services. RWE Cloud Services Global Access Erste Schritte Global Access Erste Schritte Copyright RWE IT. Any use or form of reproduction, in whole or part, of any material whether by photocopying or storing in any medium by electronic means or otherwise requires

Mehr

IHK: Web-Hacking-Demo

IHK: Web-Hacking-Demo sic[!]sec, Achim Hoffmann IHK: Web-Hacking-Demo, Bayreuth 1. April 2014 1 von 34 IHK: Web-Hacking-Demo Achim Hoffmann Achim.Hoffmann@sicsec.de Bayreuth 1. April 2014 sic[!]sec GmbH spezialisiert auf Web

Mehr

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Netzwerksicherheit Übung 9 Websicherheit

Netzwerksicherheit Übung 9 Websicherheit Netzwerksicherheit Übung 9 Websicherheit David Eckhoff, Tobias Limmer, Christoph Sommer Computer Networks and Communication Systems Dept. of Computer Science, University of Erlangen-Nuremberg, Germany

Mehr

Merkblatt: HSM. Version 1.01. Systemvoraussetzungen, Setup und Trouble Shooting. pdfsupport@pdf-tools.com

Merkblatt: HSM. Version 1.01. Systemvoraussetzungen, Setup und Trouble Shooting. pdfsupport@pdf-tools.com Merkblatt: HSM Version 1.01 Systemvoraussetzungen, Setup und Trouble Shooting Kontakt: pdfsupport@pdf-tools.com Besitzer: PDF Tools AG Kasernenstrasse 1 8184 Bachenbülach Schweiz www.pdf-tools.com Copyright

Mehr

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Adrian Fülöp (297545) - 1 - Inhaltsverzeichnis: 1. Einführung 2.

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

PCI Security Scan. Beweisen Sie Ihre Sicherheit! Ihre Vorteile auf einen Blick:

PCI Security Scan. Beweisen Sie Ihre Sicherheit! Ihre Vorteile auf einen Blick: Beweisen Sie Ihre Sicherheit! Unser Security Scan ist eine Sicherheitsmaßnahme, die sich auszahlt. Systeme ändern sich ständig. Selbst Spezialisten kennen nicht alle Schwachstellen im Detail. Der PCI Scan

Mehr

HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE. Münchener Open-Source-Treffen, Florian Maier, 23.05.2014

HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE. Münchener Open-Source-Treffen, Florian Maier, 23.05.2014 HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE Münchener Open-Source-Treffen, Florian Maier, 23.05.2014 ÜBER MICH 34 Jahre, verheiratet Open Source Enthusiast seit 1997 Beruflich seit 2001 Sicherheit,

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH

Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH 2 Open for Business - Open to Attack? 75% aller Angriffe zielen auf Webanwendungen (Gartner, ISS)

Mehr

Häufig gestellte Fragen Erfahren Sie mehr über MasterCard SecureCode TM

Häufig gestellte Fragen Erfahren Sie mehr über MasterCard SecureCode TM Informationen zu MasterCard SecureCode TM 3 1. Was ist der MasterCard SecureCode TM? 3 2. Wie funktioniert MasterCard SecureCode TM? 3 3. Wie schützt mich MasterCard SecureCode TM? 3 4. Ist der Umgang

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

SSL/TLS und SSL-Zertifikate

SSL/TLS und SSL-Zertifikate SSL/TLS und SSL-Zertifikate Konzepte von Betriebssystem-Komponenten Informatik Lehrstuhl 4 16.06.10 KvBK Wolfgang Hüttenhofer sethur_blackcoat@web.de Motivation Sichere, verschlüsselte End-to-End Verbindung

Mehr

Wo ist mein Geld? Identitätsmissbrauch im Online-Banking. Christoph Sorge Universität des Saarlandes juris-stiftungsprofessur für Rechtsinformatik

Wo ist mein Geld? Identitätsmissbrauch im Online-Banking. Christoph Sorge Universität des Saarlandes juris-stiftungsprofessur für Rechtsinformatik Wo ist mein Geld? Identitätsmissbrauch im Online-Banking Christoph Sorge Universität des Saarlandes juris-stiftungsprofessur für Rechtsinformatik C. Sorge 2 Überblick Rechner des Kunden Server der Bank

Mehr

Account Information Security Programme - Allgemeine Informationen -

Account Information Security Programme - Allgemeine Informationen - Account Information Security Programme - Allgemeine Informationen - Neue Sicherheitsstandards für die Aufbewahrung und Weiterverarbeitung sensibler Karteninhaberdaten Kreditkartenzahlungen erfreuen sich

Mehr

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit in Webanwendungen CrossSite, Session und SQL Sicherheit in Webanwendungen CrossSite, Session und SQL Angriffstechniken und Abwehrmaßnahmen Mario Klump Die Cross-Site -Familie Die Cross-Site-Arten Cross-Site-Scripting (CSS/XSS) Cross-Site-Request-Forgery

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011 Secure Coding & Live Hacking von Webapplikationen Conect Informunity 8.3.2011 Dr. Ulrich Bayer Security Research Sicherheitsforschung GmbH Motivation Datendiebstahl über (Web)-Applikationen passiert täglich

Mehr

Häufig gestellte Fragen Erfahren Sie mehr über Verified by Visa

Häufig gestellte Fragen Erfahren Sie mehr über Verified by Visa Informationen zu Verified by Visa 2 1. Was ist Verified by Visa? 2 2. Wie funktioniert Verified by Visa? 2 3. Wie schützt mich Verified by Visa? 2 4. Ist der Umgang mit Verified by Visa benutzerfreundlich?

Mehr

Webapplikationssicherheit (inkl. Livehack) TUGA 15

Webapplikationssicherheit (inkl. Livehack) TUGA 15 Webapplikationssicherheit (inkl. Livehack) TUGA 15 Advisor for your Information Security Version: 1.0 Autor: Thomas Kerbl Verantwortlich: Thomas Kerbl Datum: 05. Dezember 2008 Vertraulichkeitsstufe: Öffentlich

Mehr

IT-Sicherheit auf dem Prüfstand Penetrationstest

IT-Sicherheit auf dem Prüfstand Penetrationstest IT-Sicherheit auf dem Prüfstand Penetrationstest Risiken erkennen und Sicherheitslücken schließen Zunehmende Angriffe aus dem Internet haben in den letzten Jahren das Thema IT-Sicherheit für Unternehmen

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Verteilte Systeme. 10.1 Unsicherheit in Verteilten Systemen

Verteilte Systeme. 10.1 Unsicherheit in Verteilten Systemen Verteilte Systeme Übung 10 Jens Müller-Iden Gruppe PVS (Parallele und Verteilte Systeme) Institut für Informatik Westfälische Wilhelms-Universität Münster Sommersemester 2007 10.1 Unsicherheit in Verteilten

Mehr

Verteilte Systeme. Übung 10. Jens Müller-Iden

Verteilte Systeme. Übung 10. Jens Müller-Iden Verteilte Systeme Übung 10 Jens Müller-Iden Gruppe PVS (Parallele und Verteilte Systeme) Institut für Informatik Westfälische Wilhelms-Universität Münster Sommersemester 2007 10.1 Unsicherheit in Verteilten

Mehr

Softwaresicherheit. Sicherheitsschwachstellen im größeren Kontext. Ulrich Bayer

Softwaresicherheit. Sicherheitsschwachstellen im größeren Kontext. Ulrich Bayer Softwaresicherheit Sicherheitsschwachstellen im größeren Kontext Ulrich Bayer Conect Informunity, 30.1.2013 2 Begriffe - Softwaresicherheit Agenda 1. Einführung Softwaresicherheit 1. Begrifflichkeiten

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Denn es geht um ihr Geld:

Denn es geht um ihr Geld: Denn es geht um ihr Geld: [A]symmetrische Verschlüsselung, Hashing, Zertifikate, SSL/TLS Warum Verschlüsselung? Austausch sensibler Daten über das Netz: Adressen, Passwörter, Bankdaten, PINs,... Gefahr

Mehr

IT-Sicherheit Kapitel 3 Public Key Kryptographie

IT-Sicherheit Kapitel 3 Public Key Kryptographie IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10 The OWASP Foundation http://www.owasp.org Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10 Tobias Glemser tobias.glemser@owasp.org tglemser@tele-consulting.com Ralf Reinhardt

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

J2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

J2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg J2EE-Praktikum EJB-Security Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 EJB Sicherheit 2 Schnittstelle für den Bean Provider 3 Zusammenfassung EJB Security Allgemeines Sicherheitsziele

Mehr

Security Technologien in Java EE 6

Security Technologien in Java EE 6 Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

There is no security on this earth. Na und? General Douglas MacArthur. Alfred E. Neumann

There is no security on this earth. Na und? General Douglas MacArthur. Alfred E. Neumann There is no security on this earth. Na und? General Douglas MacArthur Alfred E. Neumann Anwendungen verursachen Unsicherheit Ca. ¾ aller Schwachstellen stammen aus Anwendungen. Cryptography 0% Application

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

ESA SECURITY MANAGER. Whitepaper zur Dokumentation der Funktionsweise

ESA SECURITY MANAGER. Whitepaper zur Dokumentation der Funktionsweise ESA SECURITY MANAGER Whitepaper zur Dokumentation der Funktionsweise INHALTSVERZEICHNIS 1 Einführung... 3 1.1 Motivation für den ESA Security Manager... 3 1.2 Voraussetzungen... 3 1.3 Zielgruppe... 3 2

Mehr

Datensicherheit. Vorlesung 5: 15.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Datensicherheit. Vorlesung 5: 15.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter Datensicherheit Vorlesung 5: 15.5.2015 Sommersemester 2015 h_da, Lehrbeauftragter Inhalt 1. Einführung & Grundlagen der Datensicherheit 2. Identitäten / Authentifizierung / Passwörter 3. Kryptografie 4.

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Bridging the Gap between the Enterprise and You. Who s the JBoss now?

Bridging the Gap between the Enterprise and You. Who s the JBoss now? or Who s the JBoss now? Patrick Hof (patrick.hof@redteam-pentesting.de) Jens Liebchen (jens.liebchen@redteam-pentesting.de) RedTeam Pentesting GmbH http://www.redteam-pentesting.de FrOSCon 2009 22./23.

Mehr

Sicherheitsaspekte unter Windows 2000

Sicherheitsaspekte unter Windows 2000 Sicherheitsaspekte unter Windows 2000 Margarete Kudak Sascha Wiebesiek 1 Inhalt 1. Sicherheit 1.1 Definition von Sicherheit 1.2 C2 - Sicherheitsnorm 1.3 Active Directory 2. Sicherheitslücken 3. Verschlüsselung

Mehr

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht SZENARIO Folgenden grundlegende Gefahren ist ein Webauftritt ständig ausgesetzt: SQL Injection: fremde SQL Statements werden in die Opferapplikation eingeschleust und von dieser ausgeführt Command Injection:

Mehr

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink Hacker-Methoden in der IT- Sicherheitsausbildung Dr. Martin Mink Hacker-Angriffe 3.11.2010 Hacker-Methoden in der IT-Sicherheitsausbildung Dr. Martin Mink 2 Typische Angriffe auf Web- Anwendungen SQL Injection

Mehr

If you have any issue logging in, please Contact us Haben Sie Probleme bei der Anmeldung, kontaktieren Sie uns bitte 1

If you have any issue logging in, please Contact us Haben Sie Probleme bei der Anmeldung, kontaktieren Sie uns bitte 1 Existing Members Log-in Anmeldung bestehender Mitglieder Enter Email address: E-Mail-Adresse eingeben: Submit Abschicken Enter password: Kennwort eingeben: Remember me on this computer Meine Daten auf

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Sicherheit in Software

Sicherheit in Software Sicherheit in Software Fabian Cordt und Friedrich Eder 3. Juni 2011 Allgemeines Begriffserklärung Woher Die 19 Todsünden 1 - Teil 2 - Teil 3 - Teil Was kann passieren Probleme beim Porgramm Durch Lücken

Mehr

Compass Security AG [The ICT-Security Experts]

Compass Security AG [The ICT-Security Experts] Compass Security AG [The ICT-Security Experts] Live Hacking: Cloud Computing - Sonnenschein oder (Donnerwetter)? [Sophos Anatomy of an Attack 14.12.2011] Marco Di Filippo Compass Security AG Werkstrasse

Mehr

Web Service Security

Web Service Security Hochschule für Angewandte Wissenschaften Hamburg Fachbereich Elektrotechnik und Informatik SS 2005 Masterstudiengang Anwendungen I Kai von Luck Web Service Security Thies Rubarth rubart_t@informatik.haw-hamburg.de

Mehr

Enterprise Web-SSO mit CAS und OpenSSO

Enterprise Web-SSO mit CAS und OpenSSO Enterprise Web-SSO mit CAS und OpenSSO Agenda Gründe für SSO Web-SSO selbst gemacht Enterprise Web-SSO mit CAS Enterprise Web-SSO mit SUN OpenSSO Federation-Management Zusammenfassung Gründe für SSO Logins

Mehr

Version 4.4. security.manager. Systemvoraussetzungen

Version 4.4. security.manager. Systemvoraussetzungen Version 4.4 security.manager Systemvoraussetzungen Version 4.4 Urheberschutz Der rechtmäßige Erwerb der con terra Softwareprodukte und der zugehörigen Dokumente berechtigt den Lizenznehmer zur Nutzung

Mehr

RACFBroker/z. Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP. RACFBroker/z ist ein Produkt der

RACFBroker/z. Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP. RACFBroker/z ist ein Produkt der RACFBroker/z Entfernter Zugriff auf das RACF Sicherheitssystem auf IBM Mainframes über TCP/IP RACFBroker/z ist ein Produkt der XPS Software GmbH Eching RACFBroker/z XPS Software GmbH Untere Hauptstr. 2

Mehr

vap 2006 R2 Datenbankzugriff mit Windows Integrated Security Technische Dokumenation

vap 2006 R2 Datenbankzugriff mit Windows Integrated Security Technische Dokumenation vap 2006 R2 Datenbankzugriff mit Windows Integrated Security Technische Dokumenation www.visionapp.com Inhalt 1 Einleitung... 2 2 Voraussetzungen... 2 3 Installation... 2 3.1 Infrastrukturelle Anforderungen...

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Data Loss Prevention (DLP) Überlegungen zum praktischen Einsatz

Data Loss Prevention (DLP) Überlegungen zum praktischen Einsatz Heinz Johner, IBM Schweiz AG 30. November 2009 Data Loss Prevention (DLP) Überlegungen zum praktischen Einsatz Agenda, Inhalt Begriff und Definition Umfang einer DLP-Lösung Schutz-Szenarien Typische Fragestellungen

Mehr

17 Ein Beispiel aus der realen Welt: Google Wallet

17 Ein Beispiel aus der realen Welt: Google Wallet 17 Ein Beispiel aus der realen Welt: Google Wallet Google Wallet (seit 2011): Kontaktlose Bezahlen am Point of Sale Kreditkarten werden im Sicherheitselement des Smartphone abgelegt Kommunikation über

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Beratung. Security by Design. Lösungen PETER REINECKE & THOMAS NEYE. Services. operational services GmbH & Co. KG

Beratung. Security by Design. Lösungen PETER REINECKE & THOMAS NEYE. Services. operational services GmbH & Co. KG Beratung Lösungen Services Security by Design PETER REINECKE & THOMAS NEYE 1 Agenda 1 2 Was ist Security by Design? Einführung Aktuelle Situation Software Development Lifecycle (SDL) Immer wieder Software

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

IT-Sicherheit. 1. Einführung und organisatorische Sicherheit. 2. Datenschutz und Nicht-technische Datensicherheit. 3. Identity Management

IT-Sicherheit. 1. Einführung und organisatorische Sicherheit. 2. Datenschutz und Nicht-technische Datensicherheit. 3. Identity Management IT-Sicherheit 1. Einführung und organisatorische Sicherheit 2. Datenschutz und Nicht-technische Datensicherheit 3. Identity Management 4. Angewandte IT Sicherheit 5. Praktische IT Sicherheit 1. Einführung

Mehr

Employment and Salary Verification in the Internet (PA-PA-US)

Employment and Salary Verification in the Internet (PA-PA-US) Employment and Salary Verification in the Internet (PA-PA-US) HELP.PYUS Release 4.6C Employment and Salary Verification in the Internet (PA-PA-US SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Mehr

Live Hacking auf eine Citrix Umgebung

Live Hacking auf eine Citrix Umgebung Live Hacking auf eine Citrix Umgebung Ron Ott + Andreas Wisler Security-Consultants GO OUT Production GmbH www.gosecurity.ch GO OUT Production GmbH Gegründet 1999 9 Mitarbeiter Dienstleistungen: 1 Einleitung

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

V10 I, Teil 2: Web Application Security

V10 I, Teil 2: Web Application Security IT-Risk-Management V10 I, Teil : Web Application Security Tim Wambach, Universität Koblenz-Landau Koblenz, 9.7.015 Agenda Einleitung HTTP OWASP Security Testing Beispiele für WebApp-Verwundbarkeiten Command

Mehr