Profil
·6 min
Von Schüler-Frickelei zu sicherer Softwareentwicklung
Seit meiner Schulzeit beschäftige ich mich intensiv mit Informationstechnik, das ist ab Mitte der 1980er-Jahre. Zusammen mit einem Schulfreund entwickelte ich eine erste kommerziell eingesetzte Software.
Glauben Sie, dass wir den Begriff „Requirements Engineering“ kannten?
Nein.
Es gab drei Anforderungen: „Wir wollen auf DIN-A5 drucken, Pizza vorkonfigurieren und Zutaten hinzufügen und entfernen können.“
Hatten wir eine Idee von iterativer Verbesserung und Testmanagement?
Vermutlich nicht.
Entsprechend großartig bewährte sich unsere Software im produktiven Betrieb. Und wurde sicherlich ein Jahr später durch eine teurere, aber professionelle Lösung ersetzt.
Wir haben dabei viel gelernt und auch der Kunde hat sein Lehrgeld bezahlt. Aber immerhin zählte er auch lange danach noch „zu den bekannteren Pizzalieferdiensten in der Stadt.“
Während meines Studiums der Physik begann ich nebenberuflich „professionell“ zu programmieren.
Von methodischer Professionalität konnte auch hier noch keine Rede sein.
Aber es gab keine Klagen und mein Code lief schnell und zuverlässig.
Jedenfalls für den „Happy Path.“ Begrifflichkeiten wie „Grenzfälle“ oder Methoden wie „Fuzzing“ waren mir gänzlich unbekannt.
Regelrechtes Software-Engineering lernte ich erst praktisch als Werkstudent. Weiter ohne formale Ausbildung, aber mit altgedienten Entwicklern als Mentoren.
Wahrscheinlich die besten Lehrer, um selbst schlanke und solide Software zu konzipieren und umzusetzen. Minimaler Code war fast ein Sport.
Das kleine Team arbeitete im Geist des „agilen Manifests“, schon lange, bevor es formuliert und veröffentlicht wurde.
Darauf aufbauend habe ich als selbstständiger System- und Web-Programmierer von 2002 bis 2016 eine ganze Reihe kleinerer Startup-Projekte begleitet.
Am Anfang dieser Zeit kam ich als Mitglied der Leitung des damals frisch gegründeten Open Web Application Security Project (OWASP®) erstmalig mit dem Thema Informationssicherheit in Berührung.
Dies rückte aber in den Hintergrund, weil die Projekte meist so knappe Budgets hatten, dass sie fast vollständig auf die Entwicklung von ersten Produkt-Features fokussieren mussten.
Konnte ich damit leben?
Natürlich nicht. Seit April 2022 schließt sich für mich der Kreis und ich arbeite für die Verbesserung von Informationssicherheit. Ich bin zu dem Schluss gekommen, dass zuverlässige Software mit integrierter Sicherheit (Security by Design) eine absolute Notwendigkeit geworden ist.
Mein Fokus liegt dabei auf sicherer Softwareentwicklung (SDLC), eingebettet in zertifizierte Managementsysteme für Informationssicherheit (ISMS) nach dem internationalen Standard ISO 27001.
Unnützes Wissen
Läuft in Ihrem Keller noch eine Tru64-Maschine mit dem zentralen Geschäftsprozess?
Hoffentlich nicht.
Falls Sie früher eine hatten, wissen Sie umso mehr zu schätzen, was danach kam.
Und so habe auch ich im Laufe der Zeit eine Reihe von Kenntnissen erworben, die heute glücklicherweise kaum noch Bedeutung haben.
Sie helfen mir aber trotzdem dabei, Ihre Schwachstellen zu analysieren.
Bestimmte Muster sind wiederkehrend. Ihre Fehler haben schon andere vor Ihnen gemacht. Meine eigenen waren auch selten neu.
Sie können einen Großteil davon vermeiden, wenn Sie auf bewährte internationale Standards aufbauen. Damit sparen Sie Zeit und Geld.
Diese Standards verlangen von Ihnen und mir fortlaufende Verbesserung. Außerdem entwickelt sich die Informationstechnologie rasant weiter.
Darum bleibe ich nicht stehen und erweitere und aktualisiere meine Kenntnisse jeden Tag.
Standards – oft langweilig, aber hilfreich
Kennen Sie das? Sie sprechen mit fachfremden Kollegen und werden missverstanden? Sie haben das Gefühl, immer wieder ganz von vorn beginnen zu müssen?
Da hilft es, wenn Sie mit wohldefinierter Terminologie und gemeinsamer Begrifflichkeit arbeiten. Für Ihr ISMS finden Sie diese Grundlage im Standard ISO 27000:2018 (kostenlos verfügbar)
Große Teile der Betriebsprozesse und der Dokumentation eines ISMS nach dem Standard ISO 27001:2013 habe ich federführend implementiert.
Die Empfehlungen aus dem Standard ISO 27002:2013 dienten als gute Richtschnur für die Ausprägung der Maßnahmen. Lohn dieser Arbeit war eine erfolgreiche Erstzertifizierung ohne Haupt- und Nebenabweichungen.
Um die Anforderungen zum Einsatz von Kryptografie zu erfüllen, habe ich Verfahren basierend auf den Empfehlungen der BSI TR-02102 geplant und umgesetzt.
Für Ihre Erstzertifizierung und Rezertifizierungen des ISMS gelten jetzt die Standards ISO 27001:2022, ISO 27002:2022. Gegenüber den vorigen Versionen sind sie modernisiert und massiv neu strukturiert. Dadurch sind sie verständlicher und einfacher nachvollziehbar gegliedert.
Ein wesentlicher Aspekt der Managementsystem-Standards der ISO ist die Definition und Einhaltung dokumentierter Betriebsabläufe. Ich empfehle Ihnen, Ihre Prozesse mit der semiformalen Beschreibungssprache BPMN 2.0 zu modellieren und zu dokumentieren.
Mit einer Bachelorarbeit über das BSI IT-Grundschutz-Kompendium und den BSI-Standard 200-2 angewendet auf Container-Plattformen habe ich ein Studium abgeschlossen. In diesem Zusammenhang ist für Sie als Nutzer oder Anbieter von “Cloud”-Diensten der Cloud Computing Compliance Criteria Catalogue BSI C5:2020 relevant, mit dem die Anforderungen des EU Cybersecurity Acts (EUCA) umgesetzt werden.
Als Leitlinie für die Auswahl sicherer IT-Produkte haben mir und meinen Kunden die CC Version 3.1 und 2022 gute Dienste erwiesen.
Die OWASP Top 10 (zuletzt 2021 überarbeitet) sind als inoffizieller Industriestandard für die sichere Implementierung von Web-Anwendungen etabliert. Sie werden ergänzt durch die OWASP ASVS (aktuell in Version 4.0.3), die ein mehrstufiges Modell zur systematischen Überprüfung von Web-Anwendungen bereitstellen. Beide zusammen können Sie als Grundstein für die Absicherung Ihrer Web-Anwendungen einsetzen. Den Reifegrad Ihres Softwareentwicklungszyklus (SDLC) können sie mit dem OWASP SAMM (aktuell in Version 2.0.3) systematisch erfassen und verbessern.
Technik, die nur manchmal begeistert
Die Anekdoten, die ich über den Einsatz der Technik erzählen könnte, würden wahrscheinlich Bände füllen. Aber sie wiederholen sich und sind eher punktuell im persönlichen Gespräch interessant.
Deshalb zeige ich Ihnen lediglich eine Liste der Produkte, die ich im Laufe meines Berufslebens eingesetzt habe.
Sicherheit
HashiCorp Vault, OSSEC HIDS, f5 BIG-IP Advanced WAF, OPSWAT MetaDefender ICAP Server, LogRhythm Security Information and Event Management (SIEM), OpenVAS, kali Linux
Netzwerk
PowerDNS, f5 BIG-IP LTM, FortiOS
Automatisierung, CI/CD
Concourse CI, Jenkins, GitLab CI, octodns, Terraform
Produktivität, Dokumentation
kolab, Outlook/O365
Word, Excel, PowerPoint
draw.io, Inkscape, GIMP, gnuplot, Dia
Markup, DTP
Programmierung
C, C++, Java, Fortran, Pascal/Delphi, x86 Assembler
Lua, Python, PHP, Perl, ruby, Bash
JSP, Javascript/ECMA, Actionscript/Flex, tcl/tk
Betriebssystem
Linux (kali, debian, CentOS, Ubuntu, alpine, Suse, LinuxFromScratch, raspbian, Zenwalk)
Windows 3.1 bis Windows 10
MSDOS bis 6.2
Datenbank, Index
PostgreSQL, MySQL/MariaDB, MongoDB, Consul, Oracle
Protokoll, Schnittstelle
Webserver
Virtualisierung, Container
libvirt/KVM, Xen, Qubes OS, Solaris Zones, VMware
kubernetes, buildah, podman, runc, katacontainers
Logging, Monitoring
Sprachen – Ist Ihre dabei?
Natürlich bewege ich mich in meiner Muttersprache Deutsch am flüssigsten.
Zusätzlich beherrsche ich englisch auf zertifiziertem C1-Niveau nach dem europäischen Referenzrahmen CEFR und besitze grundlegende Kenntnisse der französischen Sprache.
C’est tout – la fin.