Sie sind hier
E-Book

Basiswissen Sichere Software

Aus- und Weiterbildung zum ISSECO Certified Professionell for Secure Software Engineering

AutorSachar Paulus
Verlagdpunkt
Erscheinungsjahr2012
Seitenanzahl286 Seiten
ISBN9783864910524
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis31,99 EUR
Sichere Software zeichnet sich dadurch aus, dass sie jedem möglichen Angriff standhalten können muss. Jeder Beteiligte im Softwareentwicklungsprozess sollte bewusst auf die Schaffung dieser Eigenschaft einer Software hinarbeiten. Dieses Buch vermittelt, welche Aspekte dabei zu berücksichtigen sind und zeigt für alle wichtigen Bereiche der Softwareentwicklung auf, was jeweils für Sicherheit getan werden kann - und muss. Es deckt den Lehrplan zum Certified Professional for Secure Software Engineering nach ISSECO-Standard ab, eignet sich zum Selbststudium und als Begleitliteratur zu Schulungen.

Sachar Paulus ist Professor für Wirtschaftsinformatik, insbesondere Unternehmenssicherheit und Risikomanagement, an der Fachhochschule Brandenburg, Inhaber der Unternehmensberatung für Sicherheit 'paulus.consult' und Senior Analyst bei KuppingerCole. Von 2000 bis 2008 war er bei SAP in verschiedenen Leitungsfunktionen zu Sicherheit tätig, u.a. als Leiter der Konzernsicherheit und Leiter der Produktsicherheit, und vertrat SAP als Vorstandsmitglied in den beiden Vereinen 'Deutschland Sicher im Netz' und 'TeleTrusT'. Weiter war er Mitglied der ständigen Interessenvertretung der ENISA (Europäische Netzwerk- und Informationssicherheitsagentur) und des Forschungsbeirats 'RISEPTIS' für Vertrauen und Sicherheit im Future Internet der Europäischen Kommission. Er engagiert sich für sichere Softwareentwicklung und ist Gründer und Präsident des ISSECO e.V.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Geleitwort von Stephan Goericke6
Geleitwort von Jörg Brinkmann8
Vorwort10
Inhaltsverzeichnis12
1 Einleitung16
1.1 Ziele dieses Buches16
1.1.1 Warum brauchen wir sichere Software?18
1.1.2 Warum wird Sicherheit bei Softwareentwicklung oft vernachlässigt?19
1.1.3 Was sind die Folgen von ausgelieferter unsicherer Software?20
1.2 Inhalte dieses Buches22
1.3 ISSECO und die CPSSE-Zertifizierung25
1.3.1 ISSECO25
1.3.2 Certified Professional for Secure Software Engineering (CPSSE)26
2 Die Sicht des Kunden28
2.1 Ben und sein Projektteam28
2.2 Verschiedene Interessengruppen - verschiedene Interessen29
2.3 Warum erwarten Kunden sichere Software?32
2.4 Was genau erwarten Kunden eigentlich?34
2.4.1 Häufig wiederkehrende Anforderungen34
2.4.2 Eine Klassifikation der Sicherheitserwartungen an Produkte35
2.4.3 Eine Klassifikation der Sicherheitserwartungen an den Hersteller37
2.4.4 Compliance-Anforderungen37
2.5 Werte, Bedrohungen und Risiken38
2.6 Von Erwartungen zu technischen Anforderungen40
2.7 Helfen Sie dem Kunden, dann helfen Sie sich selbst!41
2.8 Ben spricht noch einmal mit dem Kunden43
3 Die Sicht des Angreifers44
3.1 Jewgeni44
3.2 Was sind Hacker?45
3.2.1 Berühmte Hacker46
3.2.2 Qualifizierungsstufen von Hackern48
3.2.3 Motivationen zum Hacken49
3.3 Wie geht ein Hacker vor?51
3.3.1 Vorgehensweisen zum Hacken51
3.3.2 Der Hacking-»Prozess«54
3.3.3 Welche Werkzeuge setzt ein Hacker ein?55
3.4 Jewgeni hat eine Idee58
4 Methodologien für sichere Software60
4.1 Bens Entwicklungsmethodik60
4.2 Sichere Software im Überblick61
4.3 Softwareentwicklungsmethoden62
4.4 Maßnahmen zur Verbesserung der Sicherheit65
4.5 Existierende Modelle69
4.5.1 Common Criteria69
4.5.2 ISO 27002: Entwicklung von Informationssystemen72
4.5.3 SSE-CMM73
4.5.4 BSIMM / OpenSAMM75
4.5.5 Microsoft SDL77
4.5.6 OWASP79
4.5.7 Weitere Ansätze80
4.5.8 Welcher Weg ist der richtige?81
4.6 Ben denkt über Sicherheit nach82
5 Sicherheitsanforderungen84
5.1 Bens Sicherheitsanforderungen84
5.2 Was sind Anforderungen?84
5.2.1 Funktionale und nicht funktionale Anforderungen86
5.2.2 Wie definiert man gute Anforderungen?89
5.3 Wie identifiziert man Sicherheitsanforderungen?90
5.3.1 Grundwerte der Informationssicherheit90
5.3.2 Misuse Cases91
5.3.3 Betrachtung des Kontextes91
5.3.4 Bedrohungsmodellierung92
5.3.5 Auflösung von Konflikten92
5.4 Wichtige Sicherheitsanforderungen93
5.4.1 Standardisierte Sicherheitsanforderungen nach Common Criteria93
5.4.2 Sicherheitsanforderungen nach OWASP96
5.4.3 Gesetzliche Anforderungen97
5.4.4 Bereiche, die für Sicherheitsanforderungen relevant sein können98
5.5 Bens neue Anforderungsliste100
6 Bedrohungsmodellierung102
6.1 Bens Bedrohungsmodellierung102
6.2 Der Nutzen einer Bedrohungsmodellierung102
6.3 Die Phasen der Bedrohungsmodellierung104
6.3.1 Werte und Akteure identifizieren105
6.3.2 Übersicht der geplanten Architektur erstellen107
6.3.3 System in Einzelteile herunterbrechen108
6.3.4 Bedrohungen identifizieren109
6.3.5 Bedrohungen dokumentieren119
6.3.6 Bedrohungen bewerten119
6.3.7 Gegenmaßnahmen planen124
6.4 Bens zweiter Versuch126
7 Sicherer Softwareentwurf128
7.1 Bens Softwareentwurf für Sicherheit128
7.2 Sicherer Softwareentwurf und sichere Softwarearchitekturen129
7.3 Secure Design Patterns131
7.3.1 Föderiertes Identitätsmanagement132
7.3.2 Authentifizierung133
7.3.3 Sitzungsverwaltung136
7.3.4 Verschlüsselung137
7.3.5 Zugriffskontrollmodelle138
7.3.6 Privileged Core141
7.3.7 Single Access Point142
7.4 Secure Design Principles142
7.4.1 Least Privilege143
7.4.2 Secure the Weakest Link143
7.4.3 Defense in Depth143
7.4.4 No Security by Obscurity144
7.4.5 Secure by Default144
7.4.6 Fail Safe145
7.4.7 Input Validation und Output Encoding145
7.4.8 Minimize Attack Surface145
7.4.9 Don’t Mix Code and Data146
7.4.10 Wählen Sie Ihre eigenen Prinzipien146
7.5 Review der Sicherheitsarchitektur147
7.6 Ben war auf einer Konferenz148
8 Sicheres Programmieren150
8.1 Bens Tricks zum sicheren Programmieren150
8.2 Es gibt keine Tricks151
8.3 Welche Schwachstellen sind am kritischsten?151
8.3.1 OWASP Top Ten153
8.3.2 The 19 Deadly Sins of Software Security154
8.3.3 The Seven Pernicious Kingdoms155
8.4 Wiederkehrende Muster von Schwachstellen157
8.4.1 Unsicherer Umgang mit Eingaben und Ausgaben157
8.4.2 Unsicherer Umgang mit dem Speicher158
8.4.3 Unsicherer Umgang mit Wettlaufsituationen158
8.4.4 Unsicherer Umgang mit Berechtigungen und Ressourcen158
8.5 Techniken für sicheres Programmieren159
8.5.1 Input-Validierung und Output-Sanitisierung159
8.5.2 Sichere Funktionen und Sprachen161
8.5.3 Atomare Funktionen und sichere Semaphore162
8.5.4 Minimale Rechte163
8.6 Die wichtigsten Schwachstellen und Gegenmaßnahmen164
8.6.1 Cross-Site Scripting164
8.6.2 SQL-Injection165
8.6.3 Cross-Site Request Forgery165
8.6.4 Insecure Direct Object Reference166
8.6.5 Remote File Inclusion167
8.7 Werkzeuge zur sicheren Programmierung167
8.8 Klaus’ Empfehlungen für die sichere Programmierung168
9 Software auf Sicherheit testen170
9.1 Bens Sicherheitstest170
9.2 Sicherheit und Softwaretests171
9.2.1 Unterschiede zu »normalen« Softwaretests171
9.2.2 Sicherheitstests in jeder Phase anwenden172
9.2.3 Integration mit »normalem« Softwaretesten173
9.2.4 Quellen für Testfälle174
9.3 Hacking-Techniken als Sicherheitstests175
9.3.1 Blackbox-Penetrationstests177
9.3.2 Whitebox-Penetrationstests178
9.4 Sicherheitsspezifische Testmuster179
9.4.1 Spidering179
9.4.2 Googeln180
9.4.3 Fuzzing180
9.4.4 Infrastruktur-Check181
9.4.5 Business-Logik181
9.5 Sicherheitskritische Testbereiche182
9.5.1 Authentifizierung182
9.5.2 Sitzungsverwaltung182
9.5.3 Input-Validierung183
9.5.4 Denial of Service183
9.6 Codereview184
9.7 Sicherheitstestberichte schreiben185
9.8 Der Sicherheitstest vom QMB186
10 Sichere Auslieferung und Einrichtung188
10.1 Bens Installationsanleitung188
10.2 Sicherheit im IT-Betrieb189
10.2.1 Sicherheitsaspekte von ITIL189
10.2.2 ISO 27001191
10.2.3 Common Criteria ISO 15408192
10.2.4 Sicherheitsrelevante Dokumentationen192
10.3 Phasen der Softwareeinrichtung194
10.3.1 Sicherheit in der »Release«-Phase195
10.3.2 Sichere Konfiguration197
10.3.3 Sicherheit bei der Aktivierung von Software199
10.3.4 Sicherheit bei Anpassung und Update200
10.4 Pauls Korrekturen der Installation202
11 Umgang mit Schwachstellen204
11.1 Bens Security Response204
11.2 Sicherheit im normalen Supportprozess205
11.2.1 Getrennte Behandlung von Sicherheitsproblemen205
11.2.2 Getrennte Sicherheitskorrekturen208
11.3 Offenlegungsstrategien für Schwachstellen209
11.3.1 Full Disclosure209
11.3.2 No Disclosure210
11.3.3 Responsible Disclosure211
11.4 Erfolgreich über Schwachstellen reden211
11.4.1 Was muss kommuniziert werden?212
11.4.2 Erfolgskriterien213
11.5 Standards für Schwachstellenbeschreibungen214
11.5.1 CVE215
11.5.2 CVSS216
11.5.3 CAIF217
11.6 Entwicklung einer Security Response Policy219
11.7 Ben und die IT-Presse220
12 Metriken für Sicherheit222
12.1 Bens Messgrößen222
12.2 Warum überhaupt Metriken für Sicherheit?222
12.3 Softwaremetriken224
12.4 Arten von Metriken226
12.5 Qualitätskriterien für Metriken227
12.6 Existierende Metriken für Sicherheit229
12.7 Entwicklung von Metriken für Sicherheit232
12.7.1 Formale Definition einer Metrik für Softwaresicherheit232
12.7.2 Prozess zur Entwicklung von Metriken für Softwaresicherheit233
12.7.3 Ein Satz von Metriken für Bens Team235
13 Codeschutz236
13.1 Ben und seine eigene IT-Sicherheit236
13.2 Gründe, den Code zu schützen236
13.3 Technische Risiken während der Entwicklungsphase238
13.4 Grundsätzliche Schutzmechanismen240
13.5 Besondere Anforderungen durch Export und Politik242
13.6 Technische Lösungen für den Schutz von Code244
13.6.1 Software as a Service245
13.6.2 Verwendung von prozessorspezifischem Code246
13.6.3 Codeverschleierung247
13.6.4 Verschlüsselung von Code248
13.6.5 Code Signing249
13.7 Lizenzschutz249
13.7.1 Offline-Lizenzmechanismen250
13.7.2 Online-Lizenzmechanismen252
13.7.3 Dongle-basierte Lizenzmechanismen253
13.7.4 Lizenzaudits254
13.7.5 Überhaupt Lizenzen?254
13.8 Was hätte Ben unternehmen können?254
14 Testfragen256
Kapitel 1: Einleitung256
Kapitel 2: Die Sicht des Kunden257
Kapitel 3: Die Sicht des Angreifers258
Kapitel 4: Methodologien für sichere Software259
Kapitel 5: Sicherheitsanforderungen260
Kapitel 6: Bedrohungsmodellierung262
Kapitel 7: Sicherer Softwareentwurf263
Kapitel 8: Sicheres Programmieren264
Kapitel 9: Software auf Sicherheit testen265
Kapitel 10: Sichere Auslieferung und Einrichtung267
Kapitel 11: Umgang mit Schwachstellen268
Kapitel 12: Metriken für Sicherheit269
Kapitel 13: Codeschutz270
Antworten272
Abkürzungen274
Glossar276
Literatur288
Kapitel 1: Einleitung288
Kapitel 2: Die Sicht des Kunden288
Kapitel 3: Die Sicht des Angreifers288
Kapitel 4: Methodologien für sichere Software289
Kapitel 5: Sicherheitsanforderungen290
Kapitel 6: Bedrohungsmodellierung290
Kapitel 7: Sicherer Softwareentwurf291
Kapitel 8: Sicheres Programmieren291
Kapitel 9: Software auf Sicherheit testen292
Kapitel 10: Sichere Auslieferung und Einrichtung292
Kapitel 11: Umgang mit Schwachstellen293
Kapitel 12: Metriken für Sicherheit293
Kapitel 13: Codeschutz294
Index296

Weitere E-Books zum Thema: Software-Design - Softwareentwicklung

Explore It!

E-Book Explore It!

Mit explorativem Testen können unerwartete Ereignisse, schwerwiegende Fehler und andere Risiken in Software aufgedeckt werden. Bei dieser Technik werden kleine, schnelle Analysen durchgefu?hrt. ...

WordPress

E-Book WordPress

Das Buch beinhaltet das nötige Wissen für einen sicheren Umgang mit dem beliebten CMS (Content Management System): von der WordPress-Installation samt den notwendigen Voraussetzungen und dem ...

Patterns kompakt

E-Book Patterns kompakt

Patterns kompakt fasst die wichtigsten Entwurfsmuster zusammen, die Sie für Software-Entwicklung benötigen. Software-Entwickler, -Architekten und -Designer finden darin effektiv anwendbare ...

Weitere Zeitschriften

Card-Forum

Card-Forum

Card-Forum ist das marktführende Magazin im Themenbereich der kartengestützten Systeme für Zahlung und Identifikation, Telekommunikation und Kundenbindung sowie der damit verwandten und ...

Der Steuerzahler

Der Steuerzahler

Der Steuerzahler ist das monatliche Wirtschafts- und Mitgliedermagazin des Bundes der Steuerzahler und erreicht mit fast 230.000 Abonnenten einen weitesten Leserkreis von 1 ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

Dr. med. Mabuse

Dr. med. Mabuse

Zeitschrift für alle Gesundheitsberufe Seit über 40 Jahren sorgt die Zeitschrift Dr. med. Mabuse für einen anderen Blick auf die Gesundheits- und Sozialpolitik. Das Konzept einer Zeitschrift ...

IT-BUSINESS

IT-BUSINESS

IT-BUSINESS ist seit mehr als 25 Jahren die Fachzeitschrift für den IT-Markt Sie liefert 2-wöchentlich fundiert recherchierte Themen, praxisbezogene Fallstudien, aktuelle Hintergrundberichte aus ...