Skip to main content

Sichere Entwicklung im Homeoffice – Tipps und Tricks

Artikel von

31. März 2020

0 Min. Lesezeit

Sichere Entwicklung im Homeoffice

Während wir uns auf eine längere Zeit im Homeoffice einstellen, müssen wir verschiedene Arbeitsweisen neu bewerten – und die Sicherheit bildet da keine Ausnahme. Die Remote-Zusammenarbeit ist für viele neu und kann Änderungen an Ihren Sicherheitspraktiken oder Prioritäten erfordern.

Hier sind daher einige Empfehlungen, wie Sie Ihre Sicherheitsrichtlinien an eine neu verteilte Belegschaft anpassen können. Über ihren unmittelbaren Nutzen hinaus helfen Ihnen diese Praktiken dabei, Ihre Sicherheitsmaßnahmen zu skalieren – auch wenn alle wieder im Büro arbeiten.

Laden Sie unseren praktischen Spickzettel herunter: Sichere Entwicklung im Homeoffice.

Geben Sie (Remote-)Entwicklern mit dokumentierten Richtlinien mehr Handlungsspielraum

Der Schlüssel zur Remote-Entwicklung – besonders, wenn Kinder herumtoben – ist, jedem Entwickler eigenständiges Arbeiten zu ermöglichen und die Kommunikation asynchron zu halten. So müssen Sie weniger auf Genehmigungen warten und geben mehr Entscheidungsbefugnis ab. In puncto Sicherheit bedeutet das, Ihre Genehmigungsprozesse zu überprüfen und herauszufinden, wie viele Entscheidungen Sie den Entwicklern überlassen können. Statt auf eine Genehmigung zu warten, kann der Entwickler die Arbeit voranbringen und Sie über seine Maßnahmen und Entscheidungen auf dem Laufenden halten.

Damit dieser Handlungsspielraum erfolgreich ist, müssen alle die Erwartungen kennen: Weiß jeder, was zu tun ist und woran sich eine erfolgreiche Erledigung der Aufgabe erkennen lässt? Das bedeutet, dass Sie in die Dokumentation Ihrer Praktiken und Erwartungen investieren müssen. So können Entwickler leichter durchgängig die richtigen Entscheidungen treffen.

Vermeiden Sie Build-Fehler (so weit wie möglich) und schlagen Sie stattdessen Pull Requests fehl

Einen Build aufgrund eines Sicherheitsverstoßes fehlschlagen zu lassen, ist eine weit verbreitete CI/CD-Sicherheitsmaßnahme – aber auch eine erhebliche Störung. Ohne erfolgreichen Build kann die Software nicht weiterentwickelt werden, und die Entwickler sind weitgehend blockiert. Das gilt insbesondere, wenn die Ursache extern ist, etwa eine neu bekannt gewordene Schwachstelle in einer bereits verwendeten Bibliothek.

Bei Remote-Arbeit und asynchroner Zusammenarbeit sind solche Störungen noch gravierender, da Teams länger brauchen, um das Problem zu verstehen, jemanden mit der Behebung zu beauftragen und es zu lösen. Beschränken Sie solche Build-Fehler daher auf wirklich extreme Fälle – etwa eine kritische Schwachstelle, bei der es sich tatsächlich lohnt, alles anzuhalten.

Lassen Sie bei anderen Problemen stattdessen Pull Requests fehlschlagen. Pull Requests bieten mehrere Vorteile:

  • Sie ermöglichen es Ihnen, nur die neuen Codeänderungen zu testen, die der Entwickler selbst beheben können sollte.

  • Sie beziehen sich stärker auf den Branch, in dem der Code geändert wird, und bewahren so die Autonomie einzelner Entwickler.

  • Sie können entscheiden, ob ein Fehler das Zusammenführen blockiert oder nur informativ ist. So können Entwickler die Entscheidung treffen und weiterarbeiten.

Investieren Sie in Transparenz bei der Sicherheit

Autonomie für Entwickler ist großartig, aber Sie müssen auch dafür sorgen, dass die Sicherheit gewahrt bleibt. Statt Hürden aufzubauen, können Sie diesem Anspruch mit Governance und Transparenz gerecht werden. DevOps hat uns gezeigt, dass wir Fehler bei der Bereitstellung eher tolerieren können, sofern wir sie schnell erkennen und beheben. Anders gesagt: Es ist unwahrscheinlich, dass Sie unmittelbar nach der Bereitstellung einer Schwachstelle gehackt werden. Eine schnelle Reaktion ist daher fast so gut, wie das Problem gar nicht erst einzuführen – und weniger störend.

Transparenz lässt sich auf viele Arten schaffen. Hier sind einige Vorschläge:

  • Richten Sie Builds so ein, dass die Abhängigkeiten erfasst werden, die in Ihre Anwendung aufgenommen werden. Das wird alsSoftware Bill of Materials (SBOM) bezeichnet. Mit einer SBOM wissen Sie, ob eine neu bekannt gewordene Schwachstelle Ihr Projekt betrifft.

  • Veröffentlichen Sie im Build entdeckte Schwachstellen, die nicht schwerwiegend genug waren, um den Build fehlschlagen zu lassen. Ein Slack-Kanal oder Benachrichtigungs-E-Mails können Teammitgliedern aus dem Sicherheitsbereich dabei helfen, regelmäßig einen Blick auf die Probleme zu werfen.

  • Erstellen Sie Ranglisten, die zeigen, wie gut verschiedene Teams mit Sicherheitsproblemen umgehen. Erfolge im Sicherheitsbereich, etwa die Zeit bis zur Behebung einer Schwachstelle, können teamübergreifend geteilt werden. So lässt sich der Prozess spielerisch gestalten und eine gemeinsame Dynamik zur Verbesserung schaffen. Teams können außerdem sehen, wie sie sich mit der Zeit verbessern, oder gegensteuern, wenn sie nicht die gewünschten Fortschritte erzielen. Achten Sie darauf, dass diese Ranglisten ausschließlich informativen Charakter haben, und widerstehen Sie der Versuchung, sie als Leistungsmaßstab zu verwenden. Das könnte tatsächlich kontraproduktiv sein, wenn Sie eine offene Sicherheitskultur schaffen möchten.

Verbessern Sie Ihre individuellen Fähigkeiten – ob im Sicherheitsbereich oder in der Entwicklung

Remote-Arbeit kann bedeuten, stärker auf sich selbst gestellt zu sein, was anfangs einschüchternd wirken kann. Viele Remote-Mitarbeiter stellen jedoch fest, dass sie im Alltag mehr Zeit zum Lernen haben, weil der Arbeitsweg entfällt. Nutzen Sie diese Gelegenheit, um die Kompetenzen Ihrer Teams auszubauen – sowohl in der Entwicklung als auch im Sicherheitsbereich.

Investieren Sie bei Entwicklern in die Sicherheitsschulung. Dafür eignen sich Online-Inhalte wie MyDevSecOps, Videos von OWASP- oder DevSecCon-Konferenzen oder kommerzielle Tools wie SecureCodeWarrior. Sehen Sie sich auch die anstehende Online-Veranstaltung AllTheTalks an, deren Einnahmen COVID-19-Hilfsorganisationen zugutekommen!

Nutzen Sie diese Zeit im Sicherheitsbereich, um die Programmierkenntnisse des Teams aufzubauen oder zu verbessern. Diese Fähigkeiten sind in einer DevSecOps-Welt von unschätzbarem Wert. Wenn Sie sich die Zeit nehmen, mehr über Programmierung zu lernen, entwickeln Sie außerdem mehr Verständnis für Entwickler. Hier sind einige Ressourcen für den Einstieg:

Feiern Sie Erfolge im Sicherheitsbereich

Lassen Sie Entwickler wissen, dass Sie ihren Einsatz für mehr Sicherheit schätzen – zum Beispiel mit einem virtuellen Schulterklopfen. Entwickler sind Menschen und brauchen wie alle anderen Anerkennung, um ihre gute Arbeit fortzusetzen. Und sie haben sie sich verdient!

Im Homeoffice ist das doppelt wichtig. Soziale Signale wie ein freundliches Wort im Büro oder ein High Five (oder vielleicht ein Ellbogen-Check …) sind keine Option. Daher müssen Sie virtuelle Alternativen finden. Die Arbeit von zu Hause kann einsam und isolierend sein. Menschen für gute Arbeit Anerkennung zu geben, kann einen großen Unterschied machen.

Wie können Sie gute Arbeit anerkennen? Dafür gibt es viele Möglichkeiten – werden Sie kreativ! Hier sind einige Vorschläge:

  • Ein nettes Wort auf Slack oder in einer Gruppen-E-Mail. Das ist einfach, aber wichtig. Es kann eine einmalige Anerkennung sein oder etwa die Auszeichnung „Security Champion des Monats“ – entscheidend ist, dass Sie es regelmäßig tun. Wenn es angebracht ist, können Sie die Arbeit auch öffentlich über den Social-Media-Account Ihres Unternehmens würdigen.

  • Besondere Fanartikel – von Aufklebern über T-Shirts bis hin zu Kapuzenpullovern –, die denjenigen vorbehalten sind, die sie sich verdient haben. Viele Beispiele dafür finden Sie im Podcast The Secure Developer.

  • Ein Geschenk mit echtem Geldwert, etwa ein Wellness-Tag oder eine Reise samt Ticket für DefCon (falls es nach der Krise noch Konferenzen gibt).

Ordnen Sie Sicherheitspartner den Entwicklungsteams zu und tauschen Sie sich regelmäßig aus

Beziehungen aufzubauen ist schon schwierig genug – sie aus der Ferne aufzubauen oder zu pflegen, ist noch schwieriger. Damit Remote-Entwickler wissen, an wen sie sich bei Sicherheitsfragen wenden können, müssen Sie klare Zuständigkeiten zwischen Entwicklungsteams und ihren Ansprechpartnern im Sicherheitsbereich schaffen.

Dafür sind keine organisatorischen Änderungen nötig. Es genügt, Menschen in den täglichen Arbeitsabläufen miteinander zu vernetzen. Ordnen Sie jedem Mitglied Ihrer Teams für Application Security, Product Security oder Cloud Security (je nachdem, wie Sie diese aufteilen) Teamleiter oder Direktoren aus der Entwicklung zu. Planen Sie regelmäßige Gespräche zwischen diesen Ansprechpartnern ein und beziehen Sie den Sicherheitspartner in virtuelle Stand-ups und andere Aktivitäten der Entwicklungsteams ein. Diese Treffen ergänzen die Besprechungen des Sicherheitsteams, bei denen Sie sich einen Überblick über die gesamte Organisation verschaffen können. Im Podcast The Secure Developer erzählt Sara, wie Invision dabei vorgeht.

Konzentrieren Sie sich auf die Sicherheitsgrundlagen

Unsere neue Realität erfordert Konzentration, damit das Wichtigste erledigt wird. Im Sicherheitsbereich bedeutet das, den Grundlagen Vorrang vor exotischen Angriffen zu geben. Für die allermeisten Unternehmen sollte es wichtiger sein, den Umgang mit anfälligen Komponenten, Konfigurationsfehlern und offengelegten Tokens zu skalieren, als ausgeklügelte Angriffe abzuwehren.

Sobald Sie die Sicherheitsgrundlagen in Ihren Remote-Entwicklungsteams erfolgreich verankert haben, können Sie Ihren Horizont wieder erweitern. Um es mit Begriffen aus der COVID-19-Zeit zu sagen: Sorgen Sie dafür, dass alle regelmäßig ihre Hände waschen, bevor Sie Schutzanzüge kaufen.

Passen Sie den Schutz Ihrer kritischen Infrastruktur an

Wenn Sie sich noch auf privilegierte Netzwerke verlassen, ist jetzt der richtige Zeitpunkt, damit aufzuhören. Mitarbeiter können zwar ein VPN verwenden, doch Heimnetzwerke und -geräte sind weitaus weniger sicher als Ihre Unternehmensumgebung. Sie sollten mit mehr Angriffen über diese Netzwerke rechnen.

Investieren Sie in Multi-Faktor-Authentifizierung oder bauen Sie sie aus

Nutzen Sie diese Gelegenheit, um in eine Zwei-Faktor-Authentifizierungsinfrastruktur zu investieren. Die Authentifizierung von Remote-Mitarbeitern abzusichern, ist in dieser Zeit entscheidend – unabhängig davon, ob Sie in Cloud-Umgebungen arbeiten oder die Mitarbeiter sich per VPN mit Ihrer Unternehmensinfrastruktur verbinden. Die gute Nachricht: Diese Investitionen zahlen sich künftig aus, auch wenn sie ungeplant waren. Sie können die Funktion später auf andere Systeme in Ihrem Netzwerk oder Ihrer Cloud-Umgebung ausweiten.

Verbessern Sie die SSH-Sicherheit

Sie können Ihre SSH-Verbindungen absichern, indem Sie die gegenseitige Authentifizierung aktivieren und die Sitzungsdauer verkürzen. Entwickler erhalten oft per SSH Zugriff auf Produktionscomputer. Diese Endpunkte werden mit statischen privaten Schlüsseln authentifiziert, die ständig auf den Computern vorhanden sind.

Wenn mehr dieser Computer außerhalb des Büros genutzt werden, steigt das Angriffsrisiko. Daher ist es entscheidend, die Authentifizierung an diesen Schnittstellen zu verstärken. Durch das Einrichten oder Verkürzen von Sitzungs-Timeouts stellen Sie außerdem sicher, dass Entwickler-Workstations nicht im Leerlauf bei kritischen Systemen oder Code-Repositories angemeldet bleiben.

Zur weiteren Verbesserung sollten Sie Open-Source-Systeme wie BLESS von Netflix oder SmallStep oder kommerzielle Lösungen wie Okta und andere einsetzen, um eine stärkere identitätsbasierte Authentifizierung zu ermöglichen. Mehr dazu erfahren Sie in meinem InfoQ-Vortrag „Developer as a Malware Distribution Vehicle“.

Bug-Bountys

Wenn einige Unternehmen vorübergehend schließen, werden viele Menschen nach Möglichkeiten auf dem Gig-Markt suchen. Das ist eine großartige Gelegenheit, Ihre Sicherheitsprüfungen mit einem Bug-Bounty-Programm zu stärken. Sie schaffen damit Arbeit für Menschen, die eine Beschäftigung suchen, und machen gleichzeitig Ihre Software robuster.

Bug-Bountys sind eine gute Möglichkeit, Ihre Sicherheitsprüfungen zu erweitern und Forschern klare Vorgaben zu machen, wie sie Schwachstellen an Ihre Organisation melden können. Sehen Sie sich als mögliche Plattformen Hacker One oder BugCrowd an. Sie können Sie bei vielen Schritten der Einrichtung Ihres Programms unterstützen. Wenn Sie etwas Zeit übrig haben, können Sie sich sogar selbst als Hacker beteiligen!

Fazit

Während sich viele Unternehmen auf die neue Normalität der Remote-Arbeit einstellen, sollten Sie berücksichtigen, wie Menschen üblicherweise arbeiten, und unsere Sicherheitsmaßnahmen gezielt an diese Gewohnheiten anpassen. Es wird entscheidend sein, den Arbeitsalltag der Entwickler zu verstehen und Sicherheitskontrollen einzurichten, die sie schützen und ihnen zugleich ermöglichen, ihre Aufgaben zu erledigen. So kommen wir durch diese herausfordernde Zeit.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Gepostet in: