Basiswissen Sichere Software
eBook - ePub
Verfügbar bis 27 Jan |Weitere Informationen

Basiswissen Sichere Software

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

  1. 286 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub
Verfügbar bis 27 Jan |Weitere Informationen

Basiswissen Sichere Software

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

Über dieses Buch

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.

Häufig gestellte Fragen

Ja, du kannst dein Abo jederzeit über den Tab Abo in deinen Kontoeinstellungen auf der Perlego-Website kündigen. Dein Abo bleibt bis zum Ende deines aktuellen Abrechnungszeitraums aktiv. Erfahre, wie du dein Abo kündigen kannst.
Derzeit stehen all unsere auf mobile Endgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Perlego bietet zwei Pläne an: Elementar and Erweitert
  • Elementar ist ideal für Lernende und Interessierte, die gerne eine Vielzahl von Themen erkunden. Greife auf die Elementar-Bibliothek mit über 800.000 professionellen Titeln und Bestsellern aus den Bereichen Wirtschaft, Persönlichkeitsentwicklung und Geisteswissenschaften zu. Mit unbegrenzter Lesezeit und Standard-Vorlesefunktion.
  • Erweitert: Perfekt für Fortgeschrittene Studenten und Akademiker, die uneingeschränkten Zugriff benötigen. Schalte über 1,4 Mio. Bücher in Hunderten von Fachgebieten frei. Der Erweitert-Plan enthält außerdem fortgeschrittene Funktionen wie Premium Read Aloud und Research Assistant.
Beide Pläne können monatlich, alle 4 Monate oder jährlich abgerechnet werden.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja! Du kannst die Perlego-App sowohl auf iOS- als auch auf Android-Geräten verwenden, um jederzeit und überall zu lesen – sogar offline. Perfekt für den Weg zur Arbeit oder wenn du unterwegs bist.
Bitte beachte, dass wir keine Geräte unterstützen können, die mit iOS 13 oder Android 7 oder früheren Versionen laufen. Lerne mehr über die Nutzung der App.
Ja, du hast Zugang zu Basiswissen Sichere Software von Sachar Paulus im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Computer Science & Software Development. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

1 Einleitung

Sichere Software ist Software, die gegen absichtliche Angriffe auf die Software geschützt ist. Jeder im Softwareentwicklungsprozess sollte an dieser Eigenschaft einer Software interessiert sein, da Software leider selten »automatisch« sicher ist. Da Sicherheit durch die Abwesenheit von erfolgreichen Angriffen gegeben ist, muss die Software jedem möglichen Angriff standhalten können. Dieses Buch richtet sich an Softwareentwicklungsverantwortliche und Qualitätsverantwortliche, die Sicherheit im Entwicklungsprozess verankern wollen, aber auch an Sicherheitsexperten, die sich der Thematik »wie mache ich Software sicher?« widmen wollen.

1.1 Ziele dieses Buches

IT-Systeme sind nur sicher, wenn alle Elemente, die zum IT-System gehören, sicher sind. Der in der Vergangenheit übliche Gedanke, dass die Sicherheit von der Infrastruktur und dem Perimeter erbracht werden kann (also Firewalls, Antivirus-Software, Betriebssystemsicherheit), ist nicht mehr richtig. Eigentlich war der Gedanke noch nie richtig, aber da die wertvollen Informationen in den Anwendungen hinter hohen (virtuellen) Wänden lagen und dort meist ungeschützt, bestand das Ziel darin, Löcher in der Infrastruktur zu finden, so wie es im Mittelalter das Ziel war, Zugang in ein Burg zu bekommen, denn innerhalb der Mauern war der Schatz meist nicht gut gesichert.
Aus zwei Gründen ist dieser Vergleich nicht mehr verwendbar: Zum einen werden immer mehr Anwendungen aus der Burg herausgeholt bzw. sprechen mit Kunden jenseits der Burgmauern und zum anderen sind die Löcher in den Burgmauern weitestgehend gestopft und es ist einfacher für Angreifer, direkt die Anwendungen anzugreifen. Moderne IT ist eher mit einer Stadt zu vergleichen als mit einer mittelalterlichen Burg.
Image
Abb. 1–1 So nehmen heute noch die meisten IT-Sicherheit wahr – eine dicke Mauer mit wenigen Durchgängen (Quelle: www.copyrightfreephotos.com).
Image
Abb. 1–2 Und so sollte Sicherheit in der heutigen Welt aussehen – sehr individuell, massentauglich und auf das jeweilige Risiko abgestimmt (Quelle: www.copyrightfreephotos.com).
Daher ist es nicht nur wichtig, sichere Infrastrukturkomponenten zu bauen, sondern alle Softwareelemente eines IT-Systems müssen sicher sein. Sicher heißt, dass sie nicht durch Angriffe auf Daten in ihrer Funktionalität verändert werden können, Daten kopiert, manipuliert oder gelöscht werden können oder ihre Verfügbarkeit eingeschränkt werden kann. Die Informationen sollen stets verfügbar, integer und vertraulich verarbeitet werden. Das heißt, egal, ob Sie Softwareprodukte entwickeln, softwarebasierte Steuerungen für Anlagen bauen oder Webanwendungen konfigurieren, Ihre Software ist jetzt das Ziel der Hacker und nicht nur das Ziel, sondern – wenn Sie schlechte, sprich: unsichere Software bauen – auch das Werkzeug, unfreiwillig. Die meisten Angriffe auf Daten sind heutzutage auf unsichere Software und Systeme zurückzuführen, Systeme, die eine Schwachstelle haben, die von Angreifern ausgenutzt werden kann – und ausgenutzt wird.
Dieses Buch hat zum Ziel, zu vermitteln, wie man sichere Software entwickeln kann. Dabei werden alle wichtigen Bereiche der Softwareentwicklung besprochen und aufgezeigt, was für Sicherheit getan werden kann – und muss.

1.1.1 Warum brauchen wir sichere Software?

Die Mehrzahl der Angriffe auf Daten finden heute über das Internet statt unter Verwendung von komplexen Werkzeugen wie trojanischen Pferden, Botnetzen, Rootkits usw. Auch wenn wir sehen werden, dass das Bild in dieser Deutlichkeit nicht ganz richtig ist: Heute kann ein Hacker im Prinzip vom heimischen Sofa aus (fast) alle IT-Systeme dieser Welt angreifen. Und sind diese nicht gut geschützt bzw. nicht sicher in sich selbst, dann auch erfolgreich.
Image
Abb. 1–3 Aus der polizeilichen Kriminalstatistik 2010 (Quelle: www.bka.de/pks/pks2010/download/pks2010_imk_kurzbericht.pdf, S. 15)
Neben dem reinen finanziellen Schaden, den ein Hacker anrichten kann, ist in der Konsequenz auch oft das Image des Herstellers wie auch des Kunden, der die Systeme betreibt und bei dem Daten gestohlen oder manipuliert werden konnten, in Mitleidenschaft gezogen. Zudem werden – man geht von einer deutlich höheren Dunkelziffer aus – die meisten Angriffe vermutlich gar nicht entdeckt: Wissensvorsprung wandert zum Konkurrenten, Industriegeheimnisse zur fremden Macht, IT-Systeme werden zur langsamen Sabotage genutzt. Die Liste ist lang.
Aber warum schützen uns die Sicherheitsprodukte nicht vor diesen Angriffen? Sind denn die Investitionen in Antivirus-Software und Firewalls, in Verschlüsselung und Data Leakage Prevention nicht genau dafür da, dies zu verhindern? Ein einfacher Vergleich: Nur weil ein Auto einen Sicherheitsgurt hat, muss die Bremse nicht zuverlässig funktionieren. Im Web ist das ähnlich. Anwendungen müssen sich selbst schützen, die genannten Sicherheitsprodukte schützen zwar jeweils bestimmte Technologien gegen bestimmte Angriffe, aber auch nur diese Technologien gegen genau diese Angriffe. Es gibt ja auch keinen Impfstoff gegen alle Krankheiten dieser Welt. Und wenn gestern das Wichtigste war, sich gegen Cholera zu schützen, dann kommt heute die Hauptbedrohung vielleicht von Grippenviren. Am besten ist ein gut funktionierendes Immunsystem. Auch dann kann man Infektionen nicht vollständig vermeiden, aber meist lebt man damit deutlich länger – und besser.
Der erste Schritt zu einem guten Immunsystem ist, Einfallstore zu schließen, und Angriffsflächen zu verkleinern. Und in der aktuellen Zeit – Technologie verändert sich ja zunehmend schneller – sind die meisten IT-Technologien HTTP-basiert und Zugriffe auf Daten sollten von überall ohne Hürden erfolgen können. Gegen Angriffe auf Anwendungsebene können Firewalls, die dazu da sind, unerlaubte Zugriffe auf Netzwerkebene abzuweisen, und Antivirus-Software, die bösartige E-Mail-Anhänge erkennen soll, eben nichts tun. Da sind andere Techniken gefragt. Doch am besten schützt die Software sich selbst.

1.1.2 Warum wird Sicherheit bei Softwareentwicklung oft vernachlässigt?

Wenn ein gutes Immunsystem so wichtig und so sinnvoll ist, warum gibt es das nicht bei Software? Was läuft schief bei den meisten Softwareentwicklungen, dass eben der Eigenschutz der Software gegen Angriffe nicht funktioniert? Hierfür gibt es eine Reihe von Gründen.
Image
Softwarehersteller, wie auch viele Kunden, reden nicht gerne über Sicherheitsprobleme oder Schwachstellen, denn sie fürchten Imageprobleme und Reputationsverlust mehr als den möglicherweise entstehenden Schaden. Darüber nicht zu reden ist eigentlich widersinnig, denn natürlich gibt es eine Bedrohung, und kein Produkt der Welt ist perfekt, also sollte man sich genau damit auseinandersetzen, um Größe zu demonstrieren. Studien von Krisen, in denen Unternehmen unterschiedlich offenes Krisenmanagement betrieben haben, zeigen, dass die Unternehmen, die proaktiv mit einer Krise umgegangen sind (z. B. eine Airline nach einem Flugzeugabsturz), in der Wahrnehmung und sogar in der börslichen Bewertung besser geworden sind. Ein Grund, warum dennoch die Auseinandersetzung mit dem Thema IT-Sicherheit vermieden wird, ist möglicherweise, dass man damit zugeben müsste, dass man die IT nun doch nicht vollständig beherrscht und insbesondere Unternehmenslenker sich auf etwas verlassen, das sie gar nicht verstehen.
Image
Viele Entscheider schätzen die mit IT-Sicherheit verbundenen Risiken falsch ein. Das ist systemimmanent, denn der Job von Entscheidern besteht gerade darin, Chancen zu nutzen und dafür Risiken einzugehen. Ihnen ist aus diesem Grund vermutlich durchaus bewusst, dass im IT-Bereich Sicherheitsrisiken bestehen, aber diese werden – aus Mangel an Einsicht und Verständnis – chronisch falsch eingeschätzt. Wurde gestern noch Onlinebanking im Ausland nur mit Passwort durchgeführt, bis unbekannte Buchungen auf den Kontoauszügen auftauchten, so werden heute Cloud-Lösungen vermieden, obwohl die Sicherheitsmechanismen genau dafür vielleicht exzellent ausgelegt sind. Werden aber die Sicherheitsrisiken deutlich überschätzt, dann investiert man nicht in Schutzmaßnahmen, sondern vermeidet das Risiko lieber gleich komplett.
Image
Auf einer etwas technischeren Ebene äußert sich das so, dass in der Regel, d. h. immer noch für die allermeisten Softwareprodukte und -Lösungen, die Sicherheitsanforderungen gar nicht bekannt sind. Man verlässt sich auf die Infrastruktur (die Burgmauer) oder weiß vielleicht gar nicht, welche schützenswerten Informationen von der Software verarbeitet werden. Dann kann man daraus natürlich auch keine Anforderungen an die Sicherheitsfunktionalität ableiten und noch weniger an die Sicherheitseigenschaften des zu entwickelnden Produktes. Aus Sicherheitssicht gleichen die meisten Entwicklungsprojekte einem Blindflug durch die Berge: Mit Gottvertrauen hofft man, dass schon nichts passieren wird, ohne die Gefahrensituation genau zu kennen.
Image
Schließlich stehen fast alle Softwareentwicklungsprojekte unter einem hohen Kosten- und Zeitdruck und dann zählt natürlich fast ausschließlich die Funktionalität, die dem Kunden Mehrwert bietet. Qualitätsaspekte, insbesondere Sicherheitsaspekte, spielen dann oft eine untergeordnete Rolle und werden im Zweifel einfach fallen gelassen.
Sicherheit muss sich also gegen eine ganze Reihe von Vorbehalten wehren, bevor sie ernst genommen wird? In den meisten Fällen ist dem so. Sicherheit kommt bei den meisten ganz am Schluss der Qualitätsaspekte, deutlich nach Performance und Usability.

1.1.3 Was sind die Folgen von ausgelieferter unsicherer Software?

Vielleicht können Sie dies aber in Ihrer Organisation Zug um Zug ändern. Denn wenn man nicht in Sicherheit investiert, dann hat das natürlich Konsequenzen. Diese sollten Sie nicht nur Ihrem Chef deutlich machen, sondern auch – und gerade – dem Kunden, damit der Kunde sein Risiko abschätzen kann und nicht von negativen Erfahrungen mit Ihrer Software überrascht wird.
Image
Unsichere Software führt zu höherem Wartungsaufwand. Unsichere Software muss häufiger gepatcht werden, Korrekturen des Herstellers müssen vor dem Einspielen üblicherweise getestet werden, dies wiederum führt zu einem verspäteten Patchen mit weiteren Sicherheitsrisiken, die dann durch zusätzliche Sicherheitsprodukte wieder begrenzt werden müssen, und so weiter. Der höhere Wartungsaufwand entsteht nicht nur beim Kunden, sondern natürlich auch beim Hersteller, der für Sicherheitskorrekturen in der Regel vom Kunden nicht entlohnt wird, sondern dies im Rahmen seiner Wartungsvereinbarung erwartet. Dafür wiederum sind mehr Mitarbeiter erforderlich, die speziell geschult werden müssen ... Die Kostenspirale entsteht bei der ersten entdeckten Schwachstelle in ...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Geleitwort von Stephan Goericke
  5. Geleitwort von Jörg Brinkmann
  6. Vorwort
  7. Inhaltsverzeichnis
  8. 1 Einleitung
  9. 2 Die Sicht des Kunden
  10. 3 Die Sicht des Angreifers
  11. 4 Methodologien für sichere Software
  12. 5 Sicherheitsanforderungen
  13. 6 Bedrohungsmodellierung
  14. 7 Sicherer Softwareentwurf
  15. 8 Sicheres Programmieren
  16. 9 Software auf Sicherheit testen
  17. 10 Sichere Auslieferung und Einrichtung
  18. 11 Umgang mit Schwachstellen
  19. 12 Metriken für Sicherheit
  20. 13 Codeschutz
  21. 14 Testfragen
  22. Abkürzungen
  23. Glossar
  24. Literatur
  25. Index
  26. Fußnoten